Stap 8: Non blocking verfrissende vertraging van LCD
Arduino wanneer we in een lus invoert of nietig of zaak, het manytimes, kan herhalen misschien meer dan u wilt. Mensen vaak gebruikt return of vertraging om te voorkomen dat dergelijke voorwaarde indien nodig.
LCD wanneer verbonden met Shift register is een beetje trager (niet hoeft te vernieuwen 75hz per seconde hoe dan ook: P)
Dus wanneer we invoert een geval kan het proberen aan te tonen van dezelfde waarde creëert meerdere keer per seconde en dit een flikkerend effect. Aangezien ik ben niet monitoringgegevens realtime ibehoefte LCD alleen vernieuwen zodra wanneer iets blijkt. dus ik heb een byte "refreshcount gemaakt" wanneer de timer denkt dat zijn tijd om weer te geven van de orde, doet het twee dingen
+ 1 voor het nummer van het object tellen
vernieuwen graaf teruggezet naar 1
Nu het geval wordt en als vernieuwen count 1 Hiermee kunt Lees rest instructies in als verklaring. en onmiddellijk maakt vernieuwen graaf op "0" dus wanneer wanneer volgende keer het lussen lcd wordt niet vernieuwd, deze stabiel en niet flikkeren lezen. hetzelfde wordt herhaald voor elk geval.
refreshcount Reset > weergave op LCD > niet meer vernieuwen
Hier is de code van de arduino
geval 5: / / CPU Temp
Als (refreshcount == 1)
{
LCD.Clear();
lcd.setCursor (0, 0);
LCD.Print (F ("Computer Temp"));
lcd.setCursor (0, 1);
LCD.Print (CPU_temp, 1);
LCD.Print (F ("C"));
refreshcount = 0;
}