Arduino LCD Twitter display (3 / 5 steg)
Steg 3: Firmware
Initiera LCD
Ställa in några konstanter som används i koden
Skriva ut ett första meddelande till LCD-skärmen
Ställ in servo och sänka flaggan
Vänta i fem sekunder för skriptet att startas på servern PC
Slinga:
Begära status från server och vänta på svar
Om nya tweets: höja flaggan och Visa antalet tweets
annat: sänka flaggan och Visa Sök hashtag
Begär nästa tweet från servern och vänta på svar
Rensa den översta raden i displayen
Visa tweet rullning över den översta raden i displayen med en hastighet som bestäms av varvtalsregleringen
En mer komplett "pseudocode" av Arduino koden:
Initiera LCD
Ställ in konstanter
Skapa en buffert för inkommande meddelanden
Ställa in LCD-skärmen som 16 x 2 tecken, ingen autoscroll
Visa "Zeitgeistometer! \n (c) PKM 2010" på displayen
Ställ in servo och dess kontroll pin
Aktivera servo, flytta servo till "down" position och inaktivera igen
slinga:
Notera tid när du startar slingan
Skriv "anslutningsstatus\n" till den seriella länken
Väntar på ett meddelande för den seriella länken eller tio sekunder förflyta
Om ett nytt meddelande anlänt:
Vänta med att få hela meddelandet
Läs meddelandet i en buffert
Läs första röding av meddelandet
Om det första tecknet är 'T'
Ange "ny tweet" flagga
Aktiv servo, höja och avaktivera
Skriva ut innehållet i meddelandet till den nedersta raden i displayen
Annat
Om den nya tweet flaggan är inställd
Klart den nya tweet flaggan
Aktiv servo, sänka och avaktivera
skriva ut "#instructables" till den nedersta raden i displayen
Annat
Skriva ut "Ingen statusmeddelande" till displayen
Vänta med 0,5 sekunder
Skriv "tweet\n" till den seriella länken
Väntar på ett meddelande för den seriella länken eller åtta sekunder förflyta
Om ett nytt meddelande anlänt:
Vänta med att få hela meddelandet
Läs meddelandet i en buffert
Ange den aktuella positionen för tecknet 0
Medan du tecknet 15 tecken utöver nuvarande position är inte ett null-värde
Läs varvtalsregleringen
Karta [0-1023] till en försening i intervallet [50-550] ms, vänta på detta intervall
Visa de 16 tecken från nuvarande position på den översta raden i LCD
Öka den aktuella positionen
Annat
Skriva ut "Ingen PIKA svar" på displayen
Funktionen clear_buffer:
Skriv 150 null-tecken till meddelande buffert
Funktionen read_to_buffer:
clear_buffer()
medan tecken som är tillgängliga från den seriella länken
läsa en karaktär från seriell till meddelande buffert
Jag har bifogat den faktiska källa koden till detta steg som en textfil, dels för att det är rörigt och inte mycket självförklarande så inte det bästa att läsa för att få en uppfattning om hur systemet fungerar.