3: Arduino programmeren
3: Arduino programmeren
Wat is programmeren?
Programmeren is het geven van opdrachten aan een apparaat, in dit geval de Arduino
Met deze opdrachten kan de Arduino een taak uitvoeren.
Bijvoorbeeld; doe het LEDje doorlopend één seconde aan en daarna weer één seconde uit, weer aan en weer uit, enzovoort.
Een Arduino programmeer je via een computer de software Arduino IDE.
> Open het programma Arduino IDE.
Je ziet nu een leeg programma zoals hiernaast.
Bij onze opdrachten krijg je meestal het grootste deel van de code. Die kun je dan knippen en plakken in de software. Je moet dan vaak nog een stukje van de code aanpassen.
In het witte tekstvlak in het midden komt de programmeertekst te staan. Programmeertekst noemen we code. Arduino noemt een project met code ‘sketch’.
De code ontcijferen
We gaan een voorbeeld code bekijken, en we proberen de code te begrijpen.
We gebruiken daarbij de stroomkring die je gemaakt hebt in les 2, met een LED lamp, een weerstand en een Arduino.
Open de Arduino IDE editor
Het programma kun je vinden door op het vergrootglas naast de Windows-knop te klikken en dan 'Arduino' te typen.
Klik het programma om te openen.
De Arduino IDE editor
De code die we je hieronder geven laat de LED knipperen, één seconde aan, één seconde uit. Maar eerst moet je het programmeer-programma openen.
/*
Autheur: Fun met Electronica
Link: https://training.funmetelectronica.nl/docs/arduino-basis/lessen/les-1-led/
Beschrijving: Laat een led knipperen
*/
int led = 13; // De led is aangesloten op pin 13
/*
Het programmablok void setup wordt eenmaal beschreven
*/
void setup() {
pinMode(led, OUTPUT); // We geven aan dat de led-pin-aansluiting een output is (spanning moet geven)
}
/*
Het programmablok void loop herhaalt zich keer op keer
*/
void loop() {
digitalWrite(led, HIGH); // zet spanning op de led-pin
delay(1000); // wacht een seconde (1000 miliseconden)
digitalWrite(led, LOW); // zet de spanning van de led-pin af
delay(1000); // wacht een seconde
}
/*
Opdracht 1:
Probeer de tijd eens te veranderen
Opdracht 2:
maak er extra stappen bij..
*/
Hoe moet je de code ‘lezen’?
We doen dit is stappen en we beginnen bovenaan.
De eerste vijf regels zijn nog geen code.
Arduino leest deze tekst niet. Het staat tussen /* en */; op regel 1 en 5.
Dit is informatie voor de gebruiker.
Regel 7 is wel een code-regel.
Hier vertel je tegen de Arduino dat op pin 13 een led is aangesloten.
Kijk ook nog maar een naar het plaatje van de Arduino met de stroomkring. Overal waar verder in de code het woord ‘led’ staat, weet Arduino dat het gaat over pin 13. De code-regel eindigt met ; Na de ; staat ook nog tekst achter de tekens ‘//’
Dit is informatie voor de gebruiker en wordt niet door Arduino gelezen.
Regel 9, 10 en 11 worden ook niet door Arduino gelezen. Het is informatie over de regels 12, 13 en 14.
Regel 12, 13 3n 14 zijn de ‘setup’. Dat is een programmablok dat maar één keer wordt gelezen.
In de Setup wordt informatie gegeven aan Arduino over de pin waarop de led is aangesloten. Deze moet ‘output’ zijn. Dat betekend spanning kunnen geven (om de led te laten branden). De setup-code staat tussen twee tekens; { en } De informatie van de setup staat dus op regel 13.
Nu komen we bij de code die de LED laat knipperen
Het programmablok ‘void loop’ bestaat uit code regels die iedere keer opnieuw worden gelezen.
Ook hier staat de code tussen de twee tekens { en }.
De loop (de code die steeds herhaald moet worden) bestaat dus uit de regels 20 t/m 23.
Na regel 23 begint Arduino dus opnieuw te lezen bij regel 20. En dat steeds weer.
Op regel 20 staat eerst een instructie voor de Arduino. En dan, achter '//' staat geschreven wat de code betekend.
Na de code digitalWrite (led, HIGH); Zet Arduino de led aan en leest Arduino direct de volgende regel, regel 21.
De code delay(1000); zorgt ervoor dat Arduino 1 seconde (1000 milliseconden) wacht voordat de volgende regel gelzen wordt.
Regel 22 zorgt ervoor dat de led uit gaat, regel 23 zorgt ervoor dat Arduino weer een seconde wacht. Op regel 24 ziet Arduino dat hij weer terug moet naar regel 20! En zo gaat het keer op keer door.
Hoe krijg je nu de code van de website op de Arduino IDE?
Dit doe je door te kopiëren en te plakken.
Selecteer met de tekst met ctrl + a
Gebruik voor kopiëren de sneltoets combinatie ctrl + c.
Plak de tekst in het programma met ctrl + v.
Ga met je muisaanwijzer in het codeblok ‘Kopieer’-teken. Klik hierop; de code wordt blauw.
Gebruik nu de sneltoetscombinatie ctrl + c
Ga dan naar Arduino IDE.
Klik één keer in het witte tekstvlak
en gebruikt de sneltoetscombinatie ctrl + a
De code overbrengen (uploaden) naar de Arduino
Controleer eerst of het juiste 'board' geselecteerd is en of deze herkend wordt door Arduino IDE?
Ga naar ‘Hulpmiddelen’
Nu kun je de code uploaden
Nu wordt de code naar de Arduino verstuurd.
Gaat de led knipperen?
Extra opdracht 1: Verander de tijdsduur van het knipperen.
Extra opdracht 2: Programmeer er een paar extra stappen bij. (Verzin zelf wat je er bij programmeert.)
Laat alles controleren door de leraar.
Ga na les 1 naar les 2
Dit doe je op de website onderaan bij les 1
Kijk naar het nieuwe plaatje om de nieuwe stroomkring te bouwen en kopieer en plak de nieuwe code in Arduino IDE. Upload de code en kijk wat er gebeurt. Voer de opdrachten uit.
Bij opdracht 2 van les 2 moet je niet alleen de stroomkring aanpassen, je moet de code ook op verschillende plaatsen aanpassen.