Arduino Nano – Blink Extreme
In deze opdracht programmeer je een Blink op de Arduino, maar dan beter! Het doel voor deze les is dat je leert de weg te vinden in de technieken, zodat je hierna zelf spannende programmeeropdrachten kunt uitvoeren.
Benodigdheden:
- Laptop met geïnstalleerde Arduino IDE, met drivers voor onze Arduino Nano.
- 1x Arduino Nano, met de 328 (ons gele bordje) of de voordeligere 168 chip (ons rode bordje)
https://www.aliexpress.com/item/Top-Micro-USB-Nano-V3-0-ATmega328P-CH340G-5V-16M-Micro-controller-board/32660903735.html - 1x Micro USB-kabel.
Voor de extra uitdagingen:
- Losse leds.
- RGB led.
- Let op: als je soldeergereedschap gebruikt dan kan je de leds niet meer loshalen.
Je moet voor de extra uitdagingen wel hebben geleerd hoe je moet solderen, bijvoorbeeld met de oefening met de trilrobot.
Opmerking over wel of niet solderen
Als je deze oefening doet als onderdeel van de Arduino-bag-of-fun moet je even nadenken of je wel op de Arduino wilt solderen, of dat je de Arduino liever bewaart voor een volgende opdracht.
Je hoeft niet te solderen, want deze oefening werkt redelijk als je de leds los in de Arduino gaatjes prikt zonder te solderen. Buig de pootjes een beetje uit elkaar zodat ze blijven zitten. Je moet er dan wel aan denken dat het contact niet altijd even sterk is waardoor je soms met het ledje moet wiebelen. En pootjes van de verschillende leds moeten elkaar natuurlijk niet raken.
Opmerking over de Arduino IDE
Als je de mobiele Arduino IDE op je eigen computer gaat gebruiken, dan moet je eerst de driver voor deze Nano installeren.
- Arduino IDE en de extra driver installeren: https://new.junioriot.nl/arduino-installeren/
- Instellen en je eerste Blink voorbeeld uploaden: https://new.junioriot.nl/voorbeeld-uploaden/
Werkwijze:
Uitleg van de Arduino onderdelen (als je de trilrobot hebt gedaan)
Je hebt nu de Arduino Nano. Deze Arduino is precies hetzelfde als alle andere types, maar dan kleiner en met een handige micro-USB aansluiting.
Je programma maak je op je computerscherm en deze stuur je via de usb kabel naar de chip op het Arduino bordje. Aan deze chip zitten veel pootjes, kan je ze zien? De meeste pootjes zijn verbonden met één van de aansluit gaatjes aan de rand van het Arduino bordje. In het zakje van de Arduino zie je headers, zwarte stripjes met insteek pootjes voor in deze gaatjes. De headers gebruiken we nu nog niet.
Op de achterkant van de Arduino zie je een wat grotere zwarte chip. Die zorgt voor de communicatie met de usb. Daarvoor hebben we in de computer de juiste driver gekozen. Het kleinere zwarte blokje op de achterkant converteert de stroom van een eventuele externe voeding naar bijvoorbeeld 5 volt of 3 volt voor de Arduino.
De Arduino chip werkt op de 5 volt van de usb kabel. In de Arduino chip zit voldoende weerstand om onze leds direct op de uitgangen aan te sluiten, vergelijkbaar met de leds op onze 3V batterij. We gebruiken geen extra weerstanden.
Ohja, aan de zijkant van de Arduino zie je bij die gaatjes allerlei nummertjes. Zie je bijvoorbeeld waar D2 en D3 staan?
Je eerste blink
Op je laptop open je nu de Arduino IDE. Klik deze aan en wacht even tot het Arduino scherm opent.
Sluit de Arduino via de usb kabel aan op de laptop. In de uitleg hieronder gaat het instellen en testen al een stapje sneller, als je nog eens rustig wilt nalezen hoe alles moet, dan kan je de uitgebreide versie doornemen op: https://new.junioriot.nl/voorbeeld-uploaden/
- Open de voorbeeld code op je scherm via bestand/voorbeelden/01 basics/Blink.
- Kijk bij Hulpmiddelen/board en zorg dat deze is geselecteerd: Arduino Nano.
- Kijk bij Hulpmiddelen/poort, en selecteer de juiste poort (dat is meestal het hoogste nummer).
Stuur het Blink programma naar de Arduino door op je scherm links boven de tweede ronde knop te kiezen, met het pijltje.
Je ziet dan rechts onder dat het programma wordt klaargemaakt. De computer probeert deze dan naar de Arduino te sturen. Als er onderin een oranje balk komt is er een probleem, maar meestal gaat het goed. Bij een probleem kijk je welke tekst in de oranje balk staat, misschien is de poort niet goed gekozen of je kan een foutje in de code hebben.
Knippert de Arduino?
Even opruimen op je scherm
Het programma staat nu midden op je scherm. Wat staat op de bovenste regel? Nee, helemaal bovenaan. De eerste regel begint met twee rare tekens: /*
Daarna komen er een aantal lichtgrijze regels en dan zie je weer een regel met twee rare tekens: */
Dat hele stuk gaan we weghalen. Ga met je cursor helemaal naar links op de bovenste regel. Houdt dan Shift ingedrukt en met pijltje naar beneden selecteer je alle grijze tekst mét de rare tekens. Druk op Delete of Backspace. De tekst en de rare tekens zijn dan weg. Je kunt nu het programma beter zien.
Stuur het programma nog een keer naar de Arduino om te kijken of het nog steeds werkt. Als er een oranje balk komt heb je misschien nog wat rommeltjes op het scherm laten staan. Zorg even dat het goed gaat.
Je tweede blink
Nu staan er nog maar een paar regels op je scherm. Daarin zie je op twee plaatsen het getal 1000. Daarbij zie je allerlei haakjes en puntkomma’s. Die moet je niet veranderen, maar de getallen mag je aanpassen.
Maak van het eerste getal 300 en van het tweede getal 2000. Dat zijn milliseconden. Stuur je programma naar de Arduino.
Knippert de Arduino nu anders?
Je mag het nog een keer proberen met andere getallen. De snelste knipper die ik heb gezien is met de getallen 1 en 10; de led knippert dan niet maar staat vaag aan.
Zet de getallen weer terug naar 300 en 2000.
We kijken naar de code
Leraar: zorg dat je de aandacht van de leerlingen krijgt en vertel…
In je programma kan je twee delen zien. Het eerste deel heet Setup, en dit wordt uitgevoerd wanneer je de Arduino aanzet, of het programma geladen is, of als je op reset drukt. In de opdracht kan je lezen dat de Arduino weet welk poortje we gaan gebruiken voor de knipper led. Dat heet LED_BUILTIN, maar ik weet dat dit poortje 13 is.
Het tweede deel heet Loop, en dit wordt telkens herhaald. Als je goed kijkt dan zie je dat er vier opdrachtregels zijn. De eerste regel zet het poortje met de led aan, want HIGH betekent 3 volt of “aan”. Dan is er een regel die aangeeft hoeveel hij moet wachten, dat zijn de milliseconden. De derde regel zet het poortje met de led weer uit, want LOW betekent 0 volt of “uit”. En daarna zie je weer een wacht-regel. En je ziet de knipper omdat de Loop steeds wordt herhaald..!
Leraar: laat de leerlingen nu weer naar de computer gaan om te kijken of dat er inderdaad staat.
Gefeliciteerd!
Het is gelukt je eerste programma te maken.
Nu mag je iets moeilijkers proberen. Je mag kiezen: een morsecode met deze led, maar als je al kan solderen dan kan je er voor kiezen om extra leds te monteren.
Als je niet weet hoe dat moet kan je elkaar om hulp vragen.
Keuze 1. Morsecode lang-lang-kort
Kijk nu goed naar de gewone blink code. Zie je de vier regels met de gekleurde woorden, die na het woord Loop tussen de krulhaakjes staan? Dit zijn de regels die zorgen dat de led knippert. Krukhaakjes zien er zo uit: { }
De vier regels van de loop willen we een paar keer verdubbelen. Selecteer de vier regels en gebruik control-c. Met control-v kan je ze nu een paar keer plakken. Het is mooi als je er telkens een lege regel achter zet.
Kijk telkens of de code nog werkt door deze naar de Arduino te sturen.
Bij elk blokje van vier regels kan je nu de wacht-getallen veranderen. Probeer eens in morse een ritme te maken; lang-lang-kort met daarna een extra lange pauze?
Keuze 2. Extra leds. D2-D3, D5-D6, D8-D9
Begin met de gewone blink code. Zie je de regel met de gekleurde woorden, die na het woord Setup tussen de krulhaakjes staat? Dit is de regel die vertelt dat we LED_BUILTIN gebruiken.
Verdubbel nu deze regel, zodat hij er drie keer staat. De eerste regel laat je dan zoals hij was. Op de tweede vervang je het woord LED_BUILTIN voor het nummer 2. Op de derde regel verander je LED_BUILTIN naar 3.
Hiermee vertellen we dat we poort D2 en D3 willen gebruiken. Kijk telkens of de code nog werkt door deze naar de Arduino te sturen.
Kijk nu weer naar de blink code. Zie je de vier regels met de gekleurde woorden, die na het woord Loop tussen de krulhaakjes staan?
De eerste regel waarin je het woord LED_BUILTIN ziet wil je verdubbelen, nu zodat het er twee keer staat. Op de tweede regel verander je het woord LED_BUILTIN in het getal 2. Wordt de led daar aan- of uit gezet?
Na de wacht-regel zie je weer een regel waarin je het woord LED_BUILTIN ziet. Wordt de led hier aan- of uit gezet? Deze regel wil je verdubbelen, zodat het er twee keer staat. Op de tweede regel verander je weer het woord LED_BUILTIN in hetzelfde getal 2.
Kijk telkens of de code nog werkt door deze naar de Arduino te sturen.
Neem nu een led en prik deze in gaatjes D2 en D3, en kijk of deze gaat knipperen. Het kan zijn dat je de led om moet draaien. Als de led knippert buig ik altijd één pootje een beetje zodat de led er niet uit valt. Zo onthoud ik dat ik deze heb getest. Als je wilt, mag je deze vast solderen. (let op: vast solderen doe je alleen als je de Arduino echt niet meer voor iets anders wilt gebruiken)
Een ledje op de Arduino solderen is niet moeilijk. De schone soldeerpunt zet je zo dat je het gaatje verwarmt. Na 1 of 2 seconden doe je een heel klein beetje soldeertin tegen het gaatje. Als je het goed doet zie je dat het soldeertin het gaatje ingezogen wordt. Slurp!
Soldeer het tweede gaatje van de led. Knip het uitstekende deel van de pootjes van de led af.
Als je met twee personen op één computer werkt dan kan je nu de tweede Arduino programmeren, en een ledje testen. Als deze goed knippert kan je deze vast solderen.
Voor een volgend ledje kies je D5 en D6. We slaan expres een gaatje over. Verander de code weer totdat deze led werkt en soldeer deze daarna vast.
Hetzelfde doe je dan met D8 en D9.
Probeer eens extra wacht-regels toe te voegen tussen de verschillende led-aan regels, en tussen de verschillende led-uit regels.
Keuze 3. RGB-led.
Deze opdracht kan je kiezen nadat je de drie leds hebt gedaan. We moeten eerst ontdekken welke gaatjes aan de andere kant we willen gebruiken. En we moeten ontdekken welke gaatjes we plus of min moeten maken.
Neem een RGB-led en een batterij. Ontdek welke pootjes je gebruikt om verschillende kleuren aan te zetten. Moet het langste pootje op de plus of de min? In je programma is HIGH de plus, en LOW is de min, moet het langste pootje dan HIGH of LOW zijn?
Bij de meeste RGB leds moet het langste pootje op de plus om licht te maken. Let op: er zijn RGB-leds waarbij het langste pootje op de min gaat; in je programma moet je dan de HIGH en LOW omdraaien.
Voeg in Setup de extra regel toe om de vier pootjes A0-A1-A2-A3 te gebruiken.
Zorg in de Setup dat het langste pootje altijd HIGH is. Hiervoor kan je een regel kopiëren uit de Loop en dan aanpassen.
In de Loop zet je extra regels neer om de R G B kleuren afzonderlijk aan- en uit te zetten. Deze regels kan je kopiëren van wat er al staat, en verder aanpassen. Bij de meeste RGB-leds betekent LOW op deze pootjes dat de led licht geeft.
Keuze 4. Fade?
Kan je bij de voorbeelden een programma met een fade vinden? Hiermee gaat de led langzaam aan, en dan langzaam weer uit. Probeer eens?
In de code lees je welke poort worden gebruikt. Dit wil je vast veranderen naar de nummers waar jij de leds hebt gemonteerd.
Keuze 5. RGB Rainbow fade?
De Fade kan je maken met de drie RGB kleuren. Voor ons zou dat de eerste keer zijn. Je mag daarom zelf uitzoeken hoe dit moet.