Jakiś czas temu walczyłem z identycznym problemem . Niestety te wyświetlacze i na i2c i tak jak ja używam shiftreg są bardzo czułe na różnego rodzaju wyładowania elektrostatyczne jak i potrafią się same wysypać . Jeżeli tylko wyświetlacz się wyłącza a program pracuje normalnie to nie ma strachu wystarczy dodać
a jak to nie pomoże ( powinno ale... )
tutaj masz kod dla twojego programu bez przekaźników łączysz jak masz w programie pin 3 z pinem reset zworką ,( to jest tylko dla pinu 3 )
można też użyć software reset ale wchodzą w to funkcje związane z wachdog a tego nawet producent atmegi nie zaleca
Kod:
long pm = 0;
void setup() {
//twoje setup
}
void loop() {
long cm = millis()/1000;
if ( (cm - pm) > 60 ){ // 60 czas w sekundach
lcd2.begin(20,4);
lcd2.setBacklightPin(BACKLIGHT_PIN, POSITIVE);
lcd2.setBacklight(HIGH);
}
//tu reszta twojego kodu
}
a jak to nie pomoże ( powinno ale... )
tutaj masz kod dla twojego programu bez przekaźników łączysz jak masz w programie pin 3 z pinem reset zworką ,( to jest tylko dla pinu 3 )
Kod:
void setup() {
DDRD = B00001000;
PORTD = B00001000;
pinMode(5 , OUTPUT); // przekaźnik daj pin jaki tam potrzebujesz
// tutaj reszta twojego setup
}
void loop() {
if ( (millis()/1000) > 8 )digitalWrite(3,LOW); // reset po 8 sekundach
if ( (millis()/1000) < 3 )digitalWrite(5,HIGH);else digitalWrite(5,LOW); // dioda kontrolna świeczi 3sek
// tutaj reszta twojego loop
}
można też użyć software reset ale wchodzą w to funkcje związane z wachdog a tego nawet producent atmegi nie zaleca
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