Stap 5: Laat Code Arduino
ARDUINO
Het is een gemeenschappelijke kennis om te kiezen van Arduino voor de meeste van de ingebedde systemen als gevolg van de eenvoud in de programmering en enorme hoeveelheid bronnen om meer te halen in kleine duur van tijd.
Zo sluit de Arduino board aan uw desktop/Laptop (van nu af aan PC genoemd) en het vuur van de Arduino Software
Open nu het programma voorbeelden > vloeibare kristallen > Hallo wereld zoals hieronder getoond.
Maak alle aansluitingen voor de pin zoals beschreven in de programma-commentaren aan het begin.
Ik heb het hieronder vertegenwoordigd voor verwijzing
Nu is de LCD-module in een 4-bits modus in plaats van 8-bit-modus draait.
Gezien het feit dat de overdracht van gegevens twee keer zo lang duurt maar wel voldoende voor de TweeterBie.
Arduino Code opnieuw ontworpen.
De volgende codewijzigingen introduceert de scroll-effect op de tekst moet worden weergegeven.
#include
al daar in de schets voor LCD display
initialiseren van de bibliotheek met de nummers van de pennen van de interface
LiquidCrystal lcd (12, 11, 5, 4, 3, 2);
char inData [141]; Sommige ruimte toewijzen voor de tekenreeks max van 140 charcters in Tweets
char inChar; Waar u het teken wilt bewaren van de seriële poort leest
byte index = 0; Index in de array te wijzen van de geheugenlocatie
byte bytesrecvd = 0; teller om te controleren van de binnenkomende bytes
VOID Setup {}
Serial.begin(9600); Seriële poort voor het verzenden van de tekens worden weergegeven
Serial.write ("Power On"); Signaal op de Debug-poort nadat verbinding de nodige energie
LCD.begin (16, 2); de LCD's aantal kolommen en rijen instellen
LCD.Print ("hello, world!"); Afdrukken van een bericht op het LCD-monster vanuit oude schets
delay(1000); Vertraging totdat het bericht is gelezen uit het LCD-scherm
lcd.setCursor (0, 0); LCD cursor naar Home positie instellen
index = 0; Indexing tekenpositie ingesteld op nul (nul)
lcd.setCursor (0, 0); cursor naar huis terug te brengen
LCD.Print ("laatste Tweet:"); De koptekst op de eerste regel weergeven
lcd.setCursor (16, 1); Ga naar de laatste kolom van de tweede lijn en wacht op de tekens moet worden weergegeven.
}
Dit beëindigt de installatie van de Arduino, nu aan het maken van de Super-lus
void loop {}
index = 0; altijd weer op nul gezet aan het begin van de ontvangst van de gegevens
while(Serial.available() > 0) / / de sectie niet invoeren, tenzij gegevens zijn beschikbaar om te lezen
{
if(index < 140) / / één lager is dan de grootte van de matrix krijgen slechts 140 tekens
{
inChar = Serial.read(); Lees een karakter
inData [index] = inChar; Opslaan in array "inData"
index ++; _ / / Verhogen waar te schrijven volgende increment de index
inData [index] = '\0'; Afsluitende teken (Null-teken) voor de volgende functie toevoegen
delay(5); geven van 5 milliseconden gat om te voorkomen dat gegevens beschadigd
bytesrecvd = index; krijgen van het totale aantal bytes dat is ontvangen
}
} / / houden loping totdat gegevens verzameld zijn
LCD.Clear(); nu duidelijk het LCD van de vorige gegevens
lcd.setCursor (0, 0); Ga naar uitgangspositie
LCD.Print ("laatste Tweet:"); de laatste tweet koptekst op eerste regel schrijven
lcd.setCursor (16, 1); Ga naar einde van regel op de tweede rij
LCD.AutoScroll(); Start auto scroll (het probleem is dat het zal draaien beide rijen)
voor (int thisChar = 0; thisChar < bytesrecvd; thisChar ++) / / krijgen een teken van de opgeslagen matrix
{/ / Dit karakter zal verhogen gelijktijdig met de tekst scroll
lcd.noAutoscroll(); stop scrollen
lcd.setCursor (thisChar + 1, 0); Aangezien de laatste Tweet wordt verplaatst door één positie opnieuw de tekst.
LCD.Print ("laatste Tweet:"); Instellen de tekst terug in uitgangspositie
lcd.setCursor (16 + thisChar, 1); Stel de positie van het nieuwe teken om in te laden op het display
LCD.AutoScroll(); / / beginnen schuiven weer
LCD.Print(inData[thisChar]); Nu het afdrukken van het teken op de vooraf ingestelde positie
vertraging (300); Dit is de vertraging van de scroll moet tekst leesbaar te maken.
}
lcd.noAutoscroll(); Als geen tekst is bijgewerkt stop scrollen.
delay(5); wachten op enkele microseconden voordat het looping terug...
}
Opmerking: De bovenstaande Code is gekoppeld als INO bestand
Na de dumping van de code en uitvoeren met "ENGINEERING GARAGE" in seriële poort