← Back to CoursesStemExpert
StemExpert
Fundamental · Werkboek · 24. De microcontroller
StemExpert · Brecht Corbeel · schoolium.me
StemExpert
F24. De microcontroller — werkboek
FFundamental · deel F6 · Programmeren en automatiseren

Werkboek · hoofdstuk 24De microcontroller

Een computer van een paar euro die leds, knoppen en later de hele meetkas bestuurt

Je begint met herkennen: waar zit een microcontroller, wat is input en output, welke pinnen heeft een Uno. Daarna reken je weerstanden uit, lees en schrijf je programma's in blokken en in code, bouw en meet je een knipperlicht en zoek je fouten in een schakeling. In de uitdagingen breid je het statuslampje van de meetkas uit met een reservoiralarm (opdracht 24.12, voor je Habitat-portfolio), ontwerp je een voetgangerslicht en onderzoek je hoe helder een led brandt.

5× oefenen6× toepassen4× uitdagen± 308 min0/15 gedaan
Een Arduino, een breadboard, twee leds en een knop: het begin van de automatische meetkas.
Een Arduino, een breadboard, twee leds en een knop: het begin van de automatische meetkas.
Hoe lees je een opdracht?
Drie tredenOefenen Toepassen Uitdagen

Elk hoofdstuk bouwt op: eerst oefenen (één stap, direct toepassen), dan toepassen (meerdere stappen, in een context), dan uitdagen (transfer, open problemen, andere leerlijnen erbij).

De StemExpert-schaal5

Eén moeilijkheidsschaal van 1 tot 9 over de drie niveaus heen: Fundamental loopt van 1 tot 4, Intermediate van 3 tot 7, Expert van 6 tot 9. Zo zie je dat de uitdaging van het ene niveau de oefening van het volgende is.

Oefenen

Oefenen

één stap, direct toepassen
24.1

Waar zit een microcontroller?

Oefenen1Begrijpen8 min
Niet elk toestel met een stekker heeft een microcontroller.
  1. a
    Duid aan welke toestellen (bijna zeker) een microcontroller bevatten: gloeilamp, wasmachine, zaklamp met schakelaar, digitale thermostaat, broodrooster met draaiknop, afstandsbediening, elektrische fietsbel met één knop, smartwatch.
  2. b
    Kies één toestel met een microcontroller en noem een input en een output.
24.2

Input of output?

Oefenen1Begrijpen6 min
Voor de meetkas gebruik je deze onderdelen: drukknop, rode led, bodemvochtsensor, zoemer, vlotterschakelaar, relais voor de pomp, lichtsensor.
  1. a
    Sorteer ze in twee kolommen.
    input (de microcontroller leest)output (de microcontroller stuurt)
  2. b
    Waarom staat de pomp zelf niet in je lijst, maar het relais wel?
24.3

De pinnen van de Uno

Oefenen2Begrijpen8 min
Gebruik de figuur en het ontleedblad.
USB7-12 VATmega328PAREFGND131211109876543210DIGITAL (PWM ~)LTXRXONIOREFRESET3.3V5VGNDGNDVinA0A1A2A3A4A5POWERANALOG IN
De Arduino Uno R3.
  1. a
    Op welke pinnen sluit je een led aan: bovenaan of onderaan? En een analoge sensor?
  2. b
    Waarom gebruik je pin 0 en 1 beter niet?
  3. c
    Een leerling sluit de korte poot van de led aan op 5V in plaats van op GND. Wat gebeurt er als pin 10 HIGH is? En als ze LOW is?
24.4

Weerstanden voor leds

Oefenen2Rekenen12 min
Bereken de voorschakelweerstand en kies een waarde uit de E12-reeks (10, 12, 15, 18, 22, 27, 33, 39, 47, 56, 68, 82, maal 10, 100, ...). Reken daarna de stroom na.
  1. a
    Bereken en kies.
    bronledgewenste stroomR berekendE12-keuzestroom
    (a)5 Vgroen 2,2 V15 mA
    (b)5 Vblauw 3,0 V10 mA
    (c)3,3 V (micro:bit)rood 2,0 V5 mA
    (d)12 Vrood 2,0 V20 mA
  2. b
    Waarom kies je bij twijfel de volgende grotere E12-waarde en niet de kleinere?
24.5

Het breadboard

Oefenen2Begrijpen8 min
Kijk naar de breadboardschets.
Arduino Uno: digitale pinnenGND1312111098765432abcdefghij151015202530+−−+220 Ωled: lange poot (+) in kolom 10,korte poot (−) in kolom 11
De breadboardschets uit het handboek.
  1. a
    Welke gaatjes zijn verbonden met gaatje c6? Welke met gaatje f6?
  2. b
    Een leerling steekt de led met beide pootjes in kolom 10. Brandt ze? Waarom?
  3. c
    Waarom loopt er een draad van GND van de Arduino naar de blauwe rail, en niet rechtstreeks naar kolom 11?
Toepassen

Toepassen

meerdere stappen, in een context
24.6

Code lezen

Toepassen2Programmeren12 min
Een Arduino voert dit programma uit:
void setup() {
  pinMode(13, OUTPUT);
}

void loop() {
  digitalWrite(13, HIGH);
  delay(200);
  digitalWrite(13, LOW);
  delay(800);
}
  1. a
    Welke led knippert, en hoe? Hoeveel keer per minuut?
  2. b
    Teken de spanning op pin 13 van t = 0 tot t = 3 s.
  3. c
    Verander het programma zodat de led twee keer kort flitst en dan 1 s uit is (een 'hartslag').
24.7

Blokken en code naast elkaar

Toepassen3Programmeren15 min
Vertaal het blokprogramma naar Arduino-code. De knop op pin 2 werkt met de interne pull-up.
wanneer Arduino Uno opstartherhaalalslees digitale pin2=0dananderszet digitale pin10ophoogzet digitale pin11oplaagzet digitale pin10oplaagzet digitale pin11ophoog
Een blokprogramma.
  1. a
    Schrijf de volledige code, met setup() en loop().
  2. b
    In blokken stond er geen pinMode. Welke regels moet je in C++ zelf toevoegen, en waarom?
24.8

Pull-down: wat leest de pin?

Toepassen3Rekenen12 min
Bekijk de twee schakelingen.
externe pull-downinterne pull-up (INPUT_PULLUP)Arduino5VD2GNDknop10 kΩlosgelaten: D2 leest LOW (0)ingedrukt: D2 leest HIGH (1)Arduinoin de chip5V20-50 kΩD2knopGNDlosgelaten: D2 leest HIGH (1)ingedrukt: D2 leest LOW (0)
Links een knop met pull-down, rechts met de interne pull-up.
  1. a
    Vul in wat pin 2 leest.
    knop losknop ingedrukt
    pull-down
    INPUT_PULLUP
  2. b
    Hoeveel stroom loopt er door de 10 kΩ als de knop ingedrukt is? Welk vermogen?
  3. c
    Een leerling gebruikt 100 Ω in plaats van 10 kΩ. Werkt het nog? Is het een goed idee?
24.9

Foutzoeken: de led brandt niet

Toepassen3Analyseren15 min
Een leerling bouwt het knipperlicht. De ON-led van de Arduino brandt, het uploaden lukt, maar de led op het breadboard brandt nooit.
  1. a
    Geef vijf mogelijke oorzaken.
  2. b
    In welke volgorde test je? Maak een stappenplan dat bij het programma begint en bij de draadjes eindigt.
  3. c
    De multimeter geeft 0 V tussen kolom 6 en GND, ook als het programma 'HIGH' zou moeten geven. Wat weet je nu?
24.10

Labo: een knipperlicht met drie snelheden

Toepassen3Labo45 min
Bouw het knipperlicht met een led en 220 Ω op pin 10 en een drukknop op pin 2. Het programma knippert langzaam (1 keer per seconde). Zolang je de knop ingedrukt houdt, knippert de led snel (5 keer per seconde).
  1. a
    Teken het schema.
  2. b
    Schrijf het programma (in blokken of in code).
  3. c
    Meet de spanning over de weerstand en bereken de stroom. Vergelijk met 13,6 mA.
    U pin (V)U led (V)U weerstand (V)R gemeten (Ω)I (mA)
  4. d
    Waarom reageert de led soms pas een halve seconde nadat je de knop indrukt?
Zo wordt dit beoordeeld
SchemaLed met weerstand op D10 naar GND; knop tussen D2 en GND (INPUT_PULLUP), of met pull-down.
ProgrammaKeuze met digitalRead; twee wachttijden (500 en 100 ms); correcte pinMode.
MetingSpanningen tellen op tot de pinspanning; stroom via Ohm binnen enkele procent van 13,6 mA.
VerklaringDe knop wordt alleen gelezen tussen de wachttijden: delay blokkeert.
24.11

Hoeveel mag er aan één pin?

Toepassen3Rekenen12 min
Een leerling wil op één pin van een Uno R3 drie rode leds parallel aansluiten, elk met een eigen weerstand van 220 Ω.
  1. a
    Hoeveel stroom levert de pin dan? Mag dat?
  2. b
    Welke weerstand geef je elke led, zodat de pin samen hoogstens 20 mA levert?
  3. c
    Op een Uno R4 mag een pin maar 8 mA leveren. Hoeveel leds van 5 mA kan één pin dan aan? Welke weerstand hoort bij 5 mA?
Uitdagen

Uitdagen

transfer, open problemen, leerlijnen combineren
24.12

Habitat: het statuslampje met reservoiralarm

Uitdagen4Habitat45 min
Breid het statuslampje uit. Een tweede vlotterschakelaar in het reservoir (naast die in serie met de pomp, hoofdstuk 18) meldt aan de microcontroller of er nog water is: hij is dicht zolang er water is en open als het reservoir bijna leeg is. Is het reservoir leeg, dan moet de rode led knipperen (1 keer per seconde), wat het vocht ook is. Anders werkt het lampje zoals eerst.
  1. a
    Op welke pin sluit je de vlotter aan, hoe (schema), en wat leest de pin als het reservoir leeg is?
  2. b
    Waarom kies je een vlotter die open gaat als het reservoir leeg is, en niet omgekeerd? Denk aan een losgeschoten draad.
  3. c
    Teken het stroomdiagram van het nieuwe programma.
  4. d
    Schrijf het programma.
  5. e
    Portfolio: noteer de pinnen van de meetkas tot nu toe (D2, D3, D10, D11) met hun functie.
Hint
Test het reservoir eerst: dat alarm gaat voor. Gebruik als ... anders als ... anders (in C++: if ... else if ... else).
Zo wordt dit beoordeeld
AansluitingVlotter tussen D3 en GND met INPUT_PULLUP; leeg = open = HIGH.
VeiligheidUitgelegd dat een losse draad ook 'open' geeft en dus een alarm: fail-safe.
ProgrammaEerst de vlotter, dan de knop; knipperen met twee wachttijden van 500 ms.
PortfolioPinlijst D2 knop, D3 vlotter, D10 rood, D11 groen.
24.13

Ontwerp: een verkeerslicht met voetgangersknop

Uitdagen4Ontwerpen50 min
Aan een zebrapad staat een verkeerslicht voor de auto's (rood, oranje, groen) en een voor de voetgangers (rood, groen). Normaal hebben de auto's groen. Drukt een voetganger op de knop, dan springt het autolicht via oranje naar rood, en krijgen de voetgangers even groen.
  1. a
    Programma van eisen: schrijf minstens vier eisen, waaronder twee over veiligheid.
  2. b
    Maak een pinplan en teken het schema (vijf leds, één knop).
  3. c
    Teken het tijdsdiagram na een druk op de knop.
  4. d
    Schrijf het programma.
Zo wordt dit beoordeeld
EisenMinstens vier, meetbaar; veiligheid: nooit tegelijk groen voor auto's en voetgangers, alles-rood-tijd.
SchemaVijf leds met elk een weerstand, knop met pull-up of pull-down, pinplan klopt met de code.
TijdsdiagramGroen → oranje → rood → (alles rood) → voetgangers groen → alles rood → groen.
ProgrammaLeest de knop, doorloopt de reeks, keert terug naar de rusttoestand.
24.14

Onderzoek: hoe helder brandt een led?

Uitdagen4Onderzoeken45 min
Je wil weten hoe de helderheid van een led afhangt van de stroom. Je hebt weerstanden van 220 Ω, 470 Ω, 1 kΩ, 2,2 kΩ en 4,7 kΩ, een Arduino die de led aanzet, en een lichtmeter (een app op een smartphone of een luxmeter).
  1. a
    Onderzoeksvraag, hypothese en variabelen (onafhankelijk, afhankelijk, gecontroleerd).
  2. b
    Bereken vooraf de stroom bij elke weerstand (neem 2,0 V over de led en 5,0 V op de pin).
    R (Ω)I berekend (mA)verlichtingssterkte (lux)
  3. c
    Zet de resultaten in een grafiek (helderheid tegenover stroom). Is het verband recht evenredig?
  4. d
    Welke weerstand zou je kiezen voor een statuslampje dat 's nachts niet stoort? Waarom?
24.15

Een led rechtstreeks op een pin?

Uitdagen4Analyseren15 min
Op internet zie je soms een led zonder weerstand in pin 13 en GND van een Arduino gestoken. 'Het werkt, want pin 13 heeft al een weerstand', schrijft iemand.
  1. a
    Klopt die uitleg? Kijk naar het ontleedblad: waar zit de weerstand van pin 13 echt?
  2. b
    Wat beperkt de stroom dan wel? Waarom is dat geen goed idee?
ZelfevaluatieKleur per doel: lukt al / bijna / nog niet