Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <LiquidCrystal.h>
- #define lenght 16.0
- double percent=100.0;
- unsigned char b;
- unsigned int peace;
- // caratteri personalizzati
- LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
- byte p1[8] = {
- 0x10,
- 0x10,
- 0x10,
- 0x10,
- 0x10,
- 0x10,
- 0x10,
- 0x10};
- byte p2[8] = {
- 0x18,
- 0x18,
- 0x18,
- 0x18,
- 0x18,
- 0x18,
- 0x18,
- 0x18};
- byte p3[8] = {
- 0x1C,
- 0x1C,
- 0x1C,
- 0x1C,
- 0x1C,
- 0x1C,
- 0x1C,
- 0x1C};
- byte p4[8] = {
- 0x1E,
- 0x1E,
- 0x1E,
- 0x1E,
- 0x1E,
- 0x1E,
- 0x1E,
- 0x1E};
- byte p5[8] = {
- 0x1F,
- 0x1F,
- 0x1F,
- 0x1F,
- 0x1F,
- 0x1F,
- 0x1F,
- 0x1F};
- void setup() {
- delay(100);
- lcd.createChar(0, p1);
- lcd.createChar(1, p2);
- lcd.createChar(2, p3); //genere i caratteri personalizzati
- lcd.createChar(3, p4);
- lcd.createChar(4, p5);
- lcd.begin(16, 2);
- }
- void loop()
- {
- lcd.setCursor(0, 0);
- //ADC conversion
- unsigned int value = analogRead(0); //legge il valore dal potenziometro
- percent = value/1024.0*100.0; //calcola la percentuale
- lcd.print(value);
- lcd.print(" - ");
- lcd.print(percent);
- lcd.print(" % ");
- lcd.setCursor(0,1); //sposta il cursore
- double a=lenght/100*percent;
- // disegna i rettangoli neri sull'lcd
- if (a>=1) {
- for (int i=1;i<a;i++) {
- lcd.write(4);
- b=i;
- }
- a=a-b;
- }
- peace=a*5;
- // drawing charater's colums
- switch (peace) {
- case 0:
- break;
- case 1:
- lcd.print((char)0);
- break;
- case 2:
- lcd.write(1);
- break;
- case 3:
- lcd.write(2);
- break;
- case 4:
- lcd.write(3);
- break;
- }
- //clearing line
- for (int i =0;i<(lenght-b);i++) {
- lcd.print(" ");
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement