Arduino nyhetsflödet anmälaren (4 / 6 steg)
Steg 4: Arduino kod
Denna kod är för Arduino RSS feed projektet, av plottra
Det var uppdaterad och utökad av Sander van Haperen, augusti 2014. Läs kommentar raderna att räkna ut hur det fungerar
int startstring = 0; erkännande av början av ny sträng int charcount = 0; håller reda på totala tecken på skärmen
#include servo myservo; skapa objekt för att styra en servo servo / / maximalt åtta servo objekt kan skapas
#include / / import LiquidCrystal bibliotek LiquidCrystal lcd (12, 11, 5, 4, 3, 2);
void setup() {Serial.begin(9600); / / öppnar serieport, anger datahastigheten till 9600 bps lcd.begin(16,2); / / initiera LCD storleken 16 x 2. Ändra om du använder en större LCD lcd.setCursor(0,0); Ange markörens position till övre vänstra hörnet pinMode (13, OUTPUT); myservo.attach(9); tillmäter objektet servo servo på stift 9}
void loop() {char incomingByte = 0; / / för inkommande seriella data om (Serial.available() > 0) {/ / kontrollera för inkommande seriella Data int pos = 0; / / variabel att lagra servo position myservo.write(pos); / / tala servo gå till position i variabel "pos" digitalWrite (13, hög); incomingByte = Serial.read(); om ((incomingByte == "~") & & (startstring == 1)) {/ / kolla för stängning "~" till slut utskrift av seriell data startstring = 0; / / Set utskriva på av delay(5000); / / vänta 5 sekunder lcd.clear(); / / Torka skärmen charcount = 0; / / reset den teckenantal till 0 lcd.setCursor(0,0); återställa markören till 0,0} om (startstring == 1) {/ / kolla om strängen har börjat om första "~" har lästs om (charcount < = 30) {/ / kontrollera om charcount är eller lika med 30 lcd.print(incomingByte); / / Skriv ut den aktuella byten i det seriella charcount = charcount ++; / / ökas charcount med 1 Ja jag vet att det är krångligt}} om (charcount == 31) {/ / om charcount motsvarar 31 aka skärmen är full delay(500); lcd.clear(); / / rensa skärmen lcd.setCursor(0,0); / / Ställ markören till 0,0 LCD.Print(incomingByte); fortsätta skriva ut data charcount = 1; inställd på charcount tillbaka 1} om (incomingByte == "~") {/ / kolla om byte är markör ~ att starta utskrift startstring = 1; / / Starta utskriften}} digitalWrite 13, låg. int pos = 90. variabel att lagra servo position myservo.write(pos); berätta servo gå till position i variabel "pos' delay(10); 10 ms fördröjning för stabilitet}