Opdrachten
1. De eerste LED!
- Haal de stekker uit het stopcontact
- Sluit een plus-lijn van je breadboard aan op "5V" van je Arduino
- Sluit een min-lijn van je breadboard aan op "GND" van je Arduino
- Neem een weerstand en plaats deze met een poot in de plus-lijn
- Plaats de andere poot van de weerstand in een rijtje van je breadboard (je mag de pootjes buigen)
- Neem een LED en plaats de lange poot in het zelfde rijtje en de korte poot in een ander rijtje
- Neem een kabeltje en verbind dit rijtje met de min-lijn.
- Je hebt nu als het goed is iets wat hier op lijkt:
Het mag er natuurlijk wel anders uit zien. Je hebt meerdere GNDs op de arduino en het maakt niet
uit welke je gebruikt. Het maakt ook niet uit welke pluslijn en minlijn je gebruikt. Je mag ook
zelf kiezen welke rijtjes van het breadboard je gebruikt en welke gaatjes van dat rijtje je
gebruikt.
- Doe de stekker weer in het stopcontact. Als het goed is de LED nu aan.
2. Je eerste programma
- Haal de USB kabel uit de oplader en doe deze in de Chromebook
- Kies de link van jouw groepsnummer:
- Klik op "Add to my sketchbook"
- Log in met de arduino gebruikersnaam en het wachtwoord
- Als je weer terug bent op de zelfde pagina, klik dan nog een keer op "Add to my sketchbook"
- Als er een een gele balk is, zoals in het plaatje, klik dan op de knop met "install app" in deze balk.
Als er geen gele balk is, mag je dit hele puntje overslaan.
Klik dan op "+ Nu proberen" op deze pagina (op de zelfde plek als "Toev aan Chrome" in het plaatje)rmalmal:
Klik daarna op "app toevoegen":
- Dan moeten we hem instellen zodat hij weet dat hij de arduino moet gebruiken. Klik op het kleine
driehoekje:
Kies dan "Board at /dev/ttyUSB0":
Dan moet je "Arduino/Genuino Uno" kiezen (hiervoor moet je een klein beetje naar beneden scrollen).
Klik dan op "ok".
- Zoek de knop met een pijltje naar rechts en klik hier op
- Als hij vraagt om een google account, kies dan "stoplicht.jasperhorn.nl@gmail.com". Als deze er niet
tussen staat, kies dan "account toevoegen en log in met de google gebuikersnaam en het wachtwoord.
- Klik op toestaan
- Wacht eventjes en kijk dan wat de arduino nu doet
Als je klaar bent en we zijn nog niet verder gegaan, dan mag je ook naar de programma's van de andere
groepjes kijken. Onthoud wel goed wat jouw eigen programma doet!
3. Zelf een programma schrijven
- Klik op "new sketch"
- Zet in de "setup" methode
pinMode(LED_BUILTIN, OUTPUT); er bij.
LED_BUILTIN is de naam van de LED die al op de arduino zit, en die
we ook al hebben zien knipperen in de vorige opdracht. Met pinMode
zetten we deze klaar voor gebruik.
- Voeg in de
loop methode digitalWrite(LED_BUILTIN, HIGH); toe.
Hiermee zetten we de LED aan.
- Maak een nieuwe regel aan onder de vorige. Hier komt te staan:
delay(500);
Hiermee zeggen we dat de arduino een halve seconde moet wachten nadat hij de led heeft aangezet.
- De volgende regel wordt:
digitalWrite(LED_BUILTIN, LOW);
Hiermee zetten we de LED na het wachten weer uit.
- Je moet nu ongeveer dit hebben:
- Klik op het pijltje naar rechts om je programma op de arduino te zetten.
- Kijk wat het resultaat is. Is dit wat je had verwacht? Kun je uitleggen waarom dit gebeurd?
- De arduino zette de LED aan, wachtte een halve seconde en zette hem dan weer uit.
Maar daarna begint hij meteen weer bovenaan de
loop() methode, dus dan zet hij hem
meteen weer aan. Omdat dit meteen is, zie je niet eens dat hij uit is geweest...
- Voeg na het uitzetten nog een wachttijd toe:
delay(500);
- Je moet nu ongeveer dit hebben:
- Klik weer op het pijltje om het programma op de arduino te zetten.
- Doet hu nu wat je had verwacht?
- Probeer zelf eens om het programma aan te passen. Kun je de LED sneller laten knipperen?
En langzamer? Vergeet niet om elke keer op het pijltje te klikken om je programma
op de arduino te zetten.
4. Programma zonder laptop
We gebruiken nu de Chromebook om het programma op de arduino te zetten, maar ook om hem stroom te geven.
Maar als het programma op de arduino staat, hebben we eigenlijk de Chromebook niet meer nodig, alleen
nog de stroom. Laten we daar eens naar kijken.
- Haal de USB stekker uit de Chromebook.
- Doe de stekker weer in de oplader en de oplader in het stopcontact.
- Zie je dat hij nog steeds het zelfde programma doet dat je er zelf als laatste op
hebt gezet? Het programma staat echt op de arduino en hij doet het dus ook zonder
Chromebook.
- Haal de USB-stekker weer uit de oplader en doe hem weer terug in de Chromebook.
5. Je eigen LED
We gaan nu een LED op je breadboard zetten en deze aansturen vanuit je programma.
Zo moeten hardware en software dus echt gaan samenwerken.
- Haal alles weer uit je breadboard, behalve de kabeltjes van 5V naar de pluslijn en
van GND naar de minlijn. Doe alle spullen die je loshaalt weer terug in je doosje.
- Pak je rode ledje en zet deze in twee verschillende rijtjes van je breadboard.
Doe de lange poot aan de rechterkant en de korte aan de linker.
- Neem een van je weerstanden en doe hem met de ene poot in dezelfde rij als de korte
poot van je rode LED, en met de andere poot in de minlijn.
- Pak een kabeltje en maak deze met de ene kant vast aan de rij van de lange poot van
de rode LED en met de andere kant aan pin 7 van je arduino.
- Je moet nu ongeveer dit hebben:
- Zet in het programma boven de
setup() methode
deze regel: #define RODE_LED 7
- Vervang in het programma dat je nu hebt
LED_BUILTIN door
RODE_LED op alledrie de plekken.
- Je moet nu ongeveer dit hebben:
- Zet het programma op de arduino en kijk of de goede LED nu knippert.
- Pas zelf je programma aan. Probeer om de LED maar even kort aan te laten
zijn terwijl hij wel even lang uit blijft. Kun je zelf nog een leuke
aanpassing voor je programma bedenken?
6. LEDs in drie kleuren
- Je hebt in de vorige opdracht de rode LED aan je arduino verbonden.
Verbind nu op de zelfde manier ook de gele en groene LEDs met je arduino.
Maak de gele LED vast aan pin 8 en de groene aan 9.
- Zet onder de regel
#define RODE_LED 7 de nieuwe regel
#define GELE_LED 8 en daaronder nog een nieuwe regel:
#define GROENE_LED 9
- Zet in de
setup() methode alledrie de LEDs klaar. Voeg hier
pinMode(GELE_LED, OUTPUT); en
pinMode(GROENE_LED, OUTPUT); toe.
- Zet waar je nu alleen de rode LED aan zet alledrie de LEDs aan. Zet waar
je nu alleen de rode LED uitzet alledrie de LEDs uit.
- Je moet nu ongeveer dit hebben:
- Probeer zelf om je programma aan te passen zodat de LEDs om de beurt aan
zijn in plaats van tegelijk.
7. Je eigen methode
We hebben al een aantal methodes gezien. We hebben zelf de inhoud van de magische
methodes setup() en loop() geschreven, maar we hebben
ook een hele hoop methodes gebruikt. Zo was er `pinMode()` om dingen klaar te
zetten, `digitalWrite()` om een LED aan of uit te zetten en `delay()` om te zeggen
dat je arduino even moet wachten.
Maar je kunt ook je eigen methodes schrijven. Dat gaan we nu doen.
- Maak boven
setup() een methode groen() die er zo uitziet:
- Zet in deze methode de groene LED aan en de rode en gele led uit. Dan krijg je dit:
- Maak zelf een methode
rood(), die rood aanzet en groen en geel uitzet.
- Nu gaan we de nieuwe methodes gebruiken. Dit doe je zo:
- Dan heb je nu ongeveer dit:
- Zet het programma op de arduino en kijk of het doet wat je verwacht.
- Maak ook een methode
oranje() en gebruik deze in je programma.
8. En dan nu: een knopje
We gaan nu een knopje gebruiken. We beginnen met een knopje dat we nog niet in ons programma
gebruiken.
- Als eerste zetten we het knopje op de breadboard. Kies een een plekje waarbij de
LEDjes niet in de weg zitten.
- Steek even je hand omhoog en vraag om een extra LED en weerstand.
- Maak een kabeltje van de ene kant van het knopje naar de minlijn.
- Neem de LED en doe het korte pootje in het zelfde rijtje als de andere kant van het knopje.
De lange poot mag in het rijtje ernaast.
- Neem de weerstand en doe het ene pootje in het rijtje van de lange poot van de LED en
de andere poot in de pluslijn.
- Dan heb je nu ongeveer dit:
- Kijk of het knopje werkt.
9. Het knopje in je programma
- Haal het knopje en alle onderdelen die daarbij horen weer uit je breadboard. Laat
je stoplichtLEDjes zitten en alles wat daarbij hoort zitten.
- Doe het knopje weer in je breadboard.
- Doe een draadje van de ene kant van het knopje naar de minlijn.
- Doe een draadje van de andere kant van het knopje naar pin 2.
- Dan heb je nu ongeveer dit:
- Klik "new sketch".
- Schrijf bovenaan je programma een
#define voor de rode, groene en gele led
- Zet er ook een
#define
- Zet in de setup de
pinMode klaar voor de LEDjes zoals we dat eerder ook hebben gedaan.
- Zet in de setup je knopje klaar in de input-modus:
pinMode(KNOPJE, INPUT);
- Het lezen van de staat van het knopje doe je met
digitalRead(). Dit zet je
ineen if op deze manier if (digitalRead(PIN) == LOW) daarna
zet je { en een }. De opdrachten die je hier tussen zet worden
alleen uitgevoerd als de knop is ingedrukt. Als je de LOW in HIGH
verandert, dan worden de opdrachten uitgevoerd als de knop niet ingedrukt is. Je kunt ook
nog else gebruiken om aan te geven wat hij juist moet doen als het eerste deel
niet wordt uitgevoerd. Dit alles gaan we op deze manier gebruiken:
- Zet je programma op de arduino en kijk of hij het doet./li>
- Kun je je programma aanpassen zodat het LEDje aan is als het knopje niet is ingedrukt?
- Pas je programma zo aan dat alledrie de LEDs worden gebruikt. Kies zelf wat je wilt dat de LEDs
doen.