Pobaw się takim kodem , używam wraz z radiówką i nic nie miga. Dopóki na nie zmienisz strony nie będzie kasowany więc nie będzie migotania jedynie musisz pamiętać aby dane się pokrywały i staraj się tak dane wpisywać aby nie wychodziły poza obszar wyświetlacza to czasem też powoduje migotanie . Możesz stworzyć 200 stron czy 1000 i dokładnie kierować dane do odpowiedniej strony , kod jest jak myślę prosty i bardzo przejrzysty .
I jeszcze kodzik jak użyć wywołania strony niezależnej " alarmu " oczywiście nie musi być wywołana przyciskiem tylko może być funkcją.
I na koniec jak zrobić żeby po alarmie wracało do poprzednio wywołanej strony .
Kod:
#include <ShiftRegLCD123.h>
ShiftRegLCD123 srlcd( 7, 6, SRLCD123);
char strona = 1;
char lcd = 1;
void setup() {
Serial.begin(115200);
srlcd.begin(16,2);
pinMode(10, INPUT_PULLUP);
}
void loop() {
if ( digitalRead(10) == LOW )strona++;delay(250);
if ( strona > 5 )strona = 1;
LCD();
}
void LCD(){
switch (strona) {
case 1:
if (lcd != 1){srlcd.clear();lcd = 1;} //czyszczenie ekranu 1
srlcd.setCursor(0,0);
srlcd.print("lcd 1 ");
srlcd.setCursor(0,1);
srlcd.print("lcd 1 ");
break;
case 2:
if (lcd != 2){srlcd.clear();lcd = 2;} //czyszczenie ekranu 2
srlcd.setCursor(2,0);
srlcd.print("lcd 2 ");
srlcd.setCursor(2,1);
srlcd.print("lcd 2 ");
break;
case 3:
if (lcd != 3){srlcd.clear();lcd = 3;} //czyszczenie ekranu 3
srlcd.setCursor(4,0);
srlcd.print("lcd 3 ");
srlcd.setCursor(4,1);
srlcd.print("lcd 3 ");
break;
case 4:
if (lcd != 4){srlcd.clear();lcd = 4;} //czyszczenie ekranu 4
srlcd.setCursor(6,0);
srlcd.print("lcd 4 ");
srlcd.setCursor(6,1);
srlcd.print("lcd 4 ");
break;
case 5:
if (lcd != 5){srlcd.clear();lcd = 5;} //czyszczenie ekranu 5
srlcd.setCursor(8,0);
srlcd.print("lcd 5 ");
srlcd.setCursor(8,1);
srlcd.print("lcd 5 ");
break;
}
}
I jeszcze kodzik jak użyć wywołania strony niezależnej " alarmu " oczywiście nie musi być wywołana przyciskiem tylko może być funkcją.
Kod:
#include <ShiftRegLCD123.h>
ShiftRegLCD123 srlcd( 7, 6, SRLCD123);
char strona = 1;
char lcd = 1;
void setup() {
Serial.begin(115200);
srlcd.begin(16,2);
pinMode(10, INPUT_PULLUP);
pinMode(11, INPUT_PULLUP);
}
void loop() {
if ( digitalRead(11) == LOW )strona = 100;delay(250);
if ( digitalRead(10) == LOW )strona++;delay(250);
if ( strona > 5 and strona != 100 )strona = 1;
LCD();
}
void LCD(){
switch (strona) {
case 1:
if (lcd != 1){srlcd.clear();lcd = 1;} //czyszczenie ekranu 1
srlcd.setCursor(0,0);
srlcd.print("lcd 1 ");
srlcd.setCursor(0,1);
srlcd.print("lcd 1 ");
break;
case 2:
if (lcd != 2){srlcd.clear();lcd = 2;} //czyszczenie ekranu 2
srlcd.setCursor(2,0);
srlcd.print("lcd 2 ");
srlcd.setCursor(2,1);
srlcd.print("lcd 2 ");
break;
case 3:
if (lcd != 3){srlcd.clear();lcd = 3;} //czyszczenie ekranu 3
srlcd.setCursor(4,0);
srlcd.print("lcd 3 ");
srlcd.setCursor(4,1);
srlcd.print("lcd 3 ");
break;
case 4:
if (lcd != 4){srlcd.clear();lcd = 4;} //czyszczenie ekranu 4
srlcd.setCursor(6,0);
srlcd.print("lcd 4 ");
srlcd.setCursor(6,1);
srlcd.print("lcd 4 ");
break;
case 5:
if (lcd != 5){srlcd.clear();lcd = 5;} //czyszczenie ekranu 5
srlcd.setCursor(8,0);
srlcd.print("lcd 5 ");
srlcd.setCursor(8,1);
srlcd.print("lcd 5 ");
break;
case 100:
if (lcd != 100){srlcd.clear();lcd = 100;} //czyszczenie ekranu 100
for ( int x = 0; x < 10; x++ ){
srlcd.setCursor(2,0);
srlcd.print("alarm 100 ");
srlcd.setCursor(2,1);
srlcd.print("alarm 100 ");
delay(250);
srlcd.setCursor(2,0);
srlcd.print(" ");
srlcd.setCursor(2,1);
srlcd.print(" ");
delay(250);
}
strona = 1;
break;
}
}
I na koniec jak zrobić żeby po alarmie wracało do poprzednio wywołanej strony .
Kod:
#include <ShiftRegLCD123.h>
ShiftRegLCD123 srlcd( 7, 6, SRLCD123);
char strona = 1;
char trzymaj = 1;
char lcd = 1;
void setup() {
Serial.begin(115200);
srlcd.begin(16,2);
pinMode(10, INPUT_PULLUP);
pinMode(11, INPUT_PULLUP);
}
void loop() {
if ( digitalRead(11) == LOW ){trzymaj = strona;strona = 100;delay(250);}
if ( digitalRead(10) == LOW ){strona++;delay(250);}
if ( strona > 5 and strona != 100 )strona = 1;
LCD();
}
void LCD(){
switch (strona) {
case 1:
if (lcd != 1){srlcd.clear();lcd = 1;} //czyszczenie ekranu 1
srlcd.setCursor(0,0);
srlcd.print("lcd 1 ");
srlcd.setCursor(0,1);
srlcd.print("lcd 1 ");
break;
case 2:
if (lcd != 2){srlcd.clear();lcd = 2;} //czyszczenie ekranu 2
srlcd.setCursor(2,0);
srlcd.print("lcd 2 ");
srlcd.setCursor(2,1);
srlcd.print("lcd 2 ");
break;
case 3:
if (lcd != 3){srlcd.clear();lcd = 3;} //czyszczenie ekranu 3
srlcd.setCursor(4,0);
srlcd.print("lcd 3 ");
srlcd.setCursor(4,1);
srlcd.print("lcd 3 ");
break;
case 4:
if (lcd != 4){srlcd.clear();lcd = 4;} //czyszczenie ekranu 4
srlcd.setCursor(6,0);
srlcd.print("lcd 4 ");
srlcd.setCursor(6,1);
srlcd.print("lcd 4 ");
break;
case 5:
if (lcd != 5){srlcd.clear();lcd = 5;} //czyszczenie ekranu 5
srlcd.setCursor(8,0);
srlcd.print("lcd 5 ");
srlcd.setCursor(8,1);
srlcd.print("lcd 5 ");
break;
case 100:
if (lcd != 100){srlcd.clear();lcd = 100;} //czyszczenie ekranu 100
for ( int x = 0; x < 10; x++ ){
srlcd.setCursor(2,0);
srlcd.print("alarm 100 ");
srlcd.setCursor(2,1);
srlcd.print("alarm 100 ");
delay(250);
srlcd.setCursor(2,0);
srlcd.print(" ");
srlcd.setCursor(2,1);
srlcd.print(" ");
delay(250);
}
strona = trzymaj;
break;
}
}
Ważne aby robić co się lubi albo lubić co się robi .
Arduino UNO, TINY, PRO MINI
Pomoc nagradzamy punktami reputacji
Arduino UNO, TINY, PRO MINI
Pomoc nagradzamy punktami reputacji