P&O2 – Werkboek elektronica
Brecht François Bram Rooseleer
© Copyright K.U.Leuven Zonder voorafgaande schriftelijke toestemming van zowel de promotor(en) als de auteur(s) is overnemen, kopiëren, gebruiken of realiseren van deze uitgave of gedeelten ervan verboden. Voor aanvragen tot of informatie i.v.m. het overnemen en/of gebruik en/of realisatie van gedeelten uit deze publicatie, wendt U tot: K.U.Leuven, Departement Elektrotechniek – ESAT Kasteelpark Arenberg 10, B-3001 Heverlee (België). Telefoon: +32-16-32-11-30 Fax: +32-16-32-19-86 Email:
[email protected].
2
1. Inhoudstafel 2.
Inleiding .............................................................................................................................. 5
3.
Tutorial: kennismaking met het P&O2-elektronicaplatform.............................................. 6 Het P&O2-platformbord......................................................................................................... 6 Voeding .................................................................................................................................. 7 Intermezzo: Spanningsmeting ........................................................................................... 8 Microcontroller ...................................................................................................................... 9 Intermezzo: Troubleshooting MPLAB ............................................................................... 12 Uitbreidingsbord .................................................................................................................. 16 Accelerometer ...................................................................................................................... 17
4.
Elektronische componenten............................................................................................. 18 Uitvoerelementen of actuatoren ......................................................................................... 18 De led ................................................................................................................................ 18 Darlingtonbuffer ............................................................................................................... 21 Het relais ........................................................................................................................... 21 Intermezzo: Stroommeting .............................................................................................. 24 De elektromagneet ........................................................................................................... 25 De elektromotor ............................................................................................................... 26 De stappenmotor.............................................................................................................. 27 De speaker ........................................................................................................................ 28 Invoerelementen of sensoren .............................................................................................. 29 De drukknop ..................................................................................................................... 29 De bistabiele schakelaar ................................................................................................... 29 De magneetsensor ............................................................................................................ 30 Intermezzo: Hoogimpedante knooppunten .................................................................... 31 De accelerometer ............................................................................................................. 32 De optische afstandssensor .............................................................................................. 32 Extra componenten .............................................................................................................. 33 Weerstanden .................................................................................................................... 33 De regelbare weerstand of potentiometer ...................................................................... 33
3
De condensator ................................................................................................................ 34 De diode............................................................................................................................ 34 Spanningsregulatoren....................................................................................................... 34 5.
Een beetje theorie ............................................................................................................ 36 Basiswetten elektriciteit....................................................................................................... 36 De eerste wet van Kirchhoff ............................................................................................. 36 De tweede wet van Kirchhoff ........................................................................................... 36 De wet van Ohm ............................................................................................................... 37 Lijst van elektrische grootheden .......................................................................................... 37 Een systeem ......................................................................................................................... 37
6.
De MICROC-programmeertaal ............................................................................................ 39 MICROC in het kort ................................................................................................................. 39
De MICROC-preprocessor ....................................................................................................... 42 Beschikbare methodes ......................................................................................................... 43
4
2. Inleiding Voor je ligt het werkboek elektronica voor P&O2. Het is onze bedoeling dat je na dit project beter begrijpt wat elektronica juist is, wat stroom en spanning écht zijn, hoe software en hardware samenwerken en dat je in staat bent enkele lijnen programmacode te schrijven en componenten te solderen. In het begin van het semester wordt er voor iedereen een tutorial-oefenzitting georganiseerd. In deze tutorial (Hoofdstuk 3) wordt aan de hand van enkele voorbeelden uitgelegd hoe het P&O2-platform dat jullie zullen gebruiken werkt. Hoofdstuk 4 bevat een lijst met invoer- en uitvoercomponenten die jullie kunnen gebruiken bij het ontwerpen van je systeem. Het is de bedoeling dat jullie de vraagjes die hierin staan oplossen om de verschillende componenten te leren kennen. In hoofdstuk 5 worden de basiswetten van de elektriciteit heel kort herhaald. Deze wetten zouden jullie moeten kennen van de lessen natuurkunde in het middelbaar onderwijs en van het vak Elektrische netwerken. Als dit niet zo is, is het erg belangrijk dat je deze theorie herhaalt. De MICROC-programmeertaal wordt behandeld in hoofdstuk 6. Het is niet de nodig de inhoud van dit hoofdstuk vanbuiten te kennen. Jullie moeten wel in staat zijn zonder problemen de kleine programma’s te schrijven die nodig zijn om de microcontroller te programmeren. Als je vragen hebt mag je steeds een email sturen naar:
[email protected] of
[email protected].
5
3. Tutorial: kennismaking met het P&O2-elektronicaplatform Het P&O2-platformbord Voor het vak P&O2 is er een platform voorzien waarop jullie je elektronicasysteem kunnen baseren. Aangezien er slechts een twintigtal bordjes zijn, is het noodzakelijk deze te delen met andere groepen.
Figuur 1 Het P&O2-platform
Figuur 1 toont het P&O2-platformbordje. De volgende onderdelen zijn aangeduid: 1. 2. 3. 4. 5. 6. 7. 8. 9.
6
Aansluiting voor een 9V-batterij of netadapter Programmeerbare microcontroller Signalisatieledjes van de 7 in- of uitgangspinnen Connector naar het uitbreidingsbord USB-connector (niet de programmeerconnector!) Accelerometer Keuze voeding signalisatieledjes Resetknop Programmeerconnector
Voeding Voordat het platformbordje gebruikt kan worden, is het uiteraard nodig voeding te voorzien. Dit gebeurt door een 9V-batterij aan te koppelen aan connector 1. Let op de polariteit: de positieve pool (rode kabel) moet in het bovenste gaatje. Om batterijen te sparen kunnen de ledjes uitgeschakeld worden (7) of, als het bordje verbonden is met een computer, kunnen de ledjes gevoed worden via USB (5). Koppel de batterij altijd terug los wanneer je klaar bent. Als die beschikbaar is, kan je ook een spanningsadapter (6-12V gelijkspanning) gebruiken. Taak 1: Verbind een 9V-batterij met het platformbordje en zorg ervoor dat de ledjes gevoed worden door de batterij. Wat gebeurt er? .................................................................................................................................................... Taak 2: Welke spanningen meet je op de uitgangspinnen (4)?
7
Intermezzo: Spanningsmeting Spanning is het potentiaalverschil tussen twee punten en moet dus tussen deze twee punten gemeten worden. Spanning kan gemeten worden met een multimeter (zie Figuur 2).
Figuur 2 Een multimeter
De meeste multimeters hebben drie connectiepunten: 1. De gemeenschappelijke connectie (zwart), deze wordt altijd gebruikt. 2. De connectie voor weerstands- en spanningsmetingen (rood). 3. De connectie (soms meerdere) voor stroommetingen (rood). Om spanning te meten gebruiken we connectiepunten 1 en 2. Plaats het keuzewiel van de multimeter op de (DC-)spanningsmetingsstand met het grootste bereik en verbind de twee probes met de twee punten waartussen je de spanning wilt meten. Als de gemeten spanning binnen een kleiner bereik valt, mag je dat bereik gebruiken om een hogere nauwkeurigheid te bekomen.
8
Microcontroller De microcontroller (2, type PIC18F4550) is het hart van het P&O2-platformbordje. Het is een soort minicomputer die jullie kunnen programmeren en die het intelligente deel van het elektronisch systeem vormt. De microcontroller bevat een beperkte hoeveelheid datageheugen (2 kilobyte). Het programma dat zal uitgevoerd worden door de microcontroller moet geschreven worden in de programmeertaal MICROC. Via een speciale kabel tussen de computer en connector 9 (niet de USB-connector!) wordt het programma op de microcontroller geladen. Het programma start telkens de resetknop (8) ingedrukt wordt of wanneer de speciale kabel losgekoppeld wordt. Via 7 in- of uitgangen kan vanuit het programma gecommuniceerd worden met de rest van het systeem. De waarde die op een gegeven moment op deze pinnen staat wordt weergegeven door de leds (3). Uitgebreide informatie over de microcontroller kan gevonden worden in de datasheet op TOLEDO. MICROC wordt verder besproken in hoofdstuk 6 van dit werkboek. Om de microcontroller te programmeren wordt er gebruik gemaakt van het programma MPLAB van Microchip. Deze omgeving laat toe om het programma te schrijven in MICROC, om dit programma te compileren (om te zetten) naar de taal van de microcontroller en om het gecompileerde programma op de microcontroller te laden. Alvorens aan de slag te kunnen gaan met MPLAB (Start All Programs Microchip MPLAB IDE v8.40 MPLAB IDE), moet het programma eerst correct ingesteld worden. 1. In MPLAB ga je naar Project Set Language Tool Locations. Dan verschijnt het Set Language Tool Locations-venster zoals weergegeven in Figuur 3. 2. Dubbelklik op Microchip C18 Toolsuite (de bibliotheek die gebruikt zal worden voor de ondersteuning bij het programmeren van de microcontroller). Selecteer daarna Executables. Onder Executables vind je een lijst van programma’s die ondersteuning bieden bij het compileren of programmeren. Deze moeten nog gelinkt worden. Selecteer elk van de 4 onderstaande Executables, klik op browse en selecteer de volgende programma’s. 1. MPASM Assembler: C:\ESAT\MCC18\mpasm mpasmwin.exe 2. MPLAB C18 C Compiler: C:\ ESAT\MCC18\bin mcc18.exe 3. MPLIB Librarian: C:\ ESAT\MCC18\bin mplib.exe 4. MPLINK Object Linker: C:\ ESAT\MCC18\bin mplink.exe
9
Figuur 3 Instellingen voor MPLab
Taak 3: Configureer nu je MPLAB-omgeving volgens bovenstaande uitleg. Een set van programmabestanden en instellingen wordt in MPLAB gebundeld in een project. Een project (extensie .mcp) wordt geopend via het menu Project Open. Taak 4: Download het bestand projects.zip van TOLEDO, sla het op op je bureaublad, decomprimeer het en open het project KnightRider. De microcontroller verstaat, zoals elke processor, slechts een binaire taal. MICROC is een relatief hoog niveau procedurele (niet objectgeoriënteerd zoals JAVA) taal. MPLAB kan MICROC omzetten (compileren) naar deze binaire taal. Figuur 4 toont de sneltoetsen voor het compileren. De meest linkse sneltoets compileert het huidig bestand. De tweede sneltoets compileert het hele project.
Figuur 4 De compileersneltoetsen
Tijdens het compilatieproces verschijnt er een venster Output, waarin waarschuwingen en fouten worden weergegeven. Als alles goed verlopen is verschijnt de boodschap BUILD SUCCEEDED. Als er problemen zijn, verschijnt BUILD FAILED en wordt er aangegeven waar de fout zich bevindt. Taak 5: Compileer het project.
10
Om het gecompileerde programma op de microcontroller te laden maken we gebruik van de PICKIT2-connector die is weergeven in Figuur 5. Deze moet met de computer verbonden worden via USB en via connector 9 met het platformbordje (zie Figuur 1). Het pijltje op de PICKIT2-connector moet overeenkomen met het pijltje op het platformbordje. Figuur 6 toont de programmeersneltoetsen. Wanneer deze niet oplichten, moet je nog de juiste programmer selecteren (zie Intermezzo: Troubleshooting MPLAB). De uiterst linkse toets laadt het programma op de microcontroller.
Figuur 5 De PICKit2-connector
Figuur 6 De programmeersneltoetsen
Taak 6: Laad het programma op de microcontroller. Wat gebeurt er wanneer we de PICKIT2 loskoppelen van het platformbordje? ....................................................................................................................................................
Een meer gedetailleerde handleiding over MPLAB kan je vinden op TOLEDO.
11
Intermezzo: Troubleshooting MPLAB De meest voorkomende problemen bij het gebruik van MPLAB en hun oplossingen worden hier kort overlopen. 1. Als er tijdens de compilatie een venster verschijnt zoals weergegeven in Figuur 7, dan moet de compiler (waarschijnlijk) nog gekoppeld worden aan het project. Klik op de bovenste Use This om het venster te sluiten en voer de stappen uit Taak 3 uit om het project juist te configureren. Indien je zeker weet dat het programma al correct geconfigureerd is, hoef je dit laatste niet telkens opnieuw te doen.
Figuur 7 Waarschuwing: compiler niet gekoppeld
2. Als de programmeersneltoetsen niet oplichten, is de connectie met de microcontroller verloren gegaan. Dit kan gebeuren als de PICKIT2-connector losgekoppeld is geweest. Controleer of deze terug goed aangesloten is en druk dan op de PICKIT2-toets (de meest rechtse uit Figuur 6). 3. Wanneer de foutboodschap PK2Error0027 verschijnt, moet je de connectie met de PICKIT2-connector herinitialiseren door op de PICKIT2-toets (de meest rechtse uit Figuur 6) te drukken. 4. Het kan voorvallen dat MPLAB de PICKIT2-connector niet automatisch herkent. Indien dit zo is, moet je in het menu Programmer Select Programmer de optie 7 PICKit2 selecteren. 5. Wanneer de waarschuwing PKWarn0003 op het scherm verschijnt, bijvoorbeeld tijdens het openen van een project, betekent dit dat de microcontroller niet gevonden wordt. Dit kan gebeuren wanneer de computer niet verbonden is met het
12
P&O2-platformbordje of wanneer de microcontroller op het P&O2-platformbordje geen voeding krijgt. Verhelp het probleem en klik op OK.
Figuur 8: Waarschuwing: microcontroller niet gevonden
6. Soms gebeurt het dat tijdens het openen van het project onmiddellijk een tekst verschijnt in het Output-venster zoals weergegeven in Figuur 9. Omdat de instellingen mee onthouden worden in de instellingen van een project, zoekt MPLAB tijdens het openen van het project onmiddellijk naar de PICKIT2. Deze PK2Error0022fout kan worden opgelost door te controleren of de PICKIT2-connector goed verbonden is en door vervolgens de PICKIT2-connector te herinitialiseren door op de PICKIT2-toets (de meest rechtse uit Figuur 6) te klikken.
Figuur 9: Error: PICKIT2-connector niet gevonden
13
Zoals eerder vermeld, wordt de MICROC-taal gebruikt om de microcontroller te programmeren met behulp van het programma MPLAB van Microchip. MICROC is een variant van de bekende programmeertaal C. De syntax lijkt op die van JAVA, maar er zijn enkele belangrijke verschillen. • •
MICROC is niet objectgeoriënteerd, er zijn dus geen klassen aanwezig in de taal.
Variabelen die je binnen een methode wilt definiëren, moeten bij het begin van de methode gedeclareerd worden.
Extra informatie over de MICROC-programmeertaal kan je vinden in hoofdstuk 6 achteraan dit werkboek en onder manuals op TOLEDO. Taak 7: (enkel op papier) Geef aan in welke volgorde de lijnen code worden uitgevoerd, en welke variabelen op elk moment bekend zijn. Ga de waarde voor i na voor elk moment. int i = 4; main() { i++; } int i = 4; void func(); main() { i++; func(); } func() { int i = 10; i++; }
In het geopende project vind je allerlei bestanden. De belangrijkste zijn: • main.c: hierin staat de main methode, dit is de methode die wordt opgeroepen om het programma te starten. • platform.c: dit bestand bevat de bibliotheek die jullie kunnen gebruiken om de mogelijkheden van het platformbordje te gebruiken. Uitleg over de beschikbare functies kan je vinden in de appendices op het einde van dit werkboek. • user.c: in dit bestand kunnen jullie je code toevoegen.
14
Taak 8: Bestudeer de code van het KnightRider project (je hoeft niet alles te snappen). Beschrijf wat de volgende lijnen code doen. for (i = 1; i <= 7; ++i) { setInOut(i, 0); setData(i, i == 1); }
.................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... ....................................................................................................................................................
led7 = getData(7); for (i = 7; i >= 2; --i) { setData(i, getData(i - 1)); } setData(1, led7);
.................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... Taak 9: Wijzig het programma zodat de ledjes in de andere richting lopen.
15
Uitbreidingsbord Het uitbreidingsbordje (weergegeven in Figuur 10) wordt gebruikt om extra componenten toe te voegen aan het systeem. Op het bordje kunnen jullie alle extra componenten solderen en ze via een kabel verbinden aan connector 4 (zie Figuur 1) op het platformbordje. Deze connector bevat 10 pinnetjes: de grondverbinding, een 3.3V- en een 5V-voeding en de 7 in- of uitgangen van de microcontroller (zie Figuur 11).
Figuur 10 Uitbreidingsbordje
Figuur 11 Connector naar het uitbreidingsbord
Taak 10: Connecteer de uitbreidingsmodule met de speaker aan het platformbordje en laad het project MusicMaestro. Taak 11: Wijzig de code zodat een andere melodie afgespeeld wordt.
16
Accelerometer Op het platformbordje is al één sensor voorzien: een 3-assige accelerometer (zie Figuur 1, 6). Dit is een sensor die de versnelling van het platformbordje opmeet volgens drie loodrechte assen. MICROC-functies om de waardes van deze versnellingen op te vragen zijn beschikbaar. De sensor kan geen onderscheid maken tussen echte versnellingen en de valversnelling. Deze laatste wordt dus altijd mee opgemeten. Taak 12: Programmeer de microcontroller met het project Gravity. Probeer de werking te begrijpen. Verzin een variant op het programma (je mag de muziekmodule gebruiken). Taak 13: Programmeer de microcontroller met CarSlopeAlarm. Wat doet het programma (bestudeer de code)? .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... Taak 14: Wijzig de code nu zodat het lampje terug uitdooft als de draaihoek meer dan een bepaalde waarde bedraagt. Taak 15: (extra) Wijzig de code nu zodat, startend bij 45°, elke 5° een extra ledje gaat branden.
17
4. Elektronische componenten In dit hoofdstuk worden de verschillende elektronische componenten besproken die jullie kunnen gebruiken voor het P&O2-project. Slechts na goedkeuring van de begeleiders, en enkel voor goede redenen is het toegestaan componenten te gebruiken die niet in deze bundel vermeld worden. Je kunt componenten bestellen door een mailtje te sturen naar één van de begeleiders elektronica. Prijzen en ordernummers worden vermeld in de tekst. Vergeet ook niet steeds je naam en je teamnummer te vermelden. Houd steeds rekening met het budget van je team! Normaal gezien worden componenten een aantal werkdagen na bestelling geleverd. Dit kan echter langer duren. Jullie zijn zelf verantwoordelijk. Zorg dus dat je op tijd bestelt. Ook als je elektronische componenten op een andere manier aankoopt, moet je dit op voorhand bespreken met de begeleiders! Extra informatie over de componenten besproken in dit hoofdstuk kan je steeds vinden in de datasheets die bij de component horen. Deze zijn te vinden op www.farnell.com of op TOLEDO.
Uitvoerelementen of actuatoren Uitvoerelementen of actuatoren zijn elektronische componenten die een elektronisch signaal dat van binnen het elektronisch systeem komt omzetten in een effect in de fysieke wereld rondom het systeem. Als je een elektronisch systeem iets wilt laten verwezenlijken of als je het iets wilt laten weergeven, heb je dus actuatoren nodig. De led Een led of light emitting diode is een component met twee connectiepunten die slechts stroom doorlaat in één enkele richting: de doorlaatrichting. In de andere richting, de sperrichting, kan (bijna) geen stroom vloeien. Wanneer er stroom vloeit door een led, geeft deze licht.
Figuur 12 Enkele rode leds
18
Figuur 13 Symbool van een led
Het verband tussen de stroom door de led (Iled) en de spanning (Vled) tussen de twee connecties van de led wordt gegeven door de volgende formule.
𝐼𝑙𝑒𝑑 = 𝐼0 ∙
𝑉𝑙𝑒𝑑 �𝑒 𝑛∙𝑉𝑇
− 1�
De parameters I0 en n∙VT zijn afhankelijk van het type led. De stroom neemt dus exponentieel toe met de spanning. In realiteit betekent dit meestal dat de stroom erg groot wordt wanneer Vled een bepaalde drempelspanning VD bereikt.
Figuur 14 Verband tussen spanning en stroom voor een led
Vraag 1: Bereken de stroom door een led met I0 = 5fA = 5∙10-15A, n∙Vt = 75mV wanneer de spanning Vled gelijk is aan 2.0V. .................................................................................................................................................... 19
Vraag 2: Wat is deze stroom wanneer Vled = 1.9V, of 2.1V? Wat kan je hieruit concluderen? .............................................................................................................................................. …… .................................................................................................................................................... Wanneer we een led willen gebruiken in een elektronische schakeling willen we de stroom die door deze component loopt beperken om beschadiging te voorkomen. Dit doen we door een weerstand in serie te plaatsen.
Figuur 15 Een led in serie met een weerstand
Vraag 3: Hoe groot moet de weerstand R uit Figuur 15 zijn indien de voedingsspanning 2.5V bedraagt en we een stroom van 10mA wensen (voor de led van vraag 1)? .................................................................................................................................................... Vraag 4: Zoek nog enkele waardes van Iled, R en de voedingspanning die voldoen aan de vergelijkingen. Kan je een eenvoudigere (benaderende) formule voor de stroom vinden (denk aan het antwoord op vraag 2)? .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... Vraag 5: Wat gebeurt er als we de volgorde van weerstand en diode omwisselen? En als we de richting van de diode veranderen? .................................................................................................................................................... De beschikbare leds voor dit project zijn weergeven in de volgende tabel. Kleur led Rood Oranje Groen
20
Iled, on 20mA 20mA 20mA
Vled, on 2.00V 2.05V 2.20V
Componentnummer L-934ID L-934ND L-934GD
Prijs 0.08€ 0.05€ 0.06€
Vraag 6: Bereken de waarde van R (voor de rode led) die je moet gebruiken in dit project als je weet dat de spanning geleverd door het platformbordje (dit is de voedingsspanning van de schakeling) gelijk is aan 3.3V. Is er veel verschil met de waarde van R voor de oranje of groene led? .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... Darlingtonbuffer Een darlingtonbuffer is een elektronische schakeling die, wanneer de spanning op de ingang hoog is, de uitgang met de grond verbindt. Wanneer de ingang niet hoog is, is de uitgang niet verbonden. De eigenschappen van de darlingtonbuffers die beschikbaar zijn binnen dit project zijn gegeven in de volgende tabel. #buffers 7 1
Vin,on 3.0V 2.5V
Iin,on < 0.9mA <3mA
Iout,max 300mA 3000mA
Componentnummer Prijs ULN2003A 0.62€ TIP122 0.39€
Het relais Een relais is een elektronisch bediende schakelaar. Deze wordt gebruikt om een apparaat aan te schakelen dat meer stroom verbruikt dan dat de controlerende component kan leveren. Wat je hoort knipperen wanneer je de richtingaanwijzer van een auto aanzet, is een relais dat de knipperlampen aan- en uitschakelt. Een relais heeft twee stroomkringen: de eerste stroomkring wordt gecontroleerd door de component die het relais aanstuurt. Deze kring stuurt een elektromagneet aan die, wanneer er stroom door loopt een schakelaar bedient die de tweede stroomkring sluit.
Figuur 16 De werking van een relais
De belangrijkste eigenschappen van de relais die jullie kunnen gebruiken zijn samengevat in de volgende tabel. In de datasheets kan je vinden hoe deze componenten verbonden moeten worden. 21
Vcontrol,on 5V 5V 12V
Icontrol,on 2mA 2mA 60mA
Vout,max 200V 200V 30V
Iout,max 0.5A 1.0A 5.0A
Componentnummer 9081-05-00 DIP05-1A72-12L G2R-2 12DC
Prijs 1.31€ 2.25€ 3.75€
Vraag 7: Teken een relaisschakeling voor een lampje dat werkt op een spanning van 12V en een equivalente weerstand heeft van 20Ω. Welk van de drie voorziene relais zou je hiervoor kiezen?
Vraag 8: Kan je een schakeling verzinnen die een last van 6A kan aandrijven (met de voorziene relais)? Wat als de controlerende component slechts stroom genoeg kan leveren om één relais aan te sturen?
22
Vraag 9: De uitgangen van het platformbordje kunnen slechts schakelen tussen 0V en 3.3V. Lukt het om hiermee het relais te controleren? Welke component kan hierbij helpen? Teken de bijbehorende schakelingen.
23
Intermezzo: Stroommeting
Als we willen weten hoeveel stroom een bepaalde belasting zoals een lamp of een motor verbruikt en we hebben niet voldoende informatie om dit te berekenen, kunnen we proberen te meten hoeveel stroom er door de last vloeit. Hiervoor gebruiken we de stroommeetfunctie van een multimeter. De meeste multimeters hebben drie connectiepunten: 1. De gemeenschappelijke connectie (zwart). Deze wordt altijd gebruikt. 2. De connectie voor weerstands- en spanningsmetingen (rood). 3. De connectie (soms meerdere) voor stroommetingen (rood). Voor stroommetingen gebruiken we uiteraard connectiepunten 1 en 3. Je moet de multimeter schakelen zodat de stroom die je wilt meten door de multimeter loopt. Plaats het keuzewiel van de multimeter op de stroommeetstand met het hoogste bereik. Zo voorkom je beschadiging door overbelasting. Pas wanneer je afleest dat de stroomsterkte voldoende laag is om in een lager bereik te passen mag je dat bereik kiezen. Vraag 10: Welke van de volgende drie schakelschema’s kan gebruikt worden om de stroom door de led te meten? .................................................................................................................................................. ....................................................................................................................................................
Figuur 17 Schakelschemas
Vraag 11: Wat gebeurt er wanneer we schakeling 1 zouden gebruiken (niet doen!)? .................................................................................................................................................... Vraag 12: Meet de stroom door een elektromotor (materiaal is aanwezig in het P&O-lokaal).
24
De elektromagneet Een elektromagneet is een component die magnetisch wordt onder invloed van elektrische stroom. Je kunt dus elektrisch controleren of ze zich al dan niet gedraagt als een magneet en of deze een aantrekkende of afstotende werking heeft. Elektromagneten bestaan meestal uit een kern van ferromagnetisch materiaal, bijvoorbeeld weekijzer, waaromheen een spoel is gewikkeld. Een voorbeeld van een elektromagneet is gegeven in Figuur 18.
Figuur 18 Een elektromagneet
De elektromagneten die kunnen gebruikt worden, zijn gegeven in de tabel. Let op: voor deze componenten is de levertermijn normaal gezien minstens 2 weken. Voedingsspanning
Kracht
12V 12V 12V 12V
20N 60N 100N 200N
Nominaal vermogen 2.5W 4.0W 3.8W 6.0W
Componentnummer
Prijs
ITS-MS-2015-12VDC ITS-MS-2520-12VDC ITS-MS-3025-12VDC ITS-MS-4027-12VDC
10.19€ 10.29€ 13.93€ 18.16€
Vraag 13: Bereken de stroom die nodig is om de elektromagneten aan te sturen. .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... Vraag 14: Kan de microcontroller rechtstreeks een elektromagneet aansturen? Waarom (niet)? .................................................................................................................................................... ....................................................................................................................................................
25
Vraag 15: Met welke component(en) (die je al bent tegengekomen in deze bundel) kan je dit probleem oplossen? Teken het bijhorende schakelschema.
De elektromotor Een elektromotor is een motor die elektrische energie omzet in mechanische energie. Elektromotoren worden onderverdeeld in gelijkstroom- en wisselstroommotoren. In de kleinere machines wordt meestal gebruik gemaakt van de gelijkstroommotor. Deze motor wordt in het dagelijkse leven in verschillende huishoudtoestellen gebruikt, denk maar aan de elektrische tandenborstel. Deze gelijkstroommotor heeft twee connectiepunten. De polariteit van deze polen bepaalt de draairichting van de motor. Figuur 19 toont een voorbeeld van een elektromotor. Deze motoren verschillen onderling in maximale rotatiesnelheid, voedingsspanning, koppel…
Figuur 19: De gelijkstroomelektromotor
De volgende gelijkstroommotoren zijn beschikbaar:[aanpassen] Voedingsspanning 1.5-3V 3-6V 12V
26
Toerental 12000 rpm 8000 rpm 14 rpm
Tmax 0.01 mNm 0.02 mNm 0.14 Nm
Inom 1.1 A 0.99 A 50 mA
Componentnummer MM10 MM28 1271-12-188
Prijs 3.17€ 5.67€ 25.6€
De stappenmotor Een stappenmotor is een kleine motor waarvan de hoek van de as nauwkeurig kan worden ingesteld. Deze motor heeft drie connectiepunten: een grond, een voeding en een connectie die de uitwijkingshoek controleert. De laatste connectie moet worden aangestuurd met een blokpulsentrein (ten opzichte van de grond) (zie Figuur 20). De frequentierange en de hoogte van de pulsen hangen af van het type stappenmotor. De relatieve breedte van de pulsen bepaalt de uitwijkingshoek.
Figuur 20 Aansturing van een stappenmotor
De volgende stappenmotoren zijn beschikbaar. Let op: de levertermijn van deze motoren kan meerdere weken bedragen! Vin 5V 5V
Blokpulsfrequentie ≈10kHz ≈10kHz
Uitwijkingshoek Tmax 180° 0.18 Nm 180° 0.85 Nm
Componentnummer Prijs TowerPro SG90 9G 3.75€ Towerpro MG995 10.33€
27
De speaker Een speaker is een component met twee connectiepunten die de spanning die wordt aangelegd tussen deze punten omzet naar het equivalent geluidssignaal. De frequentie van het aangelegde elektrisch signaal is gelijk aan de geluidsfrequentie die de speaker zal voortbrengen. De amplitude bepaalt de geluidssterkte, de pulsvorm heeft een effect op de klankkleur. Vraag 16: Als golfvorm a uit Figuur 21 een la van 440Hz is, geef dan de eigenschappen van golfvormen b, c en d. .................................................................................................................................................... ....................................................................................................................................................
Figuur 21 Golfvormen van geluidssignalen
Vraag 17: Open het project MusicMaestro en bestudeer de code. Hoe worden de golfvormen hier gemaakt? Wat zijn de beperkingen van deze methode? .................................................................................................................................................... .................................................................................................................................................... Voor dit project kunnen jullie gebruik maken van de volgende speaker (zie Figuur 22): Type Piëzo-elektrisch
Vin,max 30V
Componentnummer KPEG120
Figuur 22 De speaker
28
Prijs 0.85€
Invoerelementen of sensoren Invoerelementen of sensoren zijn componenten waarmee het elektronisch systeem informatie kan verwerven uit de omgeving. Het kan hierbij gaan om opdrachten van personen (bijvoorbeeld knoppen) of om fysische data (bijvoorbeeld druksensoren). De drukknop De drukknop is een schakelaar die slechts gesloten is zolang er op de knop gedrukt wordt. Ze heeft dus geen geheugen.
Figuur 23 Een drukknop
Vmax 250V
Componentnummer R13-509B-05-BB
Prijs 0.79€
De bistabiele schakelaar De bistabiele schakelaar is een schakelaar die twee stabiele standen heeft: aan en uit. Sommige schakelaars hebben twee contactpunten die al dan niet verbonden zijn. Andere types hebben drie contactpunten waarbij er één gemeenschappelijk is en er telkens één van de andere twee verbonden is met het gemeenschappelijke contactpunt.
Figuur 24 Een bistabiele schakelaar met drie contactpunten
Vmax 100V
Componentnummer EAO - 09-03290-01
Prijs 1.13€
29
De magneetsensor Een magneetsensor kan gebruikt worden om een magneet te detecteren. Wanneer de sensor een magneet voelt, worden de twee draden van de sensor verbonden (zie Figuur 25).
Figuur 25 De magneetsensor
Type Reed sensor
Meetbereik 12-18mm
Activatieafstand 13.5mm
Componentnummer 59145-1-S-02-A
Prijs 5.05€
Vraag 18: Wat is het probleem met de schakeling uit Figuur 26 om magneten te detecteren? (hint: wat gebeurt er wanneer er geen magneet gedetecteerd wordt?) .................................................................................................................................................... ....................................................................................................................................................
Figuur 26 Een schakeling met een magneetsensor
30
Intermezzo: Hoogimpedante knooppunten
Wanneer een knooppunt (een plaats in een elektrische schakeling) nergens mee verbonden is, is de potentiaal op dit knooppunt onbekend. Het is dus niet zo dat deze om een of andere reden 0 zou worden. Om dit te vermijden kunnen deze knooppunten verbonden worden met een bekende spanning. Dit gebeurt best met een weerstand met een voldoende grote waarde (> 10kΩ) om te vermijden dat op momenten dat de knooppunten wel verbonden zijn, er grote stromen zouden lopen. Vraag 19: Bereken de spanning in functie van R op knooppunten A en B (zie Figuur 27) wanneer de schakelaars open zijn en wanneer ze gesloten zijn. De schakelaars hebben een weerstand van 1GΩ wanneer ze open zijn en van 10Ω wanneer ze gesloten zijn. .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... ....................................................................................................................................................
Figuur 27 Schakelaars met pull-up en pull-down weerstanden
Vraag 20: Geef een geschikte waarde voor R. ....................................................................................................................................................
31
De accelerometer Een accelerometer is een sensor die versnelling (volgens één of meerdere assen) kan opmeten. Op het P&O2-platformbordje is een 3-assige accelerometer voorzien (type LIS3LV02DQ). Deze sensor is al besproken in de tutorial. Let op! Rotaties worden niet opgemerkt door deze sensor. De assen volgens welke de versnellingen worden gemeten staan niet altijd in dezelfde richting (zij volgen de sensor). De sensor kan geen onderscheid maken tussen echte versnellingen en de valversnelling. Deze laatste wordt dus altijd mee opgemeten! De schaalfactor tussen de getallen gegeven door de accelerometer en de versnelling in standaard eenheden moet per bordje en per as bepaald worden. Deze accelerometer wordt getoond in Figuur 28 en is ook weergegeven op Figuur 1 (6).
Figuur 28 De accelerometer
De optische afstandssensor Een optische afstandssensor is een sensor die bestaat uit zowel een infraroodzender als uit een lichtsensor. Deze sensor meet het tijdsverschil tussen het moment van verzenden van licht met de led en het ogenblik waarop de lichtsensor een gereflecteerd signaal terug ontvangt. Dit resulteert in een uitgangsspanning die lineair varieert met de afstand.
Figuur 29 De afstandssensor
Type
Meetafstand
Afstandssensor
4-30cm
32
Uitgangsspanningsverschil 0.6V
Voedings- Componentnr spanning 5V GP2D120XJ00F
Prijs 14.92€
Extra componenten Er bestaan uiteraard nog veel meer elektronische componenten dan degene die al besproken werden in hoofdstuk 4. Hier worden er nog enkele opgesomd. Weerstanden Weerstanden zijn elementen met twee contactpunten waarbij het verband tussen de spanning en de stroom lineair is (zie hoofdstuk 5: de wet van Ohm). Ze kunnen bestaan in verschillende groottes. De weerstanden die hier voorgesteld worden kunnen maximaal 0.5A verdragen. Ze bestaan in zeer veel verschillende waardes Waardes 1.0; 2.2; 4.0; 8.2; 10; 22; 40; 82; 100; 220; 400; 820; 1000Ω
IMAX 0.5A
Prijs 0.05€
De regelbare weerstand of potentiometer Een regelbare weerstand of potentiometer is een weerstand waarvan de weerstandswaarde (binnen een zeker bereik) geregeld kan worden.
Figuur 30 Het symbool van een potentiometer
Figuur 31 Een potentiometer
Volgende potentiometers zijn beschikbaar: Waardes 10Ω; 100Ω 1kΩ; 10kΩ; 100kΩ
PMAX 0.5W 0.5W
Prijs 1.00€ 2.00€
33
De condensator De condensator is een component met twee contactpunten die in staat is om lading op te slaan. De spanning over de condensator is recht evenredig met de hoeveelheid lading. De evenredigheidsfactor wordt de capaciteit (C) genoemd. Deze heeft de eenheid Farad (1F=1C/V). Aangezien stroom de hoeveelheid lading per tijdseenheid is, en een condensator geen geladen deeltjes doorlaat, is de totale hoeveelheid lading op de condensator gelijk aan: 𝑡0
𝑞(𝑡0 ) = � 𝑖𝐶 𝑑𝑡 −∞
En dus ook:
𝑡0
∫ 𝑖𝐶 𝑑𝑡 𝑉(𝑡0 ) = −∞ 𝐶
De diode De diode is een component die slechts stroom geleidt in één enkele richting (de led is een soort diode). Ook in de doorlaatrichting is een bepaalde spanning nodig voordat stroom geleid kan worden. Deze wordt de drempelspanning genoemd en is meestal gelijk aan 0.7V. Drempelspanning 1.0V
IMAX 10A
Componentnummer 1N4001
Prijs 0.10€
Spanningsregulatoren Als een voeding een te hoge spanning heeft, kan het nodig zijn deze te verlagen. Hiervoor gebruiken we spanningsregulatoren. Figure 32 geeft een schematische voorstelling. Vim is de ingangsvoedingsspanning, Vout de uitgangsvoedingsspanning. Vin moet steeds hoger zijn dan Vout, maar mag variëren. Vout wordt bepaald door de component.
Figure 32 Een spanningregulator
34
De beschikbare spanningsregulatoren zijn weergegeven in de volgende tabel. Vin,MIN 5.3V 8V 8.6V
Vin,MAX 25V 20V 19V
Vout 3.3V 5.0V 6.0V
IMAX 500mA 1.5A 1.5A
Componentnummer UA78M33CKCS L7805CV L7806CV
Prijs 0.5€ 0.5€ 0.8€
35
5. Een beetje theorie Basiswetten elektriciteit Er zijn slechts drie wetten waarvan we verwachten dat je ze uit het hoofd kent. Zonder deze wetten is het niet mogelijk iets over elektriciteit of elektronica te begrijpen. Om deze wetten te kunnen begrijpen is het nodig de twee basisgrootheden van de elektriciteit te kennen: stroom en spanning. Elektrische stroom (I) is de hoeveelheid lading die per tijdseenheid ergens voorbijkomt. Hij wordt uitgedrukt in Ampère (1A=1C/s). Aangezien een Coulomb (eenheid van lading, C) een positieve eenheid is en de lading van een elektron negatief is, loopt de (conventionele) stroom in de andere richting dan dat de elektronen bewegen. De spanning (V) tussen twee punten is het verschil in energie per lading tussen die twee punten. Dit wordt uitgedrukt in Volt (1V=1J/C). Een analogie voor stroom en spanning kan je vinden in het stromen van water in een rivier. De elektrische stroom is te vergelijken met het debiet van de rivier. De spanning komt overeen met het hoogteverschil tussen twee punten op de rivier. De eerste wet van Kirchhoff De eerste wet van Kirchhoff bepaalt dat er op elk elektrisch knooppunt op elk tijdstip evenveel stroom toekomt als er vertrekt. Dit komt door het feit dat er zich anders lading zou ophopen wat slechts zeer kort mogelijk is. �
𝐼𝑖 = 0
�
𝑉𝑖 = 0
𝑘𝑛𝑜𝑜𝑝𝑝𝑢𝑛𝑡
De tweede wet van Kirchhoff De tweede wet van Kirchhoff zegt dat de som van alle spanningen tussen punten in een gesloten lus gelijk is aan 0. Dit is een logisch gevolg van het feit dat spanning het potentiaalverschil tussen knooppunten is.
𝑔𝑒𝑠𝑙𝑜𝑡𝑒𝑛 𝑙𝑢𝑠
36
De wet van Ohm Volgens de wet van Ohm is de verhouding tussen de spanning over een weerstand en de stroom door deze weerstand constant (bij constante temperatuur). De verhouding wordt ook de weerstand (R) genoemd en wordt uitgedrukt in Ohm (Ω). De stroom vloeit van het punt met de hoogste spanning naar het punt met de laagste spanning. 𝑉 =𝑅 𝐼
Lijst van elektrische grootheden Grootheid Stroom Spanning Lading Vermogen Weerstand Geleidbaarheid Capaciteit
Symbool I V Q P R G C
Eenheid Ampѐre Volt Coulomb Watt Ohm Siemens Farad
Symbool A V C W Ω S F
Gelijk aan C/s J/C A∙s J/s, A∙V V/A A/V, 1/Ω C/V
Een systeem Elk systeem, al dan niet elektronisch, dat interageert met een omgeving, bestaat uit drie delen: sensoren, actuatoren en controle. Sensoren en actuatoren zorgen voor de vertaling van signalen uit de buitenwereld naar signalen die door de controle begrepen kunnen worden en omgekeerd zoals weergegeven in Figuur 33.
Figuur 33 Een algemeen schema van een systeem
37
Het is belangrijk dat bij het ontwerpen van een goed systeem voldoende aandacht besteed wordt aan elk van de verschillende onderdelen. Een systeem zal immers slechts goed werken wanneer alle verschillende delen vlekkeloos met elkaar kunnen samenwerken. Een controller observeert ingangen en stuurt op basis daarvan uitgangen aan om tot een gewenst gedrag te komen. Typisch zijn er twee soorten controlesystemen: een openlussysteem en een gesloten-lussysteem.
Figuur 34 Open-lussysteem
Figuur 35 Gesloten-lussysteem
Een open-lussysteem stuurt actuatoren aan om een gewenst effect te bekomen zonder kennis van de huidige status van de omgeving. Het systeem kan dus niet controleren of het gewenste effect inderdaad bekomen werd. Zo een systeem kan enkel goed werken als de te regelen omgeving voorspelbaar is. In vele gevallen is dit niet zo. Een gesloten-lussysteem kan via sensoren de huidige toestand van de omgeving opmeten en is dus in staat om de aansturing van de actuatoren bij te regelen.
38
6. De MICROC-programmeertaal MICROC in het kort MICROC is een imperatieve programmeertaal, die gebruikt wordt om de microcontroller die
op het P&O2-platformbord is geplaatst te programmeren. Het computerprogramma waarin deze code geschreven wordt heet MPLAB (zie hoofdstuk 3). Deze taal is gebaseerd op de bekende taal C. De syntax (schrijfwijze) van deze taal lijkt sterk op die van moeten kennen. Enkele belangrijke verschilpunten: •
•
• • • • • • •
JAVA,
die jullie allemaal zouden
MICROC is niet objectgeoriënteerd.
o Er zijn geen klassen aanwezig in de taal. o Alle variabelen en methodes zijn static. MICROC heeft andere primitieve datatypes. o int heeft een kleiner bereik (16 bit) o boolean bestaat niet. De getalwaarde 0 wordt beschouwd als false, alle andere waarden als true. MICROC werkt met pointers (zoals C en C++). Variabelen rechtstreeks gedefinieerd in een codebestand (dus niet in een methode) zijn overal zichtbaar. Variabelen die je binnen een methode wilt definiëren, moeten bij het begin van de methode gedeclareerd worden. De microC-compiler overloopt de code slechts éénmaal, van voor naar achteren o Methodes moeten gedeclareerd worden voordat je ze kan gebruiken. MICROC heeft geen manier om de zichtbaarheid (public, private, protected, default) van methodes of variabelen te wijzigen. Er zijn mechanismen voorzien om de interne registers en de configuratie van de microcontroller aan te passen (#pragma). MICROC maakt gebruikt van preprocessordirectieven (code die start met #).
De meeste van deze zaken hebben voor jullie relatief weinig belang. Wanneer je de code eenvoudig genoeg houdt, zul je ze niet nodig hebben. Jullie moeten wel in staat zijn het volgende voorbeeldje volledig te snappen. // Example program
Commentaar, deze lijn doet niets.
int a;
Declaratie van de integer (geheel getal) a. Deze declaratie is geldig voor het gehele programma.
int b = 5;
Declaratie van en toekenning van b
39
int checkEven(int i);
Declaratie van de methode checkEven.
main() {
Start van de methode main. Elk programma wordt gestart met deze functie
int c;
Declaratie van c. Deze declaratie is alleen geldig binnen de methode main. Alle declaraties van functievariabelen moeten gebeuren aan het begin van de methode
a = 7;
Toekenning van 7 aan a.
for(c = 5; c < 10; c = c + 1) {
Start van de for-lus. Bij het begin van de lus wordt c gelijkgesteld aan 5. De lus wordt doorlopen zolangc kleiner is dan 10. Elke keer dat de kus doorlopen wordt, wordt c opgehoogd met 1.
if(checkEven(c)) {
Conditioneel blok, de volgende lijnen worden slechts uitgevoerd wanneer de methode checkEven(c) niet 0 (false) teruggeeft
a = a + b;
De waarde van a wordt met de waarde van b verhoogd
if(a >= 16)
Conditionele lijn. De volgende regel wordt enkel uitgevoerd wanneer a groter of gelijk is aan 16
a = 0; } }
a wordt op 0 gezet Einde van het conditioneel blok Einde van de for-lus
}
Einde van de main-methode
int checkEven(int i) {
Start van de methode checkEven. Deze methode heeft als argument een geheel getal i en geeft als resultaat een ander geheel getal terug.
return (i%2) == 0;
}
40
Het resultaat wordt teruggegeven. % staat voor ‘modulo’. Einde van de methode checkEven
Vraag 21: Zoek op waarvoor het while-statement dient in MICROC. .................................................................................................................................................... ................................................................................................................................................... .................................................................................................................................................... ....................................................................................................................................................
Vraag 22: Herschrijf de for-lus in het voorgaande stukje code. Maak daarbij gebruik van het while-statement. .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... ....................................................................................................................................................
Vraag 23: Schrijf een programma dat de eerste 10 fibonaccigetallen print. .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... ....................................................................................................................................................
41
Vraag 24: Schrijf methode die voor blokgolf met een gegeven frequentie f gedurende een gegeven tijd t aan een pin aanlegt. Maak hiervoor gebruik van de functies gegeven op het einde van dit hoofdstuk. .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... .................................................................................................................................................... ....................................................................................................................................................
De MICROC-preprocessor Voordat de MICROC-code die jullie hebben geschreven wordt gecompileerd (omgezet naar machinetaal), worden er eerst een aantal bewerkingen op uitgevoerd door de preprocessor. De opdrachten voor deze precompiler heten preprocessordirectieven en beginnen altijd met een #. Deze opdrachten worden uitgevoerd op de code zelf, de resulterende code wordt gebruikt als programma. Op het moment dat dit programma wordt uitgevoerd, bestaan de preprocessordirectieven dus niet meer. Enkele voorbeelden: #include “filename.h”:
#include
#ifndef VAR … #endif #define VAR #pragma
42
de file met naam filename.h wordt letterlijk ingevoegd op de plaats van het directief. De bijhorende filename.c wordt eveneens toegevoegd De bibliotheek met naam libraryname wordt ingevoegd op de plaats van het directief. De bijhorende libraryname.c wordt eveneens toegevoegd De code tussen deze twee directieven wordt slechts gecompileerd wanneer de preprocessorvariabele VAR gedefinieerd is Definieert de variabele VAR Directief gebruikt om de hardware in te stellen
Beschikbare methodes De volgende tabel geeft een aantal methodes weer die jullie kunnen gebruiken om je programma te schrijven. Een vollediger overzicht kan je vinden in het bestand MicroCLibrary.pdf op TOLEDO.
Beschrijving pin inOut Beschrijving inOut Beschrijving pin data Beschrijving pin
Beschrijving Beschrijving Beschrijving
Beschrijving Beschrijving nbMs Beschrijving nbUs
Methodes om de pinnen van de microcontroller te controleren setInOut(int pin, int inOut) Bepaalt of een pin een input- of een outputpin is Het nummer van de pin (1-7) 1 voor een input, 0 voor een output int getInOut(int pin) Geeft weer of een pin een input- of een outputpin is Het nummer van de pin (1-7) setData(int pin, int data) Bepaalt de waarde van een pin (slechts indien het een outputpin is!) Het nummer van de pin (1-7) De waarde (0 of 1) int getData(int pin) Geeft de waarde van een pin weer. Voor een inputpin is dit de gemeten waarde, voor een outputpin de waarde die hierop geplaatst is. Het nummer van de pin (1-7)
Methodes voor het uitlezen van de accelerometer int readXacceleration() Vraagt de versnelling volgens de X-as op int readYacceleration() Vraagt de versnelling volgens de Y-as op int readZacceleration() Vraagt de versnelling volgens de Z-as op
Methodes voor het gebruik van de timer startTimer() Start de timer waitForTimerMs(unsigned int nbMs) Wacht tot een gedefinieerd aantal (nbMs) milliseconden wordt bereikt, vanaf het ogenblik waarop de timer gestart werd. Het aantal milliseconden dat moet worden gewacht waitForTimerUs(unsigned int nbUs) Wacht tot een gedefinieerd aantal (nbUs) microseconden wordt bereikt, vanaf het ogenblik waarop de timer gestart werd. Het aantal microseconden dat moet worden gewacht
43