multimetr

z foreste, 2 lata temu, napisane w C++, wyświetlone 48 razy. [paste_expire] 1 sekunda.
URL https://codetab.e3x.pl/view/5f6ed291 Udostępnij
Pobierz wklejkę lub Pokaż surowy tekst
  1. #include "mbed.h"
  2. #include "TextLCD.h"
  3. #include "Terminal.h"
  4. #include "pin_names.h"
  5.  
  6. // Host PC Communication channels
  7. //Serial pc(USBTX, USBRX); // tx, rx
  8.  
  9. Terminal pc(BTTX, BTRX); // tx, rx
  10. // I2C Communication
  11. //I2C i2c_lcd(PTC9, PTC8);  // SDA, SCL
  12. I2C i2c_lcd(PB_14, PB_13);  // SDA, SCL
  13. #define LightOn TextLCD::LightOn
  14. TextLCD_I2C lcd(&i2c_lcd, 0x4E, TextLCD::LCD16x2, TextLCD::ST7066_ACM); // I2C bus, PCF8574 Slaveaddress, LCD Type, Device Type
  15. AnalogIn voltage(PC_3);
  16. float voltageV = 0.0;
  17. void init()
  18. {
  19.         pc.foreground(0xFFFFFF);
  20.         pc.locate(0, 0);
  21.         pc.printf("Voltmeter v1");
  22.         lcd.setBacklight(LightOn);
  23.         lcd.setCursor(TextLCD::CurOff_BlkOff);
  24.         wait(0.2);
  25.         lcd.locate(2, 0);
  26.         lcd.printf("Voltmeter v1");
  27. }
  28. void load()
  29. {
  30.         lcd.locate(4, 0);
  31.         lcd.printf("Starting \n");
  32.         pc.locate(5, 0);
  33.         pc.printf("Starting \r\n");
  34.        
  35.         for (int loanding = 0; loanding <= 100; loanding++)
  36.         {
  37.                 wait(0.3);
  38.                 lcd.locate(6, 1);
  39.                 lcd.printf("%d \n", loanding);
  40.                 lcd.setUDC(0, (char *) udc_procent);
  41.                 lcd.locate(9, 1);
  42.                 lcd.putc(0);
  43.                 pc.locate(6, 1);
  44.                 pc.printf("%d", loanding);
  45.         }
  46. }
  47. void warring()
  48. {
  49.         lcd.locate(3, 0);
  50.         lcd.printf("WARRING! \n");
  51.         pc.locate(5, 0);
  52.         pc.foreground(0xFF0000);
  53.         pc.printf("WARRING! \r\n");
  54.         wait(1);
  55.         lcd.cls();
  56.         lcd.locate(0, 0);
  57.         lcd.printf("Use a resistor");
  58.         lcd.locate(0, 1);
  59.         lcd.printf("divider");
  60.         pc.printf("Use a resistor divider");
  61. }
  62. void clear()
  63. {
  64.         lcd.cls();
  65.         pc.cls();
  66. }
  67. int main() {
  68.         clear();
  69.         init();
  70.         wait(5);
  71.         clear();
  72.         warring();
  73.         wait(2);
  74.         clear();
  75.         load();
  76.         wait(2);
  77.         clear();
  78.        
  79. int     voltager;      
  80.  
  81.         while (1)
  82.         {
  83.                 voltager = voltage.read_u16();
  84.                 pc.locate(4, 0);
  85.                 voltageV = (voltager*5.0) / 27000.0;
  86.                 pc.printf("value voltage %0.1f", voltageV);
  87.                 lcd.printf("value voltage %0.1f \n", voltageV);
  88.                 wait(0.2f);
  89.                
  90.         }
  91. }

odpowiedź "multimetr"

Tutaj możesz odpowiedzieć na wklejkę z góry

captcha