Intermediate · Werkboek · 25. Van analoog naar digitaal StemExpert · Brecht Corbeel · schoolium.me
SE
StemExpert
I25. Van analoog naar digitaal — werkboek
IIntermediate · deel I6 · Elektronica
Werkboek · hoofdstuk 25Van analoog naar digitaal
Van een spanning naar een getal, en van een getal terug naar licht
Je begint met omzetten tussen decimaal, binair en hexadecimaal, ADC-stappen en PWM-signalen aflezen. Daarna reken je met referentiespanningen, kies je bemonsteringsfrequenties, teken je aliasing, meet je PWM door een RC-filter en programmeer je een dimmer. In de uitdagingen ontwerp je de lampsturing van de klimaatmodule (opdracht 25.13, voor je Habitat-portfolio), reken je schakelverliezen uit en weeg je af of meer bits beter meten.
Als de zon zakt, gaan de lampen niet plots aan, maar geleidelijk: zoveel als er aan daglicht ontbreekt.
Hoe lees je een opdracht?
Drie tredenOefenenToepassenUitdagen
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
25.1
Analoog of digitaal?
Oefenen3Begrijpen10 min
Een lijst met signalen en toestellen.
a
Zeg telkens of het signaal analoog of digitaal is: (a) de spanning van de TMP36; (b) wat digitalRead teruggeeft; (c) de druk onderaan het reservoir; (d) het getal van analogRead; (e) een PWM-signaal op pin 9.
b
Op welke twee manieren verliest een digitaal signaal informatie?
c
Geef één reden waarom je toch digitaal wil werken.
25.2
Binair en decimaal
Oefenen3Rekenen15 min
Reken om. Toon je werkwijze (gewichten of delen door 2).
a
000011012=
b
111111112=
c
10000000002= (tien bits)
d
57 = (binair, 8 bits)
e
130 = (binair, 8 bits)
f
Welk getal volgt binair op 0111 1111? Wat valt je op?
25.3
Hexadecimaal
Oefenen3Rekenen12 min
In code en datasheets staan getallen vaak hexadecimaal, met 0x ervoor.
a
0x0F = (decimaal) = (binair)
b
0xA0 = (decimaal) = (binair)
c
200 = 0x
d
Een kleur op een webpagina is #00FF7F. Hoeveel rood, groen en blauw (elk 0-255)?
25.4
Hoeveel bits heb je nodig?
Oefenen4Rekenen15 min
Een ontwerper wil telkens een aantal verschillende waarden kunnen opslaan.
a
Hoeveel bits heb je minstens nodig voor: (a) de 24 uren van een dag; (b) een temperatuur van −20,0 tot +60,0 °C in stappen van 0,1 °C; (c) de 1440 minuten van een dag?
b
Een ADC van 12 bit heeft hoeveel niveaus? Hoe groot is de stap bij 3,3 V?
c
Waarom gebruikt analogWrite 8 bits en analogRead 10?
Een meting geeft N = 614. Tussen welke twee spanningen ligt de echte spanning?
c
Een klasgenoot zegt: 'Mijn meter geeft 614, dus de spanning is 2,998 V, tot op de millivolt.' Wat is er mis?
25.6
PWM-signalen aflezen
Oefenen4Analyseren15 min
Een logische analysator toont twee PWM-signalen van 5 V.
Signaal A en B, elk 0 of 5 V.
a
Lees voor A en B de periode af, en bereken de frequentie.
b
Bepaal de duty cycle van A en B en de gemiddelde spanning.
c
Op welke pinnen van een Uno kunnen A en B gemaakt zijn? Welke analogWrite-waarde hoort er ongeveer bij?
Toepassen
Toepassen
meerdere stappen, in een context
25.7
Twee referentiespanningen
Toepassen5Rekenen20 min
De pH-module op A2 van de Mega geeft 2,50 V bij pH 7,00 en daalt 0,18 V per pH-eenheid (hoofdstuk 15). De voedingsoplossing moet tussen pH 5,5 en 6,5 blijven.
a
Welke spanningen horen bij pH 5,5, 5,8 en 6,5?
b
Hoeveel pH is één ADC-stap met de referentie van 5 V?
c
Kan je de referentie van 2,56 V (INTERNAL2V56) gebruiken? Hoeveel pH per stap wordt het dan?
d
De pH-module is maar tot ongeveer 0,1 pH nauwkeurig. Is de fijnere stap dan zinvol?
25.8
Hoe vaak meten?
Toepassen5Analyseren20 min
Kies voor elk signaal van de klimaatmodule een zinvolle bemonsteringsfrequentie, en verantwoord.
a
Vul de tabel in.
signaal
snelste verandering
bemonstering
waarom
temperatuur voedingsreservoir
CO₂ in de kweekruimte
waterniveau in het reservoir (klotst na het aanslaan van de pomp met ±1 Hz)
batterijstroom met PWM-lampen (490 Hz)
b
Voor het waterniveau wil je alleen het gemiddelde niveau, niet het klotsen. Wat doe je, met de regel van Nyquist in gedachten?
25.9
Aliasing tekenen
Toepassen5Tekenen20 min
Een signaal van 11 Hz wordt 10 keer per seconde gemeten, te beginnen bij t = 0.
Een signaal van 11 Hz; teken de metingen erop.
a
Duid de metingen aan op t = 0; 0,1; 0,2 … 1,0 s.
b
Verbind de metingen met een vloeiende kromme. Welke frequentie lijkt het signaal te hebben?
c
Vergelijk met het signaal van 9 Hz uit het handboek. Wat is hetzelfde, wat is anders?
d
Hoe vaak had je minstens moeten meten?
25.10
Labo: PWM gladstrijken
Toepassen6Labo50 min
Voer de proef van het handboek uit: pin 9 → 10 kΩ → 10 µF → GND, meet op A0 en met een voltmeter.
a
Schrijf het programma: een waarde uit de seriële monitor naar analogWrite, dan 200 metingen van A0 met hun laagste, hoogste en gemiddelde waarde.
b
Meet voor minstens vijf waarden.
waarde
D (%)
D · 5 V
voltmeter (V)
A0 min-max
A0 gemiddeld → V
c
Zet de voltmeterwaarde uit tegen D. Wat verwacht je, en klopt het?
d
Vervang 10 µF door 1 µF. Wat verandert er aan de rimpel en aan de insteltijd? Verklaar met τ.
Zo wordt dit beoordeeld
Programma
analogWrite met de ingelezen waarde; 200 metingen met min, max en gemiddelde; geen delay die het meten verstoort.
Meting
Minstens vijf waarden, met eenheden; elco juist gepoold.
Verwerking
Grafiek U tegen D: een rechte door de oorsprong met helling ±5 V.
Verklaring
Rimpel en insteltijd verklaard met τ = RC: kleinere τ, snellere reactie, meer rimpel.
25.11
C++: een dimmer met een potentiometer
Toepassen5Programmeren25 min
Een potentiometer van 10 kΩ tussen 5 V en GND, met de loper op A0. Een led met 220 Ω hangt aan pin 9.
a
Schrijf een programma dat de led dimt met de potentiometer.
b
Een klasgenoot schrijft analogWrite(9, analogRead(A0));. Wat ziet hij als hij aan de knop draait, en waarom?
c
Waarom is analogRead(A0) / 4 hetzelfde als de twee laagste bits weglaten (>> 2)?
25.12
Hoeveel data?
Toepassen5Rekenen15 min
De datalogger van de klimaatmodule bewaart elke 10 s de zeven analoge waarden (A0-A6), elk in 2 bytes, plus een tijdstempel van 4 bytes.
a
Hoeveel bytes per meting, per dag en per jaar?
b
Als tekst (CSV) is een regel ongeveer 60 tekens (1 byte per teken). Hoeveel per jaar?
c
Hoe lang past dat op een SD-kaart van 8 GB?
Uitdagen
Uitdagen
transfer, open problemen, leerlijnen combineren
25.13
Habitat: de lampsturing van de klimaatmodule
Uitdagen7Habitat60 min
Werk de lampsturing uit het handboek verder uit. Het energiebeheer van hoofdstuk 20 zegt: laadtoestand boven 40 %: lampen volgens schema; tussen 20 en 40 %: alleen als de zonnepanelen leveren; onder 20 %: lampen uit. Met PWM kan dat zachter. De laadtoestand is in het programma beschikbaar als float soc (0-100).
a
Stel een regel voor die de lampen niet in één klap uitschakelt, maar hun maximum geleidelijk verlaagt tussen 40 en 20 %. Schrijf ze als formule en als een stukje C++.
b
Bereken de PWM-waarde bij 3000 lux daglicht en een laadtoestand van 30 %, met jouw regel.
c
Bereken het verlies in de MOSFET bij die waarde (geleiding en schakelen) en de opwarming op de koelplaat.
d
Wat gebeurt er met de stroommeting op A4, en hoe pas je die aan?
Zo wordt dit beoordeeld
Regel
Continu tussen 20 en 40 %, geen sprong; ondergrens en bovengrens juist; in code met constrain of map.
Berekening
Tekort aan daglicht en de begrenzing correct gecombineerd (de kleinste van beide).
Verliezen
Geleiding D · R · I² en schakelen 2 · ½ U I t · f; opwarming met 7 °C/W.
Meten
Aliasing herkend; middelen over een geheel aantal PWM-perioden of filteren.
25.14
Schakelverliezen en de PWM-frequentie
Uitdagen7Rekenen25 min
Elke keer dat de MOSFET van de groeilampen schakelt, staan er even tegelijk spanning en stroom over. Met de gateweerstand van 220 Ω duurt een flank ongeveer 3 µs; reken met E=21⋅U⋅I⋅t per flank (U=12,8V, I=14,8A).
a
Bereken de energie per flank en het schakelverlies bij 490 Hz en bij 20 kHz.
b
Vergelijk met het geleidingsverlies bij D = 50 %. Wat besluit je?
c
De gate is een condensator die per flank ongeveer 50 nC lading nodig heeft. Welke gemiddelde stroom levert de pin bij 20 kHz? En welke piekstroom als de flank 3 µs duurt?
d
Waarom gebruikt men voor hoge PWM-frequenties een aparte gatedriver?
25.15
Onderzoek: ziet het oog lineair?
Uitdagen6Onderzoeken40 min
Een led aan pin 9 wordt gedimd met analogWrite. Het licht is evenredig met de duty cycle, maar ons oog lijkt daar anders over te denken.
a
Ontwerp een proef: laat proefpersonen kiezen welke waarde 'half zo fel' lijkt als 255. Wat verander je, wat meet je, wat hou je gelijk?
b
Voer de proef uit met minstens vijf personen. Noteer hun keuzes.
persoon
'half zo fel' bij waarde
D (%)
c
Wat besluit je? Waarom maakt dat voor een lamp voor planten niet uit, en voor een lamp voor mensen wel?
25.16
Debat: een ADC van 16 bit kopen?
Uitdagen6Argumenteren25 min
Een groepje wil voor de klimaatmodule een externe ADC van 16 bit kopen (via I²C, hoofdstuk 30), 'want dan meten we alles 64 keer nauwkeuriger'. De sensoren: NTC (±0,5 °C na ijking), pH-module (±0,1 pH), druksensor MPX5010 (±5 % van het bereik), LDR (±30 % tussen exemplaren).
a
Klopt 'nauwkeuriger'? Gebruik de begrippen resolutie en nauwkeurigheid.
b
Voor welke sensor zou 16 bit echt iets opleveren, en voor welke zeker niet?
c
Wat raad je het groepje aan?
ZelfevaluatieKleur per doel: lukt al / bijna / nog niet
Ik kan het verschil tussen een analoog en een digitaal signaal uitleggen: bemonsteren in de tijd en afronden in niveaus.
Ik kan getallen omzetten tussen decimaal, binair en hexadecimaal, en uitleggen wat een bit en een byte zijn.
Ik kan de resolutie en het bereik van een ADC berekenen, een spanning omrekenen naar een ADC-waarde en omgekeerd, en uitleggen hoe een ADC met opvolgende benadering werkt.
Ik kan een bemonsteringsfrequentie kiezen en herkennen wanneer aliasing optreedt.
Ik kan een PWM-signaal beschrijven met periode, frequentie en duty cycle, en de gemiddelde spanning en het vermogen berekenen.
Ik kan met analogWrite een led, een ledstrip of groeilampen dimmen via een MOSFET, en de verliezen schatten.