Er zijn een aantal oefeningen die je doet voordat je met deze pagina begint. Dit is een vervolg op: https://junioriot.nl/blocks-desktop-arduino-nano/
Analog out, gedimd licht op poort 3
Nu heb je de poorten ‘aan’ en ‘uit’ gezet. Sommige poorten kunnen ook met PWM een gedeelte van de tijd aan zijn. Een ledje geeft dan minder licht. In PictoBlox kan je dit instellen voor bijvoorbeeld poort D3.
Laat de groene en rode led van de vorige oefeningen in het breadboard.
- Maak in PictoBlox Desktop dit programma:
-
- When [ right arrow ] key pressed
- set digital pin [ 13 ] output as [ LOW ]
- change x by ( 10 )
- set digital pin [ 2 ] output as [ LOW ]
- set PWM pin [ 3 ] output as [ 255 ]
-
- When [ left arrow ] key pressed
- set digital pin [ 13 ] output as [ HIGH ]
- change x by ( -10 )
- set digital pin [ 2 ] output as [ LOW ]
- set PWM pin [ 3 ] output as [ 30 ]
Extra
Oefening met PWM en geluid: (link)
Lukt het je om de groene led feller en minder fel te laten branden?
Servo bewegen
Bij dit voorbeeld is het handig om de Arduino Nano in het breadboard te plaatsen. Zo kan je de servo goed aansluiten. Je hebt daarvoor nog een paar m-m jumperwires nodig. Gebruik deze aansluitpunten op de Arduino Nano:
-
- Bruin –> GND
- Rood –> 5V
- Oranje –> D10
Nadat je deze aansluitingen hebt gemaakt, kan je jouw programma maken.
- Pas je programma aan:
-
- when [ right arrow ] key pressed
- change x by ( 10 )
- set digital pin [ 13 ] output as [ LOW ]
- set servo on [ 10 ] to ( 0 ) angle
-
- when [ left arrow ] key pressed
- change x by ( -10 )
- start sound [ Grunt ]
- set digital pin [ 13 ] output as [ HIGH ]
- set servo on [ 10 ] to ( 180 ) angle
Lukt het je om de servo te laten bewegen?
In dit voorbeeld gebruiken we een SG90 servo. Deze is er in twee soorten:
- 180 graden versie: De signaaldraad geeft aan in welke stand deze moet stilstaan, van ongeveer -180 graden tot 180 graden. De middenstand noemen we 0 graden.
- 360 graden: Met het zelfde signaal zal deze hard of zacht linksom of rechtsom draaien. In de middenstand staat de motor stil.
Kan jij ontdekken welke soort jullie gebruiken: 180 graden, of 360 graden?
Een potmeter uitlezen
Neem een potmeter, en plaats deze ‘ergens’ op een ongebruikte plek in het breadboard. Maak de volgende verbindingen:
-
- Potmeter linker pootje, aan Arduino GND
- Potmeter rechter pootje, aan Arduino 5V
- Potmeter middelste pootje, aan Arduino A0
- Groene led, langste pootje op D3
- Groene led, kortste pootje op D2
Nadat je deze aansluitingen hebt gemaakt, kan je jouw programma maken.
- Maak dit programma:
-
- when flag clicked
- forever
- goto x: ( read analog pin [ A0 ] ) y: ( 0 )
- set digital pin [ 2 ] output as [ LOW ]
- set PWM pin [ 3 ] output as [ read analog pin [ A0 ] ]
- wait ( 0.1 ) seconds
- Druk op de groene vlag om je programma te starten
- Draai aan de potmeter om de beer te laten lopen
Lukt het om met de potmeter de beer te laten lopen? Zie je ook de groene led feller worden?
Als je het groene ledje rustig aan wat feller maakt, zie je het af en toe toch terugspringen. Dat is raar. Hoe dat kan komen? Het getal wat uit de A0 gelezen wordt, varieert ongeveer van 0 tot 1024. Het getal waarmee je de PWM instelt, varieert ongeveer van 0 tot 255. Dat ene getal past niet in het andere vakje, en blijkbaar is dit hoe PictoBlox en de Arduino het oplossen. Daar kan je later nog veel meer over ontdekken! In de volgende oefening delen we het getal van A0 daarom door 4.
Extra: rekenen met een potmeter dimlicht
In de vorige oefening las je hoe het licht een beetje stuitert. Daarom willen we de meetwaarde van A0 delen door 4.
Gebruik hetzelfde circuit als in de vorige oefening.
Maak het volgende programma:
-
- when flag clicked
- forever
- goto x: ( ( read analog pin [ A0 ] ) / ( 4 ) ) y: ( 0 )
- set digital pin [ 2 ] output as [ LOW ]
- set PWM pin [ 3 ] output as [ ( ( read analog pin [ A0 ] ) / ( 4 ) ) ]
- wait ( 0.1 ) seconds
- Druk op de groene vlag om je programma te starten
- Draai aan de potmeter om de beer te laten lopen
Loopt de beer nu soepeler heen en weer? Zie je ook de groene led feller worden?
Extra: Potmeter vervangen door een drukknop
Ga verder met het circuit van de oefening met de potmeter. Haal de potmeter weg en plaats een drukknop, zodat deze verbonden is met GND en A0.
Kijk wat het programma nu doet.
Als ik de drukknop indruk, dan staat de beer stil.
Als ik de drukknop loslaat, dan wiebelt de beer heen en weer. De meetwaarde varieert, en dat komt omdat A0 nu nergens aan vast zit.
Extra: Potmeter vervangen door drukknop en weerstand
Ga verder met het circuit van de oefening met de potmeter. Haal de potmeter weg en plaats een drukknop, zodat deze verbonden is met GND en A0. Plaats een weerstand, zodat deze verbonden zit met A0 en 5V.
Kijk wat het programma nu doet.
Als ik de drukknop indruk, dan staat de beer stil.
Als ik de drukknop loslaat, dan staat de beer aan de andere kant. De meetwaarde is nu stabiel, en dat komt omdat A0 nu met de weerstand aan 5V zit.
Extra: Potmeter vervangen door een schakelaar
Ga verder met het circuit van de oefening met de potmeter. Haal de potmeter weg en plaats een schakelaar, zodat deze verbonden is met GND, A0 en 5V. De A0 zit op het middelste pootje van de schakelaar.
Kijk wat het programma nu doet.
Met de schakelaar kan ik de beer tussen twee posities laten springen.
Tip 1: In plaats van analoge ingang A0 kan je ook een digitale ingang gebruiken.
Tip 2: Op de foto zie je ook nog een andere schakelaar. Meestal is bij deze schakelaar het pootje aan de kant van het drukknopje de common. Deze pin wil je dan op A0. Als je het anders aansluit, dan kan het gebeuren dat de Arduino zichzelf reset, en dan moet je PictoBlox weer even opnieuw verbinden.
Extra: Potmeter vervangen door motor type 300 als generator
Ga verder met het circuit van de oefening met de potmeter. Haal de potmeter weg en plaats een motor type 300, zodat deze verbonden is met GND en A0.
Kijk wat het programma nu doet.
Door aan de motor te draaien kan je de beer opzij laten schuiven. Hoe harder je draait, hoe verder de beer beweegt.
Tip 1: Met een heel klein zonnepaneeltje kan je ook meten hoe sterk de zon schijnt. Wij hebben dit eigenlijk al gedaan met de LDR.
Tip 2: Het invoeren van een externe spanning kan de Arduino beschadigen. Kies je materialen zo dat je niet te ver voorbij het einde van het meetgebied zal gaan.
Extra: potmeter vervangen door een LDR lichtsensor en een weerstand
Op dezelfde manier kan je ook een lichtsensor uitlezen. We hebben nodig:
- een ‘grote’ weerstand van 100k
- en een LDR lichtgevoelige weerstand.
- het groene ledje
Maak de volgende verbindingen:
-
- Weerstand linker pootje, aan Arduino GND
- Weerstand rechter pootje, aan Arduino A0
- LDR linker pootje, aan Arduino A0
- LDR rechter pootje, aan Arduino 5V
- Groene led, langste pootje op D3
- Groene led, kortste pootje op D2
Nadat je deze aansluitingen hebt gemaakt, kan je jouw programma maken.
Bij de potmeter merkte je dat bij een groot deel van de meting de beer tegen de zijkant van je scherm stond, ook met de potmeter in de middenstand. Omdat de lichtmeting vooral in de middenstand van de meting zit, delen we het meetgetal door 4. Het programma wordt daarmee iets ingewikkelder.
- Maak dit programma:
-
- when flag clicked
- forever
- goto x: ( ( read analog pin [ A0 ] ) / ( 4 ) ) y: ( 0 )
- set digital pin [ 2 ] output as [ LOW ]
- set PWM pin [ 3 ] output as ( ( read analog pin [ A0 ] ) / ( 4 ) )
- wait ( 0.1 ) seconds
Lukt het om met de lichtsensor de beer te laten lopen? Zie je de groene led mee veranderen?
Extra: Met de LDR lichtsensor een servo bedienen
Door de bovenstaande voorbeelden te combineren kan je met je de servo bedienen met bijvoorbeeld een potmeter of met je LDR sensor.
Je hebt dan nodig:
- een ‘grote’ weerstand van 100k
- en een LDR lichtgevoelige weerstand.
- het groene ledje
Maak de volgende verbindingen:
-
- Weerstand linker pootje, aan Arduino GND
- Weerstand rechter pootje, aan Arduino A0
- LDR linker pootje, aan Arduino A0
- LDR rechter pootje, aan Arduino 5V
- Groene led, langste pootje op D3
- Groene led, kortste pootje op D2
-
- Servo Bruin –> GND
- Servo Rood –> 5V
- Servo Oranje –> D10
Nadat je deze aansluitingen hebt gemaakt, kan je jouw programma maken.
We gaan het meetgetal wat we hebben omgerekend, nu op meerdere plekken gebruiken. Daarom stoppen we dit getal eerst in een variabele. Deze vind je in het oranje gedeelte van het menu.
- Maak dit programma:
-
- when flag clicked
- forever
- set [ my variabele ] to ( ( read analog pin [ A0 ] ) / ( 4 ) )
- goto x: ( my variabele ) y: ( 0 )
- set digital pin [ 2 ] output as [ LOW ]
- set PWM pin [ 3 ] output as ( my variabele )
- set servo on [ 10 ] to ( my variabele ) angle
- wait ( 0.1 ) seconds
Lukt het om met de lichtsensor de beer te laten lopen? Zie je de groene led mee veranderen? Beweegt de servo nu ook?
Extra: Arduino en de Ultrasone sensor in PictoBlox
Dit is een leuke oefening.
En verder?
Hierna kan je een robot proberen te bouwen:
Of misschien wil je liever licht programmeren: https://junioriot.nl/extra-licht-programmeren-in-pictoblox/















