TweeterBie (5 / 9 stap)

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

Gerelateerde Artikelen