Stap 4: Arduino code
Deze code is voor de Arduino RSS-feed project, door beignet
Het werd bijgewerkt en uitgebreid door Sander van Haperen, augustus 2014. Lees het commentaarregels om erachter te komen hoe het werkt
int startstring = 0; erkenning van begin van nieuwe tekenreeks int charcount = 0; houdt van totale tekens op het scherm
#include servo myservo; servo-object om te bepalen van een servo maken / / maximaal acht servo-objecten kan worden gemaakt
#include / / import van de LiquidCrystal bibliotheek LiquidCrystal lcd (12, 11, 5, 4, 3, 2);
void setup {Serial.begin(9600); / / seriële poort wordt geopend, wordt gegevenssnelheid ingesteld op 9600 bps lcd.begin(16,2); / / initialiseren van de grootte van de LCD 16 x 2. Wijzigen als met behulp van een grotere LCD-lcd.setCursor(0,0); Zet de cursorpositie op de linker bovenhoek pinMode (13, OUTPUT); myservo.attach(9); hecht de servo op pin 9 op het servo-object}
void loop {char incomingByte = 0; / / voor binnenkomende seriële gegevens als (Serial.available() > 0) {/ / Check voor inkomende seriële Data int pos = 0; / / variabele voor het opslaan van de servo positie myservo.write(pos); / / vertellen servo naar positie in de variabele 'pos' digitalWrite (13, hoog); incomingByte = Serial.read(); als ((incomingByte == ' ~') & & (startstring == 1)) {/ / Check de sluiting ' ~' tot eind van het drukken van seriële data startstring = 0; / / Set de afdrukken op off delay(5000); / / Wait 5 seconden lcd.clear(); / / veeg het scherm charcount = 0; / / reset de het aantal tekens op 0 lcd.setCursor(0,0); Reset de cursor naar 0,0} als (startstring == 1) {/ / controleren als de tekenreeks is begonnen als eerste ' ~' heeft gelezen als (charcount < = 30) {/ / controleren als charcount loopt of gelijk aan 30 lcd.print(incomingByte); / / Print de huidige byte in de seriële charcount = charcount ++; / / de charcount verhogen met 1 ja ik weet het is onhandig}} als (charcount == 31) {/ / als de charcount gelijk aan 31 is aka het scherm is volledig delay(500); lcd.clear(); / / wissen van het scherm lcd.setCursor(0,0); / / cursor ingesteld op 0,0 LCD.Print(incomingByte); blijven afdrukken gegevens charcount = 1; charcount weer instellen op 1} als (incomingByte == ' ~') {/ / controleren als byte marker is ~ om te beginnen de afdrukken startstring = 1; / / beginnen met afdrukken}} digitalWrite (13, laag); int pos = 90; variabele op te slaan van de servo positie myservo.write(pos); vertellen van de servo naar positie in de variabele 'pos' delay(10); 10MS vertraging voor stabiliteit}