Hoe programmeer je een Arduino-bord? · 2017-09-19 · ‘Compileren’ betekent dat de...

19
Schooljaar 2015-2016 SUBMODULE HOE PROGRAMMEER JE EEN ARDUINO- BORD? Gebaseerd op: FITZGERALD, S. , SHILOH, M., e.a., Arduino Projects Book, 2 de druk, Arduino, Torino, 2013, 171 blz, (onderdeel van de Arduino Starter Kit)

Transcript of Hoe programmeer je een Arduino-bord? · 2017-09-19 · ‘Compileren’ betekent dat de...

Page 1: Hoe programmeer je een Arduino-bord? · 2017-09-19 · ‘Compileren’ betekent dat de Arduino-code die je geschreven hebt, omgezet wordt via machinetaal naar binaire code: een code

Schooljaar 2015-2016

SUBMODULE

HOE PROGRAMMEER

JE EEN ARDUINO-BORD?

Gebaseerd op: FITZGERALD, S. , SHILOH, M., e.a., Arduino Projects Book, 2de druk, Arduino, Torino, 2013, 171 blz,

(onderdeel van de Arduino Starter Kit)

Page 2: Hoe programmeer je een Arduino-bord? · 2017-09-19 · ‘Compileren’ betekent dat de Arduino-code die je geschreven hebt, omgezet wordt via machinetaal naar binaire code: een code

Submodule: Hoe programmeer je een Arduino-bord? 1

Inhoudstafel

1 Voorkennis en doelstellingen .................................................... 2

2 Alarmsysteem ........................................................................... 3

2.1 Uitdaging ................................................................................... 3

2.2 Oriëntatie .................................................................................. 3

2.3 Voorbereiding ............................................................................ 3

2.4 Onderzoek / ontwerp ................................................................. 6

2.5 Testen / concluderen ................................................................. 8

2.6 Rapporteren ............................................................................ 10

3 Verliefdheidsmeter ................................................................. 11

3.1 Uitdaging ................................................................................. 11

3.2 Oriëntatie ................................................................................ 11

3.3 Voorbereiding .......................................................................... 11

3.4 Onderzoek / ontwerp ............................................................... 12

3.5 Testen / concluderen ............................................................... 15

3.6 Rapporteren ............................................................................ 15

4 Dimbare verliefdheidsmeter ................................................... 17

4.1 Uitdaging ................................................................................. 17

4.2 Oriëntatie ................................................................................ 17

4.3 Voorbereiding .......................................................................... 17

4.4 Onderzoek / ontwerp ............................................................... 17

4.5 Testen / concluderen ............................................................... 18

4.6 Rapporteren ............................................................................ 18

Page 3: Hoe programmeer je een Arduino-bord? · 2017-09-19 · ‘Compileren’ betekent dat de Arduino-code die je geschreven hebt, omgezet wordt via machinetaal naar binaire code: een code

Submodule: Hoe programmeer je een Arduino-bord? 2

1 Voorkennis en doelstellingen

Aan de hand van deze bundel leer je hoe je het Arduino-bord kan gebruiken om

zelf elektronische toepassingen te bouwen.

Het uiteindelijke doel is de uitdaging van de zelfstandig rijdende auto. Daarvoor

heb je heel wat kennis nodig. Aan de hand van enkele kleine projectjes bouw je

die kennis op. Daarna kan je alles als een puzzel in elkaar passen bij het

programmeren van je auto.

In elk project verwerf je heel uiteenlopende kennis. De precieze doelstellingen

worden daarom steeds per project vermeld.

Uiteraard kan je geen elektronische toepassing bouwen zonder kennis van

elektriciteit en elektronica. De basiselementen daarvan hebben we gebundeld in

een aparte Submodule: Basis elektronica.

Om te kunnen starten heb je meteen die Submodule nodig: neem deel 1 tot en

met deel 5 grondig door. Maak de opdrachten uit deel 6.

Klaar? Dan kan je starten met het eerste programmeerproject.

Page 4: Hoe programmeer je een Arduino-bord? · 2017-09-19 · ‘Compileren’ betekent dat de Arduino-code die je geschreven hebt, omgezet wordt via machinetaal naar binaire code: een code

Submodule: Hoe programmeer je een Arduino-bord? 3

2 Alarmsysteem

2.1 Uitdaging Maak een alarmsysteem met je Arduino-bord en het breadboard:

Zolang er niets gebeurt, brandt een groene LED.

Als de knop ingedrukt wordt, beginnen 2 rode LEDs te knipperen.

2.2 Oriëntatie

Bouw een alarmsysteem.

Hoe kan je het Arduino-bord integreren in de schakeling zodat het

signalen kan opvangen en uitsturen?

Welke elementen bevat een Arduino-bord?

Hoe programmeer je een Arduino-bord?

Hoe werkt de programmeeromgeving?

Uit welke elementen bestaat een Arduino-programma?

Hoe maak je een keuze in een programma?

(Ofwel de rode ofwel de groene LEDs moeten branden.)

2.3 Voorbereiding

2.3.1 Hardware / elektrisch schakeling

Bestudeer grondig de verschillende elementen op je Arduino-bord.

1

2

3

4

5

6

7

8

9

10

Page 5: Hoe programmeer je een Arduino-bord? · 2017-09-19 · ‘Compileren’ betekent dat de Arduino-code die je geschreven hebt, omgezet wordt via machinetaal naar binaire code: een code

Submodule: Hoe programmeer je een Arduino-bord? 4

1 Reset-knop

Reset het bord en de microcontroller

2 USB-poort

Is de verbinding met de PC voor de voeding en het opladen van de programma’s

3 Pin 13 LED

De enige ingebouwde uitvoercomponent op het bord. Ideaal voor

controles en foutopsporing.

4 TX en RX LEDs

Deze LEDs geven weer wanneer je Arduino-bord communiceert met je

computer. Is handig bij foutopsporing.

5 Aansluiting voor voeding Geschikt voor spanning van 7-12V. Kan gebruikt worden als er geen

verbinding via USB is (bvb nadat het programma op het bord geladen

is).

6 GND en 5V pinnen

Gebruik deze pinnen om 5V spanning en aarding te voorzien voor je

schakelingen

7 Digitale pinnen Gebruik deze pinnen om digitale gegevens te lezen en de schrijven. Je

kan ook analoge gegevens schrijven op de pinnen met het ~-symbool.

8 Spanning LED

Geeft weer dat je Arduino-bord spanning heeft. Is handig bij foutopsporing.

9 ATmega microcontroller

Het hart van je Arduino-bord

10 Analoge pinnen Gebruik deze pinnen om analoge gegevens te lezen

Ken je de functie van al deze elementen?

2.3.1.1 Microcontroller

Microcontrollers worden ook wel eens microchips genoemd, of ICs (geïntegreerde

schakelingen).

In de microcontroller zitten een

processor, geheugen (ROM en

RAM), een klok en in-en

uitvoerpoorten. Het is dus eigenlijk

een compacte versie van een PC.

De compacte vorm

brengt echter beperkingen mee: een

microcontroller kan nooit de grote

hoeveelheid complexe taken

uitvoeren zoals onze PC.

Microcontrollers worden daarom

Page 6: Hoe programmeer je een Arduino-bord? · 2017-09-19 · ‘Compileren’ betekent dat de Arduino-code die je geschreven hebt, omgezet wordt via machinetaal naar binaire code: een code

Submodule: Hoe programmeer je een Arduino-bord? 5

meestal ontwikkeld voor één specifieke taak. Op die manier

worden ze ondertussen gebruikt in zowat alle apparaten die

aangestuurd moeten worden.

2.3.1.2 Pinnen

De pinnen zijn via geleide tracks aangesloten op de microcontroller. Je kan de

tracks herkennen aan de onderzijde van het Arduino-bord.

Via de pinnen kan de microcontroller dus signalen ontvangen en uitsturen en dus

kan je er allerlei componenten op aansluiten: LEDs, drukknoppen, een

luidspreker, motoren, een temperatuursensor, een microfoon, een zwart-

witsensor, een afstandssensor, ….

Kan jij zelf bovenvermelde componenten op de juiste plaats zetten?

Ingangs-

component

Uitgangs-

component

......

......

......

......

......

......

......

......

Waar zou je deze componenten aansluiten op je Arduino-bord?

Page 7: Hoe programmeer je een Arduino-bord? · 2017-09-19 · ‘Compileren’ betekent dat de Arduino-code die je geschreven hebt, omgezet wordt via machinetaal naar binaire code: een code

Submodule: Hoe programmeer je een Arduino-bord? 6

2.3.2 Software

Een microcontroller heeft instructies nodig: hij moet weten hoe hij moet

reageren op bepaalde signalen.

De microcontroller op je Arduino-bord wordt geprogrammeerd met een

vereenvoudigde versie van C. C is al een oude programmeertaal (meer dan 40

jaar), maar wordt nog steeds gebruikt. Vooral in besturingssystemen en

microcontrollers wordt nog geprogrammeerd in C.

Voor het programmeren heb je twee referentiewerken ter beschikking:

https://www.arduino.cc/en/Reference/HomePage

Dit is deel van de Arduino website. De informatie is degelijk en goed

gestructureerd, maar in het Engels.

Op smartschool vind je de ‘Arduino programmeer manual’.

Deze manual is een Nederlandse vertaling van de website. Omwille van de

taal en de omkaderende tekst is dit document toegankelijker dan de

website, maar anderzijds is de informatie niet zo goed gestructureerd.

Maak er een gewoonte van om eerst naar de website te gaan. Op die manier

geraak je snel vertrouwd met het technische Engels (de voertaal binnen de

informatica). Maar aarzel niet om de Nederlandstalige manual te gebruiken als

back-up bij onduidelijkheden.

2.4 Onderzoek / ontwerp

2.4.1 Het Arduino-bord integreren in de schakeling

! Koppel de voeding af voor je de schakeling opbouwt !

! Laat de schakeling nakijken voor je de voeding aansluit !

Je hebt al eerder LEDs geschakeld met een drukknop. Nu moet je er echter voor

zorgen dat ook microcontroller op het Arduino-bord in de schakeling wordt

opgenomen.

Let er op dat je de juiste weerstanden gebruikt voor de LED’s.

2.4.2 Input in een elektronische schakeling

Een input-pin moet binnen een elektronische schakeling steeds volledig

verbonden zijn. Als de pin niet verbonden is, kan ze willekeurige signalen

oppikken vanuit de omgeving.

Page 8: Hoe programmeer je een Arduino-bord? · 2017-09-19 · ‘Compileren’ betekent dat de Arduino-code die je geschreven hebt, omgezet wordt via machinetaal naar binaire code: een code

Submodule: Hoe programmeer je een Arduino-bord? 7

In onze toepassing is de input-pin volledig verbonden op het moment dat de

schakelaar ingedrukt wordt: er is een schakeling van 5V naar GND.

Maar als de schakelaar niet wordt ingedrukt, heeft de pin langs één zijde geen

verbinding.

Je lost dit op door een 10k Ω weerstand te plaatsen tussen de input-pin en GND.

Deze weerstand noemt met een Pull-Down-weerstand: de weerstand neemt alle

spanning op waardoor de input-pin zeker 0V als signaal krijgt.

2.4.3 De programmeeromgeving

Start de programmeeromgeving.

Je herkent meteen de 2 onderdelen van elk Arduino-programma: setup() en

loop().

Zoek in de referentiewerken op wat setup() en loop() betekenen en waar je ze

voor moet gebruiken.

In de documentatie en de voorbeelden herken je meteen enkele tekens die

typisch zijn voor C en aanverwante programmeertalen: ; (puntkomma),

Page 9: Hoe programmeer je een Arduino-bord? · 2017-09-19 · ‘Compileren’ betekent dat de Arduino-code die je geschreven hebt, omgezet wordt via machinetaal naar binaire code: een code

Submodule: Hoe programmeer je een Arduino-bord? 8

(accolades), // (regel commentaar). Zoek op waarvoor deze tekens gebruikt

worden.

2.4.4 Signalen opvangen en uitsturen: invoer en uitvoer

De knop en de LEDs werken met digitale signalen: HIGH (spanning) of LOW

(geen spanning):

Een ingedrukte knop geeft aan de pin de waarde HIGH. Als de knop wordt

losgelaten, geeft hij de waarde LOW.

De waarde HIGH doet een led branden, de waarde LOW zet een led uit.

Om correct te werken met digitale waarden, moet je vertrouwd zijn met de

functies pinMode(), digitalWrite() en digitalRead(). Zoek op wat deze functies

precies doen.

2.4.5 Kiezen: groen of rood?

Op basis van de waarde van de knop, moeten verschillende waarden uitgevoerd

worden:

Is de knop niet ingedrukt: de groene led moet de waarde HIGH krijgen, de

rode LEDs de waarde LOW.

Is de knop wel ingedrukt: de groene led moet de waarde LOW krijgen, de

rode LEDs de waarde HIGH.

Het programma moet dus een keuze maken. Dat doe je met de controlestructuur

if…else. Zoek op hoe deze structuur werkt.

2.4.6 Ook nuttig

Zoek zeker ook op waarvoor de functie delay() gebruikt wordt. En je zal ook de

operator == moeten gebruiken.

2.5 Testen / concluderen

2.5.1 Programma schrijven

Ondertussen heb je heel wat informatie opgezocht. Aan de hand daarvan kan je

proberen het programma te schrijven.

Arduino gebruikt het woord ‘schets’ in plaats van ‘programma’. In deze tekst

zullen we ‘programma’ gebruiken.

2.5.2 Compileren en uploaden

Als het programma klaar is, moet je het overbrengen naar je Arduino-bord. Dat

gebeurt in twee stappen:

Page 10: Hoe programmeer je een Arduino-bord? · 2017-09-19 · ‘Compileren’ betekent dat de Arduino-code die je geschreven hebt, omgezet wordt via machinetaal naar binaire code: een code

Submodule: Hoe programmeer je een Arduino-bord? 9

Het programma moet eerst gecompileerd worden.

‘Compileren’ betekent dat de Arduino-code die je geschreven hebt,

omgezet wordt via machinetaal naar binaire code: een code die de

microcontroller op je Arduino-bord begrijpt. Binaire code bestaat uit enkel

0-en en 1-en waardoor ze voor ons niet leesbaar is.

Tijdens de compilatie wordt eerst ook de programmacode gecontroleerd.

Als je fouten gemaakt hebt in de schrijfwijze (geen ; of de foute haakjes of

…), krijg je bij de compilatie een foutmelding. Je moet dan eerst de fout

zoeken en verbeteren. Daarna probeer je opnieuw te compileren.

Daarna upload je het programma naar je Arduino-bord.

Het programma start automatisch en blijft lopen zolang het bord voeding

heeft. Het programma blijft op het bord staan, zelfs na onderbreking van

de voeding: het zal meteen weer starten zodra er terug voeding

beschikbaar is.

Page 11: Hoe programmeer je een Arduino-bord? · 2017-09-19 · ‘Compileren’ betekent dat de Arduino-code die je geschreven hebt, omgezet wordt via machinetaal naar binaire code: een code

Submodule: Hoe programmeer je een Arduino-bord? 10

2.6 Rapporteren

2.6.1 Persoonlijk verslag

Teken het schema van de schakeling

Voeg in de programmacode commentaar toe om voor jezelf alles duidelijk te maken. Druk daarna de code af en voeg ze toe aan je

bundel.

2.6.2 Doelstellingen

Wat moet je kennen?

De begrippen microcontroller, ingangs- en uitgangscomponent

De functie van de onderdelen setup() en loop() in een Arduino-programma

Wat moet je kunnen?

Een elektronisch signaal inlezen met het Arduino-bord (input)

Een pull-up weerstand gebruiken bij het inlezen

Een elektronisch signaal uitsturen via het Arduino-bord (output)

Geselecteerde referentiewerken gebruiken als naslagwerk

De if…else controlestructuur gebruiken

De functies pinMode(), digitalWrite(), digitalRead() en delay() gebruiken

Page 12: Hoe programmeer je een Arduino-bord? · 2017-09-19 · ‘Compileren’ betekent dat de Arduino-code die je geschreven hebt, omgezet wordt via machinetaal naar binaire code: een code

Submodule: Hoe programmeer je een Arduino-bord? 11

3 Verliefdheidsmeter

3.1 Uitdaging Bouw een verliefdheidsmeter. Hoe warmbloedig ben je?

Een warmtesensor meet de temperatuur van je huid. Hoe warmer je bent, hoe

meer LEDs oplichten.

3.2 Oriëntatie

Bouw een verliefdheidsmeter.

Hoe kan de temperatuur gemeten worden door het Arduino-bord?

Hoe voeg je een warmtesensor toe aan een schakeling?

Welke informatie krijgt het Arduino-bord van de sensor?

Hoe verwerk je in een programma verschillende gegevens?

Wat zijn variabelen?

Welk soort gegevens kan je in variabelen bewaren?

Hoe kan je meerdere keuzes combineren?

Hoe kan je gegevens op je scherm laten verschijnen?

Wat is seriële uitvoer?

3.3 Voorbereiding Voor dit project gebruiken we een

warmtesensor van het type TMP36.

Voor onze verliefdheidsmeter spreken we af:

Als de sensor een temperatuur van minstens 24°C oppikt, gaat 1 LED

branden.

Vanaf 27°C begint ook een 2de LED te branden.

Pas als de temperatuur boven de 30°C gaat, branden de 3 LEDs.

Page 13: Hoe programmeer je een Arduino-bord? · 2017-09-19 · ‘Compileren’ betekent dat de Arduino-code die je geschreven hebt, omgezet wordt via machinetaal naar binaire code: een code

Submodule: Hoe programmeer je een Arduino-bord? 12

3.4 Onderzoek / ontwerp

3.4.1 Een warmtesensor toevoegen aan een schakeling

De warmtesensor zet energie uit warmte om naar elektrische energie. Hoe

warmer de sensor wordt, hoe meer spanning hij door laat.

Het is daarbij heel belangrijk hoe je de sensor in de schakeling opneemt:

- Het linkse beentje is verbonden met de

spanningsbron. - Het rechtse beentje is verbonden met GND

- Het centrale beentje geeft de variabele spanning

door, afhankelijk van de temperatuur.

De waarde die door het centrale

beentje gestuurd wordt is analoog,

of ‘traploos’.

Dergelijke waarden kunnen alleen ingelezen worden door een

analoge pin op je Arduino-bord.

3.4.2 Hoe verwerk je de gegevens van de warmtesensor?

Elke elektronische component wordt uitvoerig beschreven in datasheets

(beschikbaar via internet). Die informatie heb je nodig om de gegevens van de

sensor correct te interpreteren.

Voor de TMP36 is deze informatie beschikbaar:

Spanning tss 2.7 V en 5.5 V

Meetgegevens tussen -40°C en +125°C. (max blootstelling aan 150°C)

Schaal van 10 mV / °C

Levert 750 mV bij 25°C

Page 14: Hoe programmeer je een Arduino-bord? · 2017-09-19 · ‘Compileren’ betekent dat de Arduino-code die je geschreven hebt, omgezet wordt via machinetaal naar binaire code: een code

Submodule: Hoe programmeer je een Arduino-bord? 13

Bereken enkele spanningen die de TMP36 kan leveren.

De laagst mogelijke spanning:

De hoogst mogelijke spanning:

De spanning bij 0°C:

Bedenk een formule waarmee je elke geleverde spanning kan omzetten

naar een temperatuur in °C

3.4.3 Analoge gegevens inlezen

Om de gegevens van de sensor in te lezen, gebruik je de functie analogRead().

Welke waarden levert de functie analogRead()?

Bedenk een formule waarmee je deze waarden kan omzetten naar

spanning (V en mV).

3.4.4 Met gegevens werken in een programma

Uit het voorgaande is duidelijk dat we met heel wat gegevens zullen werken in

dit programma:

de waarde van de sensor moet ingelezen worden

op basis daarvan berekenen we de spanning en de temperatuur

de temperatuur moeten we vergelijken met de grenswaarden (24, 27 en

30) om de juiste LEDs te laten branden.

Page 15: Hoe programmeer je een Arduino-bord? · 2017-09-19 · ‘Compileren’ betekent dat de Arduino-code die je geschreven hebt, omgezet wordt via machinetaal naar binaire code: een code

Submodule: Hoe programmeer je een Arduino-bord? 14

Om vlot en overzichtelijk met dergelijke gegevens te kunnen werken, gebruiken

we variabelen. Zoek in de Nederlandstalige handleiding op wat een variabele

precies is en waarvoor ze gebruikt worden.

Om variabelen te kunnen gebruiken, moet je ze eerst declareren: je kiest een

naam en het soort van gegevens dat de variabele zal bevatten. Zoek op wat het

verschil is tussen een byte, een int en een float.

Welke variabelen zou je in dit programma gebruiken? Welk type

gegevens bevatten ze?

3.4.5 Kiezen tussen vier mogelijkheden

Afhankelijk van de temperatuur, heb je in dit project vier verschillende opties

voor de uitvoer:

Bij een temperatuur lager dan 24°C mag er geen LED branden

Vanaf 24°C moet één LED branden

Vanaf 27°C moeten twee LEDs branden

Vanaf 30°C moeten drie LEDs branden

In de documentatie over de if…else heb je zeker al mogelijkheden ontdekt om

meerdere selecties te combineren. Zoek ze nog eens op.

3.4.6 Verloop van het programma controleren en gegevens weergeven

Omwille van de verschillende gegevens, berekeningen en voorwaarden, kan er in

dit programma heel wat mis lopen.

Het is handig om de loop van het programma en het verwerken van de gegevens

op je scherm te kunnen volgen. Daarvoor maken we gebruik van seriële

communicatie: de gegevens worden meteen doorgestuurd, één na één, zodra ze

beschikbaar zijn.

Voor deze communicatie zijn verschillende functie beschikbaar. Ze werden

gegroepeerd in de klasse Serial. In de Engelstalige documentatie vind je de

volledige lijst van functies uit de klasse, de Nederlandstalige handleiding is hier

eerder beperkt.

Page 16: Hoe programmeer je een Arduino-bord? · 2017-09-19 · ‘Compileren’ betekent dat de Arduino-code die je geschreven hebt, omgezet wordt via machinetaal naar binaire code: een code

Submodule: Hoe programmeer je een Arduino-bord? 15

Let op de schrijfwijze van deze functies: een hoofdletter en een . op de juiste

plaats: Klasse.functie !

Voor je programma zal je de functies Serial.begin(), Serial.print() en

Serial.prinln() nodig hebben. Zoek op hoe ze werken.

Zodra je programma geuploaded is naar je Arduino-bord kan je de

gegevensverwerking opvolgen via de Seriële monitor van Arduino. Die open je

door te klikken op het icoon in de rechterbovenhoek van het Arduino-venster.

3.4.7 Ook nuttig

Je hebt al eens gewerkt met de operator ==. Nu gebruik je ook de =.

Wat is het verschil tussen beide?

3.5 Testen / concluderen Ondertussen heb je alle puzzelstukjes verzameld om dit project uit te werken en

te testen.

Als je merkt dat het fout loopt, probeer dan rustig te analyseren wat er precies

mis gaat.

3.6 Rapporteren

3.6.1 Persoonlijk verslag

Teken het schema van de schakeling

Page 17: Hoe programmeer je een Arduino-bord? · 2017-09-19 · ‘Compileren’ betekent dat de Arduino-code die je geschreven hebt, omgezet wordt via machinetaal naar binaire code: een code

Submodule: Hoe programmeer je een Arduino-bord? 16

Voeg in de programmacode commentaar toe om voor jezelf alles

duidelijk te maken. Druk daarna de code af en voeg ze toe aan je

bundel.

3.6.2 Doelstellingen

Wat moet je kennen?

De rol van een variabele in een programma

De gegevenstypes int en float

Het verschil tussen == en =

Wat moet je kunnen?

Een warmtesensor gebruiken in een schakeling

De functie analogRead() gebruiken

De invoerwaarde van de warmtesensor omzetten naar een temperatuur

Met een combinatie van if…else – structuren een meervoudige keuze realiseren

Seriële gegevens van het Arduino-bord op PC laten verschijnen

Page 18: Hoe programmeer je een Arduino-bord? · 2017-09-19 · ‘Compileren’ betekent dat de Arduino-code die je geschreven hebt, omgezet wordt via machinetaal naar binaire code: een code

Submodule: Hoe programmeer je een Arduino-bord? 17

4 Dimbare verliefdheidsmeter

4.1 Uitdaging Bouw een variant van de verliefdheidsmeter.

Deze keer gebruik je 2 LED’s: een blauwe en een rode. Bij een lage temperatuur

schijnt de blauwe LED heel sterk en de rode niet/nauwelijks. Naarmate de

temperatuur stijgt, versterkt het licht van de rode LED, terwijl dat van de blauwe

verzwakt.

4.2 Oriëntatie

Bouw een dimbare verliefdheidsmeter

Hoe kan je een analoog signaal versturen?

Hoe pas je PWM toe op je Arduino-bord?

4.3 Voorbereiding Voor je deze uitdaging kan aangaan, moet je meer weten over PWM, een term

uit de elektronica. Daarvoor moet je eerst in de Submodule Basis Elektronica een

nieuw stuk doornemen: 7.2 Actuatoren analoog aansturen.

4.4 Onderzoek / ontwerp

4.4.1 Schakeling bouwen

Vertrek van de schakeling die je in het vorige project hebt opgebouwd.

Controleer of de gebruikte uitvoer-pinnen geschikt zijn voor analoge uitvoer.

4.4.2 Programma schrijven

4.4.2.1 Analoge waarde uitvoeren

Zoek in de documentatie op hoe de functie analogWrite() werkt.

Welk bereik van waarden kan je uitvoeren met de functie analogWrite()?

Met welk bereik van waarden worden ingevoerd via de warmtesensor?

Bedenk een formule om dit te herrekenen naar het maximale

uitvoerbereik.

Page 19: Hoe programmeer je een Arduino-bord? · 2017-09-19 · ‘Compileren’ betekent dat de Arduino-code die je geschreven hebt, omgezet wordt via machinetaal naar binaire code: een code

Submodule: Hoe programmeer je een Arduino-bord? 18

4.4.2.2 Pinnen benoemen

Je kan de pinnen in je programma een naam geven. Op die manier zijn ze

makkelijker herkenbaar en voorkom je heel wat fouten.

Dat doe je op dezelfde manier als het werken met variabelen. Er is één groot

verschil: de waarde van de pin moet over het hele programma constant blijven.

In de documentatie vind je informatie terug over vooraf gedefinieerde

constanten, maar je moet vooral op zoek gaan naar het sleutelwoord ‘const’.

4.5 Testen / concluderen Voeg de analoge uitvoer zeker ook toe aan de uitvoer via de seriële monitor. Op

die manier kan je goed opvolgen wat er precies gebeurt.

4.6 Rapporteren

4.6.1 Persoonlijk verslag

Teken het schema van de schakeling

Voeg in de programmacode commentaar toe om voor jezelf alles

duidelijk te maken. Druk daarna de code af en voeg ze toe aan je

bundel.

4.6.2 Doelstellingen

Wat moet je kennen?

De begrippen analoge uitvoer, PWM

Wat moet je kunnen?

PWM toepassen in een elektronische schakeling

cConstanten gebruiken in een programma