13 Oktober 2026 –
Wat hebben een procesoperator, postbode, docent natuurkunde, wijkverpleegkundige, coupeuse en IT’er met elkaar gemeen? Vandaag zitten ze samen aan de werkbank om kennis te maken met elektronica, programmeren en embedded systems. Acht deelnemers met verschillende achtergronden, maar allemaal nieuwsgierig naar wat je met een Arduino kunt maken.
Tiende editie Hands-on Mechatronica
Voor de tiende editie van het SPARK Campus TTO-traject Hands-on Mechatronica gaan we aan de slag met de Arduino Student Kit (AKX00025). Het doel is niet om in één dag volleerd programmeur of elektronicus te worden, maar om te ontdekken hoe hardware en software samenwerken. We beginnen met eenvoudige componenten en bouwen de experimenten gedurende de dag steeds verder uit.

Spanning, stroom en een gesneuvelde LED
We beginnen bij de basis: spanning, stroom en weerstand. Met een multimeter meten we de spanning van een 9V-batterij en controleren we verschillende weerstanden. Zo krijgt de wet van Ohm meteen een praktische betekenis.
Om duidelijk te maken waarom een stroombegrenzende weerstand belangrijk is, sluit ik een rode LED rechtstreeks aan op de 9V-batterij. Zonder weerstand loopt er veel te veel stroom en geeft de LED vrijwel direct de geest. Met een weerstand van 330 ohm zou de stroom ongeveer (9 − 2) / 330 = 21 mA bedragen, uitgaande van 2 volt over de LED. Zonder weerstand ontbreekt die gecontroleerde stroombegrenzing. Eén LED minder, maar acht deelnemers die begrijpen waarom een weerstand noodzakelijk is.
Van Blink naar programmeerlogica
Vervolgens pakken we de Arduino Uno erbij. We beginnen met het bekende Blink-voorbeeld, waarbij de ingebouwde LED op pin 13 knippert. Daarna sluiten we een tweede LED aan, in een kleur naar keuze, en passen we het programma aan zodat beide LED’s afwisselend knipperen.
Vervolgens voegen we een teller toe en tonen we via de seriële monitor hoe vaak de LED heeft geknipperd. Bij de honderdste keer roepen we een eigen functie aan, geven we een melding en zetten we de teller terug op nul. Zo behandelen we variabelen, voorwaarden en functies zonder dat het meteen een theoretische programmeerles wordt.

Muziek maken met een piezo-buzzer
Na de LED’s wordt het tijd voor geluid. Met een piezo-buzzer en de Arduino-functie tone() produceren we verschillende frequenties. Door frequenties en tijdsduur te combineren, ontstaan muzieknoten en melodieën.
Onder de deelnemers bevindt zich ook een pianiste. Zij legt vanuit haar muzikale achtergrond uit hoe toonhoogte, noten en ritme samenhangen. Een leuke aanvulling op mijn technische verhaal over hertz en milliseconden. Uiteindelijk beschrijven we hetzelfde, maar vanuit een andere invalshoek.
Als demonstratie laat ik het bekende Super Mario-thema horen. Dat levert meteen ideeën op voor eigen toepassingen, zoals een muzikale deurbel. Of de buren enthousiast worden van een dagelijks Super Mario-concert is natuurlijk een tweede.
Van fototransistor naar lichtgevoelige theremin
Daarna gebruiken we de fototransistor uit de Arduino Student Kit. Dit onderdeel lijkt op een gewone LED, maar reageert juist op invallend licht. Met de zaklamp van een mobiele telefoon onderzoeken we de meetwaarden en bepalen we de minimale en maximale waarde van onze opstelling. Via de seriële monitor en plotter maken we de veranderingen zichtbaar.

Met de Arduino-functie map() vertalen we het bereik van de lichtsensor naar hoorbare frequenties voor de buzzer. Daarmee bouwen we een eenvoudige, lichtgevoelige variant van een theremin, een elektronisch muziekinstrument dat je zonder aanraking bespeelt.
Meer of minder licht betekent een andere toonhoogte. Het resultaat klinkt misschien niet meteen als een concert, maar technisch werkt het. Bovendien combineren we nu een sensor, software en een actuator tot een klein embedded systeem.
Temperatuur meten met de TMP36
Na het licht gaan we verder met temperatuur. Hiervoor gebruiken we de TMP36, een analoge temperatuursensor met drie aansluitingen. De uitgangsspanning verandert met de temperatuur en lezen we uit via analogRead().
Voordat iedereen de sensor aansluit, geef ik een belangrijke waarschuwing. De plus en min verkeerd om aansluiten kan vervelende gevolgen hebben. Dat weet ik uit eigen ervaring. Ooit sloot ik een TMP36 verkeerd aan, waardoor deze razendsnel heet werd. Zo heet dat ik mijn vingers eraan verbrandde en er zelfs een blaar aan overhield. Een leerzame ervaring, maar niet eentje die ik de deelnemers graag laat herhalen.
We controleren daarom eerst de aansluitingen. De TMP36 levert bij 0 °C een uitgangsspanning van 500 millivolt en daar komt 10 millivolt per graad Celsius bij. Bij een Arduino Uno met een analoge referentiespanning van 5 volt kunnen we de temperatuur met één regel berekenen:
float temp = analogRead(A0) * 500.0 / 1023 - 50;
De factor 500 vertaalt de ADC-waarde naar een temperatuurschaal van 0,5 °C per stap. De aftrek van 50 corrigeert voor de offset van 500 millivolt bij 0 °C.
Op het scherm zien we waarden als 22,34 en 22,83 °C. Die sprongen van ongeveer 0,49 °C zijn geen toeval: de 10-bit ADC van de Arduino heeft bij 5 volt ongeveer 4,9 millivolt resolutie per stap. Bij de TMP36 komt dat overeen met ongeveer 0,49 °C.

Door de sensor voorzichtig tussen de vingers te houden, zien we de temperatuur oplopen. Zo hebben we met een paar regels code een digitale thermometer gebouwd. Dit keer gelukkig zonder verbrande vingers.
Een automatisch raam met een servo
Temperatuur meten is interessant, maar wat kunnen we ermee doen? Bijvoorbeeld automatisch een raam openen wanneer het te warm wordt. Daarvoor introduceren we de servomotor. We beginnen met het Arduino-voorbeeld Sweep, waarbij de servo langzaam heen en weer draait. Ik leg uit hoe de Servo.h-bibliotheek werkt en hoe we met servo.write() een positie instellen. Vervolgens bouwen de deelnemers de schakeling zelf op.
Als de servo werkt, combineren we het programma met de TMP36. We spreken twee grenswaarden af: boven 25 °C gaat het denkbeeldige raam open, onder 23 °C gaat het weer dicht. Daartussen blijft de servo in zijn bestaande positie staan. Dit noemen we hysterese. Door twee verschillende grenswaarden te gebruiken, voorkomen we dat het raam voortdurend open en dicht beweegt wanneer de temperatuur rond één waarde schommelt.
Om te demonstreren hoe de sensor reageert op een plotselinge temperatuurverandering, vraag ik of iemand een aansteker bij zich heeft. Daarmee kunnen we laten zien hoe snel de temperatuur bij sterke verwarming oploopt en vooral hoe lang het vervolgens duurt voordat de sensor weer is afgekoeld. Uiteraard houden we de sensor buiten de vlam om beschadiging te voorkomen.
Dat geeft aanleiding om het verschil tussen hysterese en thermische traagheid te bespreken. De grenswaarden moeten voldoende uit elkaar liggen om onnodig schakelen te voorkomen, maar niet zo ver dat het systeem te laat reageert. Tegelijkertijd laat de afkoeltijd zien dat een sensor niet altijd onmiddellijk de actuele omgevingstemperatuur aangeeft. Inmiddels hebben we een eenvoudige temperatuurregeling gebouwd. De sensor meet, de Arduino beslist en de servo voert de actie uit.

SPARY en KAI: van Arduino naar robothond
Terwijl de deelnemers hun trainingskits weer vullen met de Arduino, het breadboard, de draadjes en de componenten, heb ik nog een verrassing. Ik laat SPARY en KAI binnenlopen, twee robothonden van Unitree.

Deze robots zijn natuurlijk veel complexer dan onze experimenten. Toch zijn de basisprincipes herkenbaar. Ook een robothond gebruikt embedded processors, sensoren, actuatoren en programmeerlogica. Sensoren verzamelen informatie, software verwerkt deze en motoren zorgen voor beweging.
Waar wij een servo gebruiken om een denkbeeldig raam te openen, moeten bij een robothond meerdere motoren samenwerken om te lopen, draaien en het evenwicht te bewaren. Daar komt veel meer bij kijken, zoals sensorfusie, bewegingsregeling en navigatie. Maar de fundamenten zijn dezelfde als die waarmee de deelnemers vandaag hebben gewerkt. Na gedane arbeid blijkt de techniek ook praktisch inzetbaar. De Unitree Go2-W van JAJO, die bij SPARK soms voor educatieve demonstratiedoeleinden wordt ingezet, helpt me met het terugbrengen van de KLM-vliegtuigtrolley vol trainingsmaterialen naar mijn eigen werkruimte.

Een toepasselijk einde van de dag. We begonnen met een knipperende LED en eindigen met een robothond die helpt bij het opruimen.
Tien edities, telkens weer anders
Iedere groep brengt nieuwe ervaringen, vragen en ideeën mee. Juist de uiteenlopende achtergronden maken deze training interessant. De een denkt vanuit een technisch proces, de ander vanuit onderwijs, zorg of een creatieve toepassing. Wat ik vooral wil meegeven, is dat techniek niet ingewikkeld hoeft te beginnen. Door zelf schakelingen op te bouwen, software aan te passen, metingen uit te voeren en fouten te onderzoeken, ontstaat het inzicht vaak vanzelf. Techniek is leuk, zelf maken is leerzaam en fouten maken mag. Als de deelnemers dat meenemen, is mijn doel bereikt. En als ze voortaan eerst de plus en min van een temperatuursensor controleren, hebben mijn verbrande vingers toch nog ergens goed voor gediend. Op naar editie elf!
Wat heb ik gebruikt?
– Arduino Uno
– Breadboard met Dupont stekkers
– LED’s, weerstanden
– Piezo-buzzer en servomotor
– LED lichtsensor
– TMP36 temperatuursensor
– 9V-batterij en digitale multimeter
– Arduino IDE 2.3, inclusief seriële monitor en seriële plotter
– Laptop en mobiele telefoon met zaklamp
– SPARKY Unitree Go2 en KAI Unitree Go2-W van JAJO
– KLM-vliegtuigtrolley voor het vervoeren van trainingsmaterialen
