Het Arduino Projects Book verschaft een aantal goede startprojecten. Maar didactisch gezien werkte dit boek niet goed voor mij. Maar daarmee acht ik het boek allerminst nutteloos. Wat maak je als je bijvoorbeeld project "Spaceship Interface" uit voert?
Doel |
: |
Op gang komen met de Arduino |
Arduino Projects Book Project 02: "Spaceship Interface"
In project “Spaceship Interface” stuur je met je Arduino 3 LED’s aan met behulp van één schakelaar.
- Als je de schakelaar niet bediend, moet het groene LED branden.
- Als je de schakelaar wel bediend, moeten de twee rode LED’s om beurten gaan knipperen.
- Als je de schakelaar weer loslaat, moeten beide rode LED’s uit gaan en moet het groene LED weer gaan branden.
Hoe programmeer je dit?
Maak eerst gehakt van het project. Dat wil zeggen: hak het project in kleine mootjes en voeg het uiteindelijk samen tot één geheel.
Stap 1: laat één LED branden m.b.v. je Arduino.
Zoek op google een stukje programma waarmee je een LED op je Arduino kunt laten branden. Google “Arduino Control LED”. Neem bijvoorbeeld: https://create.arduino.cc/projecthub/rowan07/make-a-simple-led-circuit-ce8308
Copy/paste de code in je Arduino programma:
int led = 13; // the pin the LED is connected to
void setup() {
pinMode(led, OUTPUT) // Declare the LED as an output
}
void loop () {
digitalWrite(led, HIGH) // Turn the LED on
}
Met deze code kun je een LED laten branden, maar dit geeft nog geen controle, want er zit nog geen schakelaar (switch) in het systeem.
Stap 2: schakel één LED aan met behulp van een schakelaar
Daarom google ik nu: “Arduino Switch Controlled LED”. Ik vind: https://www.electroschematics.com/8964/turn-on-led-button-arduino/.
Copy/paste de code in je Arduino:
/* sketch 1
turn on a LED when the button is pressed
turn it off when the button is not pressed (or released)
*/
int pinButton = 8; //the pin where we connect the button
int LED = 2; //the pin we connect the LEDvoid setup() {
pinMode(pinButton, INPUT); //set the button pin as INPUT
pinMode(LED, OUTPUT); //set the LED pin as OUTPUT
}void loop() {
int stateButton = digitalRead(pinButton); //read the state of the button
if(stateButton == 1) { //if is pressed
digitalWrite(LED, HIGH); //write 1 or HIGH to led pin
} else { //if not pressed
digitalWrite(LED, LOW); //write 0 or low to led pin
}
}
Voila, je kunt nu 1 LED besturen met dit programma. Met dit stukje programma achter de hand moet je nu zelf verzinnen hoe je:
- Stap 3: 1 LED kunt laten branden door de schakelaar NIET te bedienen
- Stap 4: 2 LED’s om beurten kunt laten knipperen m.b.v. een schakelaar
- Stap 5: combineer stap 3 en 4 in één opstelling
Gefeliciteerd: je hebt zelf een “Spaceship Interface” gebouwd! Nu kun je gaan solliciteren bij NASA.