Skip to content

Output – Dingen aansturen

Output betekent dat de microcontroller iets aanstuurt of laat gebeuren. Dit kan bijvoorbeeld een LED, een motor, een buzzer of een display zijn.

We kunnen dit voorstellen door te denken aan een SPDT-schakelaar in de microcontroller die het signaal verbindt met VCC (de voedingsspanning, meestal 5V of 3,3V) of met GND (grond, ‘ground’ of 0V).

Schema: Schema Actief Hoog Aan

In het bovenstaande voorbeeld zien we dat pin 3 aangesloten is aan een LED met een serie weerstand. De microcontroller (of het microcontroller bord) is ook aangesloten aan een spanningsbron of voeding. De uitgang op pin 3 kan verbonden worden met ofwel VCC ofwel GND. Zoals in het schema te zien is, is de uitgang op dit moment verbonden met VCC, waardoor er stroom door de LED en serieweerstand loopt en de LED licht geeft.

We bekijken nu hoe we in C++, de taal die Arduino gebruikt, de uitgang met VCC verbinden om de LED te laten branden:

// cpp
digitalWrite(3, true); // Pin 3 hoog, LED aan
In MicroPython ziet het er net iets anders uit. Daar moeten we eerst aangeven dat led aan pin 3 is aangesloten. Hoe dat moet, volgt later.

# MicroPython
led.value(True); # Uitgang hoog of LED aan

We kunnen ook de LED uit zetten, zoals aangegeven in dit schema: Schema Actief Hoog Uit

Er kan nu geen stroom van + naar - lopen. In de code doen we dit zo:

// cpp
digitalWrite(3, false); // Pin 3 laag, LED uit
In MicroPython gaat het zo:
# MicroPython
led.value(False); # Uitgang laag of LED uit

In het bovenstaande voorbeeld gaat de LED aan als de uitgang hoog staat en uit als de uitgang laag staat. Dit noemen we een actief hoog signaal.


Het is ook mogelijk om de LED (of iets anders zoals een motor, ... ) op een andere manier aan te sluiten zodat deze licht geeft (of actief is) wanneer de uitgang laag staat. Dit noemen we een actief laag signaal.

Schema: Schema Actief Laag Aan

Dit schema en de werking zijn nagenoeg hetzelfde, maar de LED en de serieweerstand zijn aan VCC aangesloten in plaats van aan GND. Dit wil zeggen dat de LED nu zal licht geven wanneer de uitgang van de microcontroller met GND verbonden is en zal uit zijn wanneer hij met VCC verbonden is.

Nu moeten we in de code (C++ of MicroPython) de uitgang laag zetten om de LED te laten branden. Dit gebeurt met dezelfde code als hierboven om de uitgang laag te zetten:

// cpp
digitalWrite(3, false); // Pin 3 laag, LED aan
In MicroPython gaat het zo:
# MicroPython
led.value(False); # Uitgang laag of LED aan

Om de LED uit te zetten, moeten we in dit geval de uitgang hoog (true) zetten:

Schema: Schema Actief Laag Uit

// cpp
digitalWrite(3, true); // Pin 3 hoog, LED uit
In MicroPython gaat het zo:
# MicroPython
led.value(True); # Uitgang hoog of LED uit

Een 1 of een 0, true of false, True of False hebben in beide schema's dus een andere uitwerking. Het is belangrijk om hiermee rekening te houden!


Let op!

Bij Arduino kun je HIGH en LOW gebruiken als waarde voor digitale pinnen, bijvoorbeeld bij digitalWrite. Let op: dit zijn allemaal hoofdletters en werken alleen in de Arduino-omgeving. Voor gewone booleans in C++ gebruik je true en false. In andere C++-omgevingen werken HIGH en LOW meestal niet. In code ziet het er dan zo uit:

// cpp
digitalWrite(3, HIGH); // Pin 3 hoog, LED uit
In MicroPython bestaan HIGH en LOW niet maar je kan in plaats van False of True ook 0 of 1 gebruiken:

# MicroPython
led.value(1); # Uitgang hoog of LED uit