IR uitlezen

Leest de IR-module uit. Als je een afstandsbediening op de Simple Walker II richt en op een knop drukt, wordt er een code verzonden. Deze sketch leest de code uit, en toont het resultaat op de seriële monitor.

Als je een knop indrukt op de afstandsbediening, verstuurt deze een code (een getal) die uniek is voor die knop. Welke code bij welke knop hoort verschilt per afstandsbediening. Bijvoorbeeld bij veel van de Keyes-afstandsbedieningen (die standaard bij de Simple Walker II zit) komt het pijltje naar boven overeen met de code 16736925. Maar, dat is niet altijd zo. Het is dus van belang om uit te vinden welke code bij elke knop op de afstandsbediening hoort. Deze sketch kan je hierbij helpen.

Onder de sketch volgt een uitleg waarin de sketch stap voor stap besproken wordt.

Dit voorbeeld gebruiken

1. Download en installeer de EasyIR-library. Deze library is nodig voor het uitlezen van de IR-sensor.

2. Sluit de IR-sensor aan op pin 2 van de Simple Walker, zoals te zien op het volgende plaatje.

ir-aansluiten

3. Kopiëer de onderstaande sketch naar de Arduino omgeving en upload naar de Simple Walker.

4. Als de code klaar is met uploaden, start de Seriële Monitor.

seriele-monitor

5. Richt de afstandsbediening op de sensor van de Simple Walker en druk op een knop. Als het goed is zie je nu de code die bij deze knop hoort op de Seriële Monitor verschijnen.

Sketch

Je kan deze sketch op twee manieren op de Simple Walker zetten:

  1. Kopiëer de onderstaande code in een nieuw Arduino-bestand (klik hier voor instructies.)
  2. download de sketch hier en open deze vervolgens in de Arduino-omgeving.

Uitleg

1
Het eerste stuk code is commentaar. Door stukken tekst tussen /* en */ te plaatsen, kan je commentaar en uitleg schrijven. Het is een goede gewoonte om code van commentaar te voorzien om het makkelijker leesbaar te maken voor jezelf en voor anderen.

2
Het volgende stuk code voegt de EasyIR-library toe. Als je deze library nog niet hebt gedownload en geïnstalleerd doe dat dan eerst hier.

3
Vervolgens begint de setup. Dit is een stuk code dat één keer wordt uitgevoerd na het aanzetten van de Arduino. Hierin vertellen we de EasyIR-library dat de IR-sensor op pin 2 is aangesloten (met: EasyIR::init(2);). Vervolgens starten we met de regel Serial.begin(9600); de Serial monitor op snelheid 9600 baud (bits per seconde). Dit zorgt ervoor dat de Simple Walker met de computer kan communiceren (zolang ze via de USB verbonden zijn, natuurlijk).

(N.B., regels die beginnen met // zijn commentaar, net zoals de tekst tussen /* en */.)


4
Vervolgens definiëren we de loop()-functie. Deze functie wordt herhaald tot de Simple Walker wordt uitgezet. De rest van de code van deze sketch is allemaal onderdeel van deze loop()-functie.

5
De eerste opdracht in de loop-functie is het uitlezen van de IR-sensor met de code long waarde = EasyIR::read();. Deze regel leest de waarde van de IR-sensor en stopt deze waarde in de variabele met de naam waarde. Als de sensor geen code van de afstandsbediening heeft ontvangen dan is de waarde 0.

6
Het volgende stuk code test of de waarde ongelijk is aan 0 (oftewel of de IR-sensor een code van de afstandsbediening heeft ontvangen) met if(waarde != 0). Het commando != betekend ongelijk'. Dus er staat als de waarde ongelijk is aan 0′. Als dat zo is wordt de code tussen de accolade’s ({ en })uitgevoerd. Tussen de accolade’s staan twee opdrachten: Serial.print("Waarde = "); en Serial.println(waarde);. Hiermee wordt de waarde op de seriële monitor getoond.

7
Vervolgens wordt er met delay(100); 100 milliseconde (één tiende van een seconde) gepauzeerd, waarna de loop()-functie klaar is. Hierna begint de loop()-functie weer opnieuw (stap 4).