TweeterBie (5 / 9 steg)
Steg 5: Låter kod Arduino
ARDUINOEN
Det är ett allmänt känt att välja Arduino för de flesta av de inbyggda system tack vare sin enkelhet i programplaneringen och den stora mängd resurser för att få ut mest i små tid tid.
Så förbinda Arduino styrelsen till din stationära eller bärbara dator (hädanefter kallad som PC) och brand upp programvaran Arduino
Nu öppnar programmet exempel > flytande kristaller > Hello World som visas nedan.
Se alla pin-anslutningar som beskrivs i programmet kommentarerna i början.
Jag har företrätt det nedan för referens
LCD-modulen körs nu i lite 4 läge i stället för 8-bitars läge.
Med tanke på att dataöverföringen tar dubbelt så lång men det räcker för TweeterBie.
Arduino kod omarbetade.
Följande kodförändringar införs scroll effekten på texten som ska visas.
#include
redan där i skissen för LCD-skärm
initiera bibliotek med numrerar av gränssnittet stiften
LiquidCrystal lcd (12, 11, 5, 4, 3, 2);
char inData [141]; Allokera utrymme för sträng max 140 tecken i Tweets
char inChar; Var att lagra karaktären läsa från serieporten
byte index = 0; Index till array peka minnesplatsen
byte bytesrecvd = 0; motverka att kontrollera inkommande byte
void setup() {
Serial.BEGIN(9600); Serial Port att skicka tecken som ska visas
Serial.write ("ström på"); Power upp signal på Debug port efter att anslutning
LCD.BEGIN (16, 2); Ange den LCD antal kolumner och rader
LCD.Print ("hello, world!"); Skriva ut ett meddelande på LCD-provet från gammal sketch
Delay(1000); Tidsfördröjningen tills meddelandet läses av LCD
lcd.setCursor (0, 0); Placera LCD markören på hem positionen.
index = 0; Ange teckenpositionen indexering till noll (noll)
lcd.setCursor (0, 0); sätta tillbaka markören till hem
LCD.Print ("senaste Tweet:"); Visa rubriken på första raden
lcd.setCursor (16, 1); Gå till sista kolumnen i den andra raden och vänta på att tecken ska visas.
}
Detta avslutar installationen av Arduino, nu att skapa Super loopen
void loop() {
index = 0; alltid återställas till noll i början av-data mottagning
While(Serial.available() > 0) / / inte ange i avsnittet om uppgifter finns att läsa
{
IF(index < 140) / / en mindre än storleken på matrisen får bara 140 tecken
{
inChar = Serial.read(); Läs en karaktär
inData [index] = inChar; Förvara den i "inData" array
index ++; Öka om att skriva nästa steg index
inData [index] = '\0'; Lägga till avslutande tecken (Null-tecken) för nästa position
Delay(5); ge 5 millisekunder gap att undvika data korruption
bytesrecvd = index. få det totalt antalet byte som tagits emot
}
} / / hålla loping tills data är tillgängliga
LCD.Clear(); nu klart tidigare Data LCD-skärm
lcd.setCursor (0, 0); Gå till ursprungsläget
LCD.Print ("senaste Tweet:"); Skriv rubriken senaste tweet på första raden
lcd.setCursor (16, 1); gå till slutet av raden på andra raden
LCD.AutoScroll(); Starta automatisk rullning (problemet är kommer att rotera båda rader)
för (int thisChar = 0; thisChar < bytesrecvd; thisChar ++) / / få en karaktär från sparade matrisen
{/ / denna karaktär samtidigt ökar värdet med text rullhjulet
lcd.noAutoscroll(); stoppa rullning
lcd.setCursor (thisChar + 1, 0); Sedan senaste Tweet är flyttade av en position återställer texten.
LCD.Print ("senaste Tweet:"); Som texten tillbaka upp i utgångsläget
lcd.setCursor (16 + thisChar, 1); Ange position för de nya karaktär att ladda i på displayen
LCD.AutoScroll(); / / börja rulla tillbaka igen
LCD.Print(inData[thisChar]); Nu ut karaktären på den förinställda positionen
fördröjning (300); Detta är scroll förseningen krävs för att göra texten lättläst.
}
lcd.noAutoscroll(); Om ingen text är uppdaterad sluta rulla.
Delay(5); vänta på några mikrosekunder innan looping tillbaka...
}
Obs: Ovanstående kod har bifogats som INO fil
Efter dumpning koden och köra med "ENGINEERING GARAGE" i seriell Port