Arduino voor kinderen

Blink met ingebouwde LED

In dit eerste programma voor de Arduino gaan we een LED lampje laten knipperen.

Op een Arduino is standaard op pin 13 een LED lampje aangesloten. Om deze te laten knipperen hebben we deze 3 functies nodig:

  • pinMode()
  • digitalWrite()
  • delay()

Voor we beginnen is het goed om te weten dat alle tekst na een // gezien wordt als commentaar. Deze tekst wordt niet door de Arduino gebruikt en is bedoeld om de code begrijpelijk te maken voor jezelf en anderen.

// een enkele regel commentaar moet altijd beginnen met 2 slashes
/*
Het is mogelijk om commentaar over meerdere regels
te verdelen door deze tussen / * en * / te plaatsen.
*/

pinMode()

De pinnen op een Arduino kunnen op 2 manieren gebruikt worden, namelijk als ingang of als uitgang.
Een ingang, ook wel INPUT genoemd, wordt gebruikt om signalen naar de Arduino te sturen vanaf sensoren bijvoorbeeld.
De uitgang, ook wel OUTPUT genoemd, wordt gebruikt om signalen te versturen vanuit de Arduino.
Met pinMode() kan voor iedere pin opgegeven worden of het een ingang of een uitgang is.
Meestal wordt in setup() bepaalt of pinnen ingang of uitgang zijn:

pinMode(13, OUTPUT); // maak digitale pin 13 een uitgang   

digitalWrite()

Een Arduino heeft 2 soorten pinnen die we kunnen gebruiken:

Digitale pinnen
Digitale pinnen zijn AAN of UIT net als de lichtknopjes in huis, bij een Arduino noemen we dat HIGH (Engels voor hoog) en LOW (Engels voor laag).

Analoge pinnen
De andere pinnen zijn analoge pinnen (A0 tot en met A5 op de Arduino). Analoge signalen lijken meer op dimmers. In plaats van aan of uit kunnen ze ook een beetje aan zijn. De analoge pinnen kunnen een waarde hebben tussen 0 t/m 255. Een waarde van  0 is hetzelfde als LOW en 255 is hetzelfde als HIGH.

Met digitalWrite(), dit is Engels voor digitaal schrijven, kunnen we een pin aan of uit zetten:
digitalWrite(13, HIGH);   // zet pin 13 aan
digitalWrite(13, LOW);   // zet pin 13 uit
Als bovenstaande code wordt uitgevoerd zal niet te zien zijn dat de LED aan en uit gaat. Herinner je je dat de loop() van de Arduino soms wel 130000 keer per seconde wordt uitgevoerd? In dit geval zal de LED dus 130000 keer per seconden AAN en UIT gezet worden.
Om dit knipperen iets langzamer te laten gaan moeten we tijdens elke keer dat de loop() wordt herhaald (dit wordt ook wel een iteratie genoemd) even wachten.
Dit wachten kan gedaan worden met de delay() functie.

delay()

Het Engelse woord delay betekent gewoon wacht. Het delay commando laat de Arduino voor een opgegeven aantal milliseconden wachten. Er gaan 1000 (duizend) milliseconden in 1 seconde:
delay(1000); // wacht 1 seconde    
Het echte programma dat we gaan maken ziet er zo uit:

void setup() { 
  // maak van digitale pin 13 een uitgang
  pinMode(13, OUTPUT);                    
}

void loop() {
  // zet pin 13 aan
  digitalWrite(13, HIGH);  
 
  // wacht 1 seconde 
  delay(1000);
   
  // zet pin 13 uit
  digitalWrite(13, LOW);  

  // wacht 1 seconde 
  delay(1000);   
}

Upload dit programma naar de Arduino en kijk of de LED gaat knipperen.

Leave a Reply

Your email address will not be published. Required fields are marked *