MoreGraphsI2C.ino 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. #include <Wire.h>
  2. #include <LiquidCrystal_I2C.h>
  3. #include <LcdBarGraphX.h>
  4. byte lcdNumCols = 20; // -- number of columns in the LCD
  5. LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE); // -- creating LCD instance
  6. // -- creating a 4 chars wide bars
  7. LcdBarGraphX lbg0(&lcd, 4, 0, 0); // -- First line at column 0
  8. LcdBarGraphX lbg1(&lcd, 4, 5, 0); // -- First line at column 5
  9. LcdBarGraphX lbg2(&lcd, 4, 10, 0); // -- First line at column 10
  10. LcdBarGraphX lbg3(&lcd, 4, 0, 1); // -- Second line at column 0
  11. LcdBarGraphX lbg4(&lcd, 4, 5, 1); // -- Second line at column 5
  12. LcdBarGraphX lbg5(&lcd, 4, 10, 1); // -- Second line at column 0
  13. byte i0 = 0;
  14. byte i1 = 0;
  15. byte i2 = 0;
  16. byte i3 = 0;
  17. byte i4 = 0;
  18. byte i5 = 0;
  19. void setup(){
  20. // -- initializing the LCD
  21. lcd.begin(4, lcdNumCols);
  22. lcd.clear();
  23. // -- do some delay: some time I've got broken visualization
  24. delay(100);
  25. }
  26. void loop()
  27. {
  28. // -- draw bar graph from the analog value readed
  29. lbg0.drawValue( i0, 255);
  30. lbg1.drawValue( i1, 255);
  31. lbg2.drawValue( i2, 255);
  32. lbg3.drawValue( i3, 255);
  33. lbg4.drawValue( i4, 255);
  34. lbg5.drawValue( i5, 255);
  35. // -- do some delay: frequent draw may cause broken visualization
  36. delay(100);
  37. i0 += 5;
  38. i1 += 7;
  39. i2 += 9;
  40. i3 += 11;
  41. i4 += 13;
  42. i5 += 15;
  43. }