Fundamental · Oplossingen · 25. Sensoren en automatisch regelen StemExpert · Brecht Corbeel · schoolium.me
SE
StemExpert
F25. Sensoren en automatisch regelen — oplossingen
FFundamental · deel F6 · Programmeren en automatiseren
Oplossingen · hoofdstuk 25Sensoren en automatisch regelen
Meten, beslissen, doen: de meetkas geeft zelf water en zet zelf haar dakraam open
Uitgewerkte oplossingen bij de 16 opdrachten van het werkboek. Voor de leerkracht, en voor wie zichzelf wil verbeteren nadat hij het eerst zelf probeerde.
Vul voor elk toestel de drie blokken van de regelkring in.
a
Vul de tabel in.
Koelkast: temperatuursensor binnenin; kouder dan de ingestelde waarde?; compressor aan of uit. Straatlamp: lichtsensor; donker genoeg?; lamp aan. Schuifdeur: bewegings- of aanwezigheidssensor; iemand in de buurt?; motor opent de deur. Strijkijzer: temperatuursensor (vroeger een bimetaal); te koud voor de gekozen stand?; verwarmingselement aan.
25.3
Van spanning naar getal
Oefenen2Rekenen10 min
Een Uno meet 0 tot 5 V als 0 tot 1023; een micro:bit meet 0 tot 3,3 V als 0 tot 1023.
a
Welke ruwe waarde verwacht je?
Uno: 0; 205; 512 (511,5); 675; 1023. micro:bit: 0; 310; 775; 1023; (1023, maar niet doen).
b
Waarom geeft de micro:bit bij 5 V geen hoger getal dan bij 3,3 V? (En sluit je 5 V best niet aan op een micro:bit.)
De ADC kan niet verder tellen dan 1023: alles boven 3,3 V geeft 1023. Een spanning boven 3,3 V op een pin van een micro:bit kan de chip bovendien beschadigen.
Hoe groot is het kleinste spanningsverschil dat de Uno kan zien?
Eén trapje: 5 V / 1024 ≈ 4,9 mV.
25.5
Open of gesloten lus?
Oefenen2Begrijpen8 min
Is dit een open of een gesloten lus?
a
Een gazonsproeier die elke avond 10 minuten aangaat.
Aopen lus
Bgesloten lus
Open lus: niemand meet of het gazon water nodig heeft.
b
De thermostaat van een verwarming.
Aopen lus
Bgesloten lus
Gesloten lus: de thermostaat meet de temperatuur die de verwarming verandert.
c
Een buitenlamp die aangaat als een bewegingsmelder iemand ziet.
Aopen lus
Bgesloten lus
Open lus.
d
Een cruisecontrol die de snelheid van een auto constant houdt.
Aopen lus
Bgesloten lus
Gesloten lus: de snelheid wordt gemeten en het gaspedaal bijgestuurd.
e
Leg bij de buitenlamp uit waarom je voor open of gesloten koos.
De bewegingsmelder meet iemands beweging, niet het licht van de lamp. Wat de lamp doet, wordt niet teruggemeten: open lus, gestart door een gebeurtenis.
Toepassen
Toepassen
meerdere stappen, in een context
25.6
De TMP36 omrekenen
Toepassen3Rekenen12 min
TMP36 op een Uno: U=0,5V+0,010V/∘C×T.
a
Welke temperatuur hoort bij de ruwe waarde 143?
U=143×5/1023=0,699V; T=(0,699−0,5)/0,010=19,9∘C.
b
Welke ruwe waarde verwacht je bij 25 °C? En bij −10 °C?
Een leerling leest 0. Is het −50 °C in de kas? Wat is er waarschijnlijk aan de hand?
Nee: 0 betekent 0 V op de ingang. De TMP36 geeft nooit 0 V in een kas (dat zou −50 °C zijn). Waarschijnlijk is de uitgangsdraad los, zit de sensor op een andere pin, of krijgt hij geen voeding.
25.7
Een ijklijn gebruiken
Toepassen3Analyseren12 min
Gebruik de ijklijn van de TMP36.
IJklijn van de TMP36 uit het handboek.
a
Welke temperatuur hoort volgens de ijklijn bij de ruwe waarden 130, 170 en 200?
Ongeveer 12, 32 en 46 °C (met de formule van de ijklijn: 12,1; 31,6; 46,3 °C).
b
Welke temperaturen geeft het gegevensblad voor dezelfde waarden? Wat valt op?
Gegevensblad: 13,5; 33,1; 47,8 °C. Telkens ongeveer 1,5 °C hoger: de sensor heeft een vaste afwijking (offset).
c
Mag je de ijklijn gebruiken om −20 °C of 90 °C te meten? Waarom (niet)?
Nee: de ijklijn is alleen gemeten tussen 3 en 55 °C. Daarbuiten zou je extrapoleren (hoofdstuk 4): je weet niet of de sensor daar nog even goed volgt. Wie dat bereik nodig heeft, ijkt ook daar (bv. in een diepvriezer).
25.8
Twee-punts-ijking van een andere sensor
Toepassen3Rekenen12 min
Een tweede bodemvochtsensor meet 580 in droge potgrond en 270 in natte potgrond.
a
Stel de formule op die de ruwe waarde omrekent naar een vochtigheid van 0 tot 100 %.
vocht=580−270580−ruw×100%=3,1580−ruw%.
b
Hoe vochtig is de grond bij de ruwe waarde 490?
(580−490)/3,1=29%.
c
Bij welke ruwe waarde moet de kas water geven (drempel 30 %)? Waarom mag je niet de 510 van de eerste sensor gebruiken?
580−0,30×310=487. Boven 487 is het vocht onder 30 %. Elke sensor heeft zijn eigen ijkpunten: met 510 zou deze sensor pas water geven bij (580−510)/3,1=23%.
25.9
De thermostaatgrafiek lezen
Toepassen3Analyseren15 min
Bekijk de grafiek van de meetkas met het automatische dakraam.
De meetkas met en zonder automatisch dakraam (handboek).
a
Om welk uur gaat het raam voor het eerst open? Hoe weet je dat uit de grafiek?
Rond 12:07: daar begint de eerste groene strook, en de temperatuurlijn raakt voor het eerst 28 °C.
b
Hoeveel keer gaat het raam open? Hoe lang blijft het ongeveer open rond 14 uur?
7 keer open (7 groene stroken). Rond 14 uur ongeveer een halfuur per keer.
c
Waarom daalt de temperatuur met open raam niet tot de buitentemperatuur?
De zon blijft de kas opwarmen. Het open raam voert maar een deel van de warmte af: in het model de helft van het verschil met buiten.
d
Na 16 uur blijft het raam dicht, hoewel de gesloten kas om 16 uur nog 27,5 °C haalt. Verklaar.
Het raam gaat pas open boven 28 °C. Na 16 uur komt de kas niet meer boven 28 °C (27,5 °C om 16 uur en dalend), dus blijft het raam dicht.
25.10
Code lezen: water geven
Toepassen3Programmeren15 min
Bekijk het programma water_geven.ino in het handboek.
a
Wat doet het programma bij de ruwe waarden 450, 520 en 620, als er water in het reservoir is? Reken het vocht uit.
450: vocht 50 % → groen, geen water. 520: vocht 26 % → rood, 30 s pompen. 620: vocht −6 % (droger dan het ijkpunt) → ook pompen.
b
Wat gebeurt er als het reservoir leeg is en de grond droog?
Het vocht is onder 30 % maar er is geen water: rode led, groene uit, pomp blijft uit.
c
Hoeveel water kan de kas hoogstens per uur geven? En per dag?
Eén beurt met wachttijd duurt 30 s + 15 min = 15,5 min, dus ongeveer 3,9 beurten per uur: 3,9×240≈930mL per uur, ongeveer 22 L per dag. Genoeg om het reservoir van 30 L op iets meer dan een dag leeg te pompen als de sensor stuk is.
d
Een leerling zet de wachttijd op 10 s 'om sneller te testen' en vergeet ze terug te zetten. Wat gebeurt er in de echte kas?
Na een beurt heeft het water geen tijd om naar de sensor te zakken. De sensor meet nog 'droog' en de kas pompt opnieuw, elke 40 s, tot het vocht eindelijk stijgt: de bakjes lopen over. Een regeling moet rekening houden met de tijd die het proces nodig heeft om te reageren.
25.11
Een straatlamp voor de ledstrip
Toepassen3Programmeren15 min
De ledstrip van de meetkas hangt aan relais K1 op D7 (hoofdstuk 18). De lichtsensor op A2 geeft een hogere waarde als het lichter is. Onder 300 is het te donker voor de planten.
a
Teken een blokprogramma dat de ledstrip aanzet als het te donker is en uitzet als het licht genoeg is.
Zie de figuur: in een eindeloze lus 'als lees analoge pin A2 < 300 dan zet pin 7 hoog, anders laag', en 1 s wachten.
b
Bij schemering schommelt de waarde rond 300. Wat merk je aan de ledstrip? Hoe los je het op?
De ledstrip flikkert aan en uit (één drempel). Oplossing: twee drempels, bv. aan onder 280 en uit boven 350 (hysterese), of pas schakelen als de waarde enkele minuten aan dezelfde kant blijft.
c
De ledstrip brandt en schijnt op de lichtsensor. Wat gebeurt er? Hoe vermijd je het?
Het licht van de ledstrip laat de sensor 'licht' meten: de strip gaat uit, het wordt donker, ze gaat weer aan, enzovoort. De sensor meet zijn eigen actuator. Zet de sensor zo dat hij het daglicht meet en niet de ledstrip (buiten de kas, of afgeschermd), of combineer met een klok (hoofdstuk 22, opdracht 22.6).
25.12
Labo: ijk je eigen temperatuursensor
Toepassen3Labo50 min
Voer de proef uit het handboek zelf uit met jouw TMP36 (of een andere temperatuursensor) en een referentiethermometer.
a
Noteer je metingen bij minstens vier temperaturen.
Bijvoorbeeld zoals in het handboek: 3,2 °C → 112, 21,0 °C → 148, 38,5 °C → 184, 55,0 °C → 218.
b
Teken de ijklijn (referentie horizontaal, ruwe waarde verticaal) en de lijn van het gegevensblad.
Een rechte door de punten; de lijn van het gegevensblad loopt er meestal evenwijdig mee, iets hoger of lager.
c
Heeft jouw sensor een vaste afwijking, een andere helling, of allebei? Welke correctie zet je in je programma?
Evenwijdig: vaste afwijking (offset), bv. −1,5 °C in het programma. Een andere helling vraagt een correctie die met de temperatuur verandert: gebruik dan de formule van de ijklijn.
d
Noem twee oorzaken van meetfouten in deze proef en hoe je ze klein houdt.
Bijvoorbeeld: sensor en thermometer meten niet hetzelfde water (niet roeren) → roer en hang ze dicht bij elkaar; de sensor warmt trager op → wacht tot beide stabiel zijn; afleesfout van de thermometer → digitale referentie; de ADC-stap van 0,5 °C → meerdere metingen uitmiddelen.
Zo wordt dit beoordeeld
Metingen
Minstens vier temperaturen, gespreid over het bereik; pas genoteerd als beide waarden stabiel zijn.
Grafiek
Assen met grootheid en eenheid, punten, best passende rechte, lijn van het gegevensblad.
Besluit
Offset en/of helling benoemd, correctie in °C, geldigheidsbereik vermeld.
Meetfouten
Bv. sensor en thermometer niet op dezelfde plaats, water niet geroerd, niet lang genoeg gewacht, sensor niet waterdicht.
Uitdagen
Uitdagen
transfer, open problemen, leerlijnen combineren
25.13
Habitat: het volledige ontwerp van het water geven
Uitdagen4Habitat60 min
Je bouwt het automatische water geven voor de meetkas. Denk aan wat er mis kan gaan. Een sensor die uit de grond getrokken wordt of waarvan de draad losschiet, geeft een waarde die niets met de grond te maken heeft: los aan de lucht meet een capacitieve sensor 'heel droog' (bv. 640), een losse signaaldraad geeft willekeurige waarden of 0.
a
Maak het pinplan en teken het volledige schema: sensor, vlotter, relaismodule met pompkring (zekering, K2, vlotter, pomp), statuslampje.
A0 sensor (5V, GND, AOUT), D3 vlotter naar GND, D6 relaismodule (IN, VCC 5V, GND), D10/D11 leds met 220 Ω. Pompkring: 12 V + → zekering F3 1 A → contact K2 → vlotterschakelaar → pomp → 12 V −.
b
Wat doet het programma uit het handboek als de sensordraad losschiet en de ingang 0 leest? En als de sensor naast het bakje ligt (640)?
Ruw 0: vocht =(600−0)/3=200%: de kas denkt dat de grond kletsnat is en geeft nooit meer water, zonder alarm; de planten verdrogen. Ruw 640: vocht =−13%: de kas pompt elk kwartier 240 mL (bijna 1 L per uur) in een bakje waar de sensor niet in zit, tot het reservoir leeg is (de vlotter stopt het dan wel).
c
Bedenk een controle die zulke onmogelijke waarden herkent. Welke grenzen kies je, en wat doet de kas dan?
Bijvoorbeeld: alleen waarden tussen 250 en 620 zijn geloofwaardig (de ijkpunten 300 en 600 met wat speling). Daarbuiten: niet pompen, rode led laten knipperen, en de waarde naar de computer sturen. Een tweede controle: na drie beurten zonder stijging een alarm (opdracht 22.12).
d
Schrijf het verbeterde deel van het programma (in code of in blokken).
Testplan: beschrijf vijf tests die je doet voor je de kas een week alleen laat.
Bijvoorbeeld: (1) sensor in droge grond → pompt één beurt, wacht 15 min; (2) sensor in natte grond → groen, geen pomp; (3) reservoir leeg (vlotter open) → rood, geen pomp; (4) sensordraad los → knipperalarm, geen pomp; (5) stroom even weg → programma start opnieuw en werkt verder. Telkens: verwacht, gezien, in orde?
f
Portfolio: noteer pinplan, ijkpunten, drempel, pomptijd, wachttijd en je foutcontrole.
Bijvoorbeeld: 'A0 sensor (600 droog / 300 nat), drempel 30 % (ruw 510), 30 s pompen = 240 mL, 15 min wachten, D3 vlotter, D6 relais K2, D10/D11 statuslampje; foutcontrole: ruw buiten 250-620 → geen pomp en knipperalarm.'
Zo wordt dit beoordeeld
Schema
Sensor op A0, vlotter op D3 met pull-up, relaismodule op D6 met K2 in de 12 V-tak samen met zekering en vlotter; leds met weerstand.
Foutanalyse
0 → vocht 200 %: nooit water, planten verdrogen zonder alarm. 640 → vocht −13 %: pompen elk kwartier, tot het reservoir leeg is.
Foutcontrole
Grenzen rond de ijkpunten; bij een onmogelijke waarde niet pompen en een duidelijk alarm (knipperen).
Testplan
Minstens: droog, nat, reservoir leeg, sensor los, stroomuitval; met verwachte en geziene reactie.
25.14
Twee drempels kiezen voor het dakraam
Uitdagen4Analyseren20 min
Met de simulatie uit het handboek vergeleek een leerling vier keuzes van drempels voor het dakraam, op dezelfde zonnige aprildag (6 tot 20 uur).
open boven
dicht onder
schakelingen van 6 tot 20 h
hoogste temperatuur
28 °C
28 °C
166
28,3 °C
28 °C
27 °C
40
28,2 °C
28 °C
25 °C
14
28,2 °C
30 °C
25 °C
6
30,1 °C
a
Wat gebeurt er met het aantal schakelingen als je de twee drempels verder uit elkaar legt? En met de hoogste temperatuur als je de bovenste drempel verhoogt?
Hoe verder de drempels uit elkaar, hoe minder schakelingen (166 bij één drempel, 40 bij 28/27, 14 bij 28/25). De hoogste temperatuur volgt de bovenste drempel: met 30/25 wordt het 30,1 °C.
b
De duwstang is gemaakt voor 20 000 bewegingen. Hoe lang houdt ze het bij één drempel, en bij 28/25 °C, als elke dag zo zonnig is?
Eén drempel: 20000/166≈120 dagen, nog geen vier maanden. Met 28/25: 20000/14≈1428 dagen, ruim 3 jaar (in het echt minder zonnige dagen: nog langer).
c
Welke keuze beveel je aan voor de planten (boven 30 °C lijden ze)? Verdedig.
28/25 °C: de temperatuur blijft ruim onder 30 °C, en het raam schakelt weinig. 30/25 schakelt nog minder, maar raakt de grens van 30 °C: te krap. 28/27 slijt de duwstang drie keer sneller voor weinig winst.
25.15
Ontwerp: een servo als thermometer
Uitdagen4Ontwerpen40 min
Op het bedieningspaneel van de meetkas wil je een grote wijzer die de temperatuur toont: een servo met een lange arm boven een halve cirkel met een schaal. 0° is 0 °C, 180° is 45 °C.
a
Welke hoek hoort bij 20 °C? En bij 32 °C? Hoeveel graden draait de wijzer per °C?
180/45=4 graden per °C. 20 °C → 80°; 32 °C → 128°.
b
Teken de schaal (halve cirkel) met streepjes per 5 °C. Waar valt het gebied boven 30 °C (rood)?
Streepjes om de 5×4=20∘: 0, 20, 40, ..., 180° voor 0, 5, 10, ..., 45 °C. Boven 30 °C: van 120° tot 180°.
c
Schrijf het programma met de TMP36 op A1 (met ijkcorrectie) en de servo op pin 9. Wat gebeurt er als het kouder is dan 0 °C?
Zie de code. Onder 0 °C begrenst constrain() de waarde op 0: de wijzer blijft op 0° staan in plaats van tegen de aanslag te duwen.
// Servo als wijzer: 0 graden = 0 °C, 180 graden = 45 °C (oplossing opdracht 25.15)#include<Servo.h>Servowijzer;voidsetup(){wijzer.attach(9);// signaaldraad van de servo op pin 9}voidloop(){intruw=analogRead(A1);intt=(ruw*5.0/1023.0-0.5)*100.0-1.5;// TMP36 met ijkcorrectie, afgerond naar benedent=constrain(t,0,45);wijzer.write(map(t,0,45,0,180));delay(1000);}
d
De servo trekt bij het draaien kort een paar honderd milliampère. Waarom sluit je zijn voeding niet aan op een pin?
Een pin levert hoogstens 20 mA en is een signaaluitgang, geen voeding. De servo krijgt 5V en GND (bij grote servo's een aparte voeding met gemeenschappelijke GND); de pin geeft alleen het stuursignaal.
Zo wordt dit beoordeeld
Rekenen
4 graden per °C; 80° bij 20 °C, 128° bij 32 °C.
Schaal
Halve cirkel met streepjes per 5 °C (0 tot 45 °C), rood gebied van 120° tot 180°.
Programma
Omrekenen, begrenzen tot 0-45 °C, map naar 0-180°, wachttijd.
Voeding
Servo op 5V en GND van het bord (of een aparte voeding), signaal op pin 9.
25.16
De thermostaat in je lichaam
Uitdagen4Begrijpen20 min
Je lichaam houdt zijn kerntemperatuur rond 37 °C. Zenuwcellen in de huid en in de hersenen meten de temperatuur; een deel van de hersenen (de hypothalamus) vergelijkt met 37 °C. Is het te warm, dan ga je zweten en zetten de bloedvaten in de huid open. Is het te koud, dan ga je rillen en vernauwen de bloedvaten in de huid.
a
Teken het blokschema meten - beslissen - doen voor je lichaamstemperatuur. Benoem sensor, regelaar, actuatoren, proces en storing.
Sensor: temperatuurgevoelige zenuwcellen (huid, hersenen). Regelaar: de hypothalamus. Actuatoren: zweetklieren, bloedvaten in de huid, spieren (rillen). Proces: het lichaam. Storing: een warme of koude omgeving, inspanning.
b
Is het een open of een gesloten lus? Leg uit.
Gesloten: de sensoren meten de temperatuur die zweten en rillen veranderen.
c
Werkt je lichaam eerder als een aan/uit-regeling of als een regeling die geleidelijk bijstuurt? Geef een argument.
Eerder geleidelijk: je zweet een beetje of veel, afhankelijk van hoe warm het is, en rillen neemt toe met de kou. Er is ook een zone rond 37 °C waarin je niet zweet en niet rilt, een beetje zoals twee drempels.
d
Bij koorts 'verzet' het lichaam de gewenste waarde naar bijvoorbeeld 39 °C. Waarom heb je dan in het begin koude rillingen?
De regelaar vergelijkt de echte temperatuur (37 °C) met de nieuwe gewenste waarde (39 °C): het lichaam is 'te koud'. Het zet de actuatoren voor kou in: rillen en de huid minder doorbloeden (je voelt je koud), tot de temperatuur 39 °C bereikt. Meer hierover in hoofdstuk 29.