Stap 6: programmeren
Voor mijn programma ik gebruikte het voorbeeld van de schakelaar ( http://www.arduino.cc/en/Tutorial/SwitchCase2 ) en een beetje gewijzigd./*
De instructie switch met ingang voor seriële
Het gebruik van een instructie switch aantoont. De schakelaar
verklaring kunt u kiezen uit een reeks van discrete waarden
van een variabele. Het is net als een aantal als verklaringen.
Deze schets in actie zien, opent u de seriële monitor en verzenden van elk teken.
De tekens a, b, c, d en e, LEDs zullen inschakelen. Elk ander teken zal veranderen
de LEDs uit.
Het circuit:
* 5 LED's aangesloten op de digitale pennen 2 t/m 6 door middel van 220 ohm weerstanden
Dit is een gewijzigde versie van het voorbeeld Swith geval 2 uit de arduino.cc website. (http://www.arduino.cc/en/Tutorial/SwitchCase2)
*/
int analogOutPinG = 9;
int analogOutPinB = 10;
int analogOutPinR = 11;
VOID Setup {}
seriële communicatiepoorten te initialiseren:
Serial.begin(9600);
Initialiseer de pennen van de LED:
pinMode (analogOutPinG, OUTPUT);
pinMode (analogOutPinB, OUTPUT);
pinMode (analogOutPinR, OUTPUT);
}
void loop {}
Lees de sensor:
Als (Serial.available() > 0) {}
int inByte = Serial.read();
Doe iets anders, afhankelijk van het teken ontvangen.
De instructie switch verwacht enkele numerieke waarden voor elk geval;
in dit voorbeeld, hoewel, gebruikt u enkele aanhalingstekens te vertellen
de controller om de ASCII-waarde voor het teken. Voor
in het volgende voorbeeld 'a' = 97, 'b' = 98, enzovoort:
schakelaar (inByte) {}
geval 'a':
analogWrite (analogOutPinG, 255);
analogWrite (analogOutPinB, 0);
analogWrite (analogOutPinR, 0);
breken;
Case "b":
analogWrite (analogOutPinG, 255);
analogWrite (analogOutPinB, 220);
analogWrite (analogOutPinR, 0);
breken;
Case "c":
analogWrite (analogOutPinG, 0);
analogWrite (analogOutPinB, 255);
analogWrite (analogOutPinR, 0);
breken;
geval zou ':
analogWrite (analogOutPinG, 0);
analogWrite (analogOutPinB, 200);
analogWrite (analogOutPinR, 255);
breken;
Case "e":
analogWrite (analogOutPinG, 0);
analogWrite (analogOutPinB, 0);
analogWrite (analogOutPinR, 255);
breken;
Case "f":
analogWrite (analogOutPinG, 200);
analogWrite (analogOutPinB, 0);
analogWrite (analogOutPinR, 255);
breken;
Case 'g':
analogWrite (analogOutPinG, 120);
analogWrite (analogOutPinB, 0);
analogWrite (analogOutPinR, 255);
breken;
Case "h":
analogWrite (analogOutPinG, 0);
analogWrite (analogOutPinB, 0);
analogWrite (analogOutPinR, 0);
breken;
}
}
}