ArduinoBLINK

We gaan een eenvoudig programma gebruiken, zodat een LED zal gaan knipperen. Dit gaan we doen zonder zelf een regel te hoeven te typen. In de IDE zit een setje voorbeeld programma's. Zo een programma gaan we gebruiken.

  • Klik op "Bestand"
  • Klik op "Voorbeelden"
  • Klik op "01.Basics"
  • En dan op "Blink"

Er zal een nieuw venster openen met hierin de sketch van het Blink programma. Het eerste deel is een groot stuk commentaar, tussen de /* en */ tekens, dat heb we eerder besproken. Scroll in de IDE naar beneden en daar is de code. Je ziet dat de code een andere kleur heeft als de programma code. Commentaar is grijs. De programma code is zwart, oranje en groen. Het kleuronderscheid voor de verschillende mogelijkheden. Ik heb de code voor de leesbaarheid iets aangepast.

Als je deze code wilt proberen, kopier dan de code in onderstaand blok en zet deze in je eigen editor zetten.

// Constants
const int ledRed = 2;

// Setup function runs once when powerup the board and on reset 
void setup() {
  // Initialize LED as an output.
  pinMode(ledRed, OUTPUT);
}

// The loop function runs over and over again forever
void loop() {
  digitalWrite(ledRed, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(1000);                  // wait for a second
  digitalWrite(ledRed, LOW);    // turn the LED off by making the voltage LOW
  delay(1000);                  // wait for a second
}

Boven de setup heb ik nog een regel toegevoegd waarin ik aangeef dat ik een Rode Led heb, op positie 2. We lopen door het programma heen.



ArduinoWalkthru

Ik heb een constante gemaakt die ik ledRed noem, deze geeft aan dat de LED straks op positie 2 zal zitten. Het is een goed gebruik om dit soort instellingen bovenin het programma op te nemen. De term const wil zeggen dat het een constante is. De waarde blijft constant en zal niet veranderen. Sterker nog, het is niet toegestaan om deze waarde aan te passen. Het woordje int wil zeggen dat het een integer is. Een integer is een getal (zonder iets achter de komma). Hier maken we een constante variabele van het type integer met de waarde 2 en noemen deze ledRed. Hier heeft dat nog geen verdere functie, dit is voor gebruik later in het programma.

Dan komt de setup functie, voorafgegaan door een commentaar regel. Het is goed gebruik om alle functies te voorzien van commentaar, zodat iemand anders, of jij zelf (na enkele maanden/jaren), nog eenvoudig kan zien wat de functie doet.

In de setup gaan we de waarde van de constant, de variabele ledRed, meteen gebruiken. Met het statement:

pinMode(ledRed, OUTPUT)

geven we aan dat pin ledRed (die hebben we op nummer 2 gezet) een output pin is. Dat wil zeggen dat we hier waarden uit gaan sturen, uitgaand. We zouden dezelfde pin ook kunnen gebruiken voor het lezen van een waarde, input, bijvoorbeeld om de waarde van een knop, lichtsensor etc in te lezen. Hier sturen we een LED aan, we gaan aangeven of de LED aan of uit staat, dus is het een als output gedefinieerde pin.

Dan komen we bij de loop aan. Het eerste commando is een digitalWrite. We schrijven naar de pin ledRed (nummer 2 dus) een HIGH (hoge) waarde. Met andere woorden, we zetten stroom op deze pin en als de aansluiting goed is, dan zal de LED gaan branden.

Delay is Engels voor vertraging. Hier vertragen we 1000 milliseconden. Dat is precies 1 seconde. Het programma zal een seconde lang hier gaan staan wachten. Er gebeurd niets. Maar de stroom die we hierboven met de digitalWrite op de pin ledRed hebben gezet blijft wel gewoon lopen. De LED brand dus nog steeds.

We komen nu weer bij nog een digitalWrite. We schrijven naar de pin ledRed (nummer 2 nog steeds) een LOW (lage) waarde. Hiermee zetten we de stroom op deze pin uit en zal de LED uitgaan. Omdat we een delay van 1 seconde hadden was de LED dus 1 seconde aan.

Dan komt er weer een Delay van 1000 milliseconden. Waarin we wachten, terwijl de LED dus niet brand.

We zijn nu op het einde van de loop gekomen. De sketch zal 'loopen' en weer bovenaan beginnen en zal dan de digitalWrite weer op HIGH zetten en gaan wachten, LED uitdoen wachten. En opnieuw beginnen....

Samengevat de acties die gebeuren:

  • Zet LED aan
  • Wacht 1000 millisec
  • Zet LED uit
  • Wacht 1000 millisec
  • Zet LED aan
  • Wacht 1000 millisec
  • Zet LED uit
  • Wacht 1000 millisec
  • ...etc

Een prachtig knipperlicht dus.



ArduinoAansluiten

Nu hebben we heel leuk het programma naar het Arduino bordje geupload. Maar verder gebeurd er nog niets. We gaan nu de onderdelen aansluiten. Daarvoor gebruiken we onderstaand schema.

In het schema herkennen we de Arduino, met aan de linkerkant de grote aansluiting voor de USB kabel. Op de Arduino zitten kleine zwarte blokjes. Hierin kun je een draad steken. De andere kant steek je in een pin op het grote grijze pinnetjes-ding. Dat is de breadbord. Dat is meer als enkel nog meer gaatjes om draden in te steken. De vertikale kolommen in het midden zijn met elkaar verbonden, per kolom. Hetzelfde voor de 2 rijen helemaal bovenaan en onderaan. Die zijn horizontaal verbonden.

Hier is de pin op de Arduino bij nummer 2 verbonden met een pin op het breadbord. In dezelfde kolom zit de lange poot van de LED. De korte poot van de LED zit in de kolom ernaast. In de kolom met de korte LED poot zit ook een pootje van een weerstand. De andere poot van de weerstand zit in een andere lege kolom op het breadboard. Deze laatste kolom is verbonden met de GND op de Arduino. Dat is de Ground.



ArduinoWerking

Als we nu het programma laten draaien, dan zal die een HIGH waarde op pin 2. Er zal stroom kan lopen, uit de Arduino via pin 2 naar de kolom waar ook de LED op zit. De stroom zal de LED inlopen en er aan de andere kant weer uit. Dan loopt de stroom door de weerstand naar de groene draad en terug naar de GND op de Arduino. De stroom kan in een cirkeltje lopen.

Als stroom zo in een cirkel kan lopen van HIGH naar GND dan zal de stroom dat doen. En als er stroom loopt dan zal de LED gaan branden. Licht geven.

In het programma wachten we even en zetten dan de LED uit, wachten even en zetten de LED weer aan. Ons knipperlcht werkt!



Copyright 2019 www.punthooft.nl
We do not collect cookies for advertisement. Your data is never send to third parties.