student-addendum bij: Leren programmeren, meten en sturen ... · • Let op: er mag GEEN verbinding...

16
A R D U I N O student-addendum bij: Leren programmeren, meten en sturen met de Arduino 1 e druk INHOUD Errata Aanwijzigen en tips (inclusief errata) Basisset en aanvullingsset

Transcript of student-addendum bij: Leren programmeren, meten en sturen ... · • Let op: er mag GEEN verbinding...

Page 1: student-addendum bij: Leren programmeren, meten en sturen ... · • Let op: er mag GEEN verbinding zijn tussen de +5V pin van de Arduino en de +9V op het breadboard. • Let op:

A R D U I N O

student-addendum bij: Leren programmeren, meten en sturen met de Arduino 1e druk INHOUD Errata Aanwijzigen en tips (inclusief errata) Basisset en aanvullingsset

Page 2: student-addendum bij: Leren programmeren, meten en sturen ... · • Let op: er mag GEEN verbinding zijn tussen de +5V pin van de Arduino en de +9V op het breadboard. • Let op:

2

Errata - eerste druk

• CORRECTIE pagina 17, regel 13. Wijzig D1..D13 in D0..D13. • CORRECTIE pagina 30, regel 5. Wijzig D9 in D8. • CORRECTIE pagina 35, eerste item onder ACTIE. Als gebruik wordt gemaakt van de Basisset van Brinkman

Uitgeverij hoeven de pinnen van de drukknopschakelaars niet te worden rechtgebogen. Daarmee vervalt de opmerking 'Mochten de vier….het breadboard'.

• CORRECTIE pagina 83, regel 12. Wijzig 'tien verbindingen te maken; vijf pinnen' in 'twaalf verbindingen te maken; vier pinnen'

• CORRECTIE pagina 100, regel 13. Wijzig 'dus mag je de module' in 'dus mag je pin S van de module' • CORRECTIE pagina 105, regel 12. Wijzig pin 7 in pin 9. • CORRECTIE pagina 106, oefening 11.6.2, regel 2. Wijzig 'paragraaf 10.3' in 'afbeelding 11.7'. • CORRECTIE pagina 106, oefening 11.6.3. Wijzig tweemaal 'D8' in 'D11'. • CORRECTIE gehele paragraaf 12.2 (ook in afbeelding en sketch). Wijzig pin D7 in pin D11. • CORRECTIE pagina 114, onder kopje ACTIE, regel 7. Wijzig 'Arduino-board' in 'breadboard'. • CORRECTIE pag. 120, halverwege. Wijzig 'De 28BYJ-48 is…0,7 graad' in:

De 28BYJ-48 is een unipolaire stappenmotor met 2 x 2 spoelen. De spoelen worden aangestuurd zoals in afbeelding 12.13, waardoor de stappenmotor in vier stappen 45° draait. Een 360o omwenteling vergt dus 32 stappen. Op de motoras zit een intern tandwielensysteem dat de verdraaiing met een factor van ca. 128 vertraagt, dus om de externe as éénmaal rond te draaien zijn 32*128=4096 stappen nodig. Anders gezegd: per stap draait de externe as 360/4096= 0,087 graad.

• CORRECTIE pag. 121, bijschrift bij de afbeelding. Toevoegen: Bij toepassing van een 5 volt stappenmotor vervallen de 12V accu en zekering.

• CORRECTIE pagina 25, vierde én vijfde regel van onderen. Wijzig 'drie omwentelingen' in 'één omwenteling van 0 tot circa 180 graden'.

• CORRECTIE: pagina 132, afbeelding 13.3, regel 6. Wijzig: 434,65,1023 in 435,65,1023 • CORRECTIE: pagina 132, afbeelding 13.3, regel 9. Wijzig: 64 in 66 • CORRECTIE: pagina 159, regel 3-5. Wijzig 'A0 van de … zit ook een pin D0' in 'OUT' • CORRECTIE: pagina 186, regel 1 wordt:

Oplossing – Gebruik je een krachtige externe voeding zoals een accu, neem dan altijd… • CORRECTIE: pagina 201, bovenaan: Wijzig tweemaal 'hoofdstuk 11' in 'hoofdstuk 10'.

addendum bij eerste druk van Leren programmeren, meten en sturen met de Arduino

Page 3: student-addendum bij: Leren programmeren, meten en sturen ... · • Let op: er mag GEEN verbinding zijn tussen de +5V pin van de Arduino en de +9V op het breadboard. • Let op:

3

Aanwijzingen en tips (inclusief errata) Gebruik van 9 volt blokbatterij Bij gebruik van een 9 volt blokbatterij zorgt de spanningsregelaar op de Arduino ervoor dat de 9 volt wordt omgezet in 5 volt. De 9 volt is ook beschikbaar, en wel op pin Vin. Dit is dus een +9V-uitgang! In veel schakelingen is zowel +5V als +9V nodig. Gebruik in dat geval de rechtervoedingstrip van het breadboard voor +5V en de linker voor +9V, zie afbeelding. GND is voor beiden identiek.

• Let op: er mag GEEN verbinding zijn tussen de +5V pin van de Arduino en de +9V op het breadboard. • Let op: de 9V-batterij én de USB-kabel MOGEN GELIJKTIJDIG op de Arduino aangesloten zijn. • Bij gebruik van een 9V-batterij mag de zekering worden weggelaten.

Afbeelding 2.5 - Aansluiting 9V-blokbatterij op Arduino en breadboard. De voedingsstrip rechtsboven is via de rode draad verbonden met +5V, de andere voedingsstrip is via de oranje draad verbonden met +9V (pin Vin). 3.6.4 Oefening – Knight Rider CORRECTIE pagina 30, regel 5. Wijzig D9 in D8. 4.6 LED in- en uitschakelen CORRECTIE pagina 35, eerste item onder ACTIE. Steek de drukknopschakelaar stevig in het breadboard, zodat de vier pinnen zo diep mogelijk in het breadboard zitten. De verende werking van het breadboard heeft namelijk de neiging om de pinnen van de schakelaar terug omhoog te duwen. Het is dan niet nodig om de pinnen van de schakelaar recht te buigen. 4.7.2 Oefening – Looplicht van acht LEDs op schakelaar Enkele tips:

• Sluit de drukknop aan op pin D10 met een pull-down-weerstand naar GND. • Gebruik en combineer de scripts van oefeningen 3.6.4 en 4.6.1. • Kopieer en plak de Knight-Rider stappen vijfmaal.

5.5 LDR-spanningsregelaar

addendum bij eerste druk van Leren programmeren, meten en sturen met de Arduino

Page 4: student-addendum bij: Leren programmeren, meten en sturen ... · • Let op: er mag GEEN verbinding zijn tussen de +5V pin van de Arduino en de +9V op het breadboard. • Let op:

4

De waarde van variabele 'sensorValue' varieert van circa 100 (donker) tot meer dan circa 1000 (licht). 5.6.1 Oefening - Automatische verlichting Enkele tips:

• Gebruik de regel: if (sensorValue >= 1000) • Experimenteer met de waarde in het if-statement. Begin met '1000' en verhoog en verlaag deze waarde om de

gevoeligheid van de sensor in te stellen. 6.4.1 Oefening – Aftellende klok Enkele tips:

• Ga uit van de sketch van voorbeeld 6.3. Verander in de sketch: - de weergaveregels voor de seriële monitor - de weer te geven tijd en let daarbij op de haakjes: ((60000-millis())/1000 )

• Voeg een if-voorwaarde toe die checkt of nul al bereikt is. 7.7.1 Oefening – Lumenmeter met LDR Enkele tips:

• De spanningsdeler bestaat uit: - LDR tussen pin A5 en +5V - weerstand van 20k of 22k tussen pin A5 en GND

• De meetwaarde schommelt afhankelijk van lichtinval tussen - circa 100 (donker) = >500 kiloOhm = 0,01 FTC = 0,1 Lumen - circa 1000 (licht) = <0,1 kiloOhm = 100 FTC = 1076 Lumen

7.7.2 Oefening – Lumenmeter met LDR en volgnummer Enkele tips:

• Voor het volgnummer van de meting wordt een integervariabele gedefinieerd. • In de 'void loop' wordt het volgnummer na elke weergave op de Seriële monitor met 1 opgehoogd.

8.1 DHT11 Sensor DHT11 wordt geleverd in een 3- en 4-pins uitvoering. De 4-pins uitvoering moet altijd worden gebruikt in combinatie met een pull-up weerstand van 10 kiloOhm. De vierde pin op de 4-pins uitvoering is loos (Not Connected)

Afbeelding 8.1b – DHT11 in 3-pins en 4-pins uitvoering. Gebruik bij de 4-pins uitvoering altijd een pull-up weerstand van 10 kiloOhm tussen +5V en Digital Out (tekening gemaakt met Fritzi). 10.2 LCD-displays met 16 pinnen CORRECTIE pagina 83, regel 12. Wijzig 'tien verbindingen te maken; vijf pinnen' in 'twaalf verbindingen te maken; vier pinnen' Enkele tips: zie voor het juiste gebruik van de displays de inleiding van dit document.

addendum bij eerste druk van Leren programmeren, meten en sturen met de Arduino

Page 5: student-addendum bij: Leren programmeren, meten en sturen ... · • Let op: er mag GEEN verbinding zijn tussen de +5V pin van de Arduino en de +9V op het breadboard. • Let op:

5

10.4.2 Tekst op display tonen via I2C-interface Onder het kopje 'ACTIE' is sprake van de bibliotheek LiquidCrystal_I2C van H. Mario (vierde bullet). Deze bibliotheek en daarmee ook de sketch op pagina 92 zijn inmiddels achterhaald en werken niet goed met de nieuwste versie van de Arduino software. Vervang de inhoud van de vierde bullet door:

• Voor communicatie met de I2C module moet je de custom bibliotheek LiquidCrystal_I2C installeren. Onder deze naam circuleren vele bibliotheken maar de beste is die van FMALPARTIDA. Je vindt hem hier:

https://bitbucket.org/fmalpartida/new-liquidcrystal/downloads/

• Kies voor 'Download repository' en download hem naar je Downloads-map. • Voordat je de nieuwe bibliotheek installeert ruim je eerst eventuele (foute) I2C bibliotheken op. Doe dat als volgt:

kies in Arduino software voor Schets > Bibliotheek gebruiken > Bibliotheken beheren > zoek op 'Liquid' en noteer de namen. Sluit de Arduino software en start Windows Verkenner. Open de map Deze PC > Documenten (My documents) > Arduino > Libraries en verwijder de gevonden bibliotheken.

• Start Arduino en check opnieuw in Bibliothekenbeheer of de I2C bibliotheken weg zijn. • Kies nu Schets > Bibliotheek gebruiken > .ZIP Bibliotheek toevoegen. Je ziet nu het venster Selecteer het

zipbestand…. • Blader naar de Downloads map en klik op fmalpartida.zip. Daarmee sluit het venster Selecteer het zipbestand…. • Wacht tot de Arduino software de melding geeft 'Bibliotheek is geïnstalleerd'. • Ga nu verder op pagina 92:

- Gebruik niet de sketch van pag. 92, maar Sketch_10_4_2_Tekst_op_LCD_via_I2C. - Probeer bij het zoeken naar het I2C interface-adres als eerste: 0X27 of 0X3F.

• Let op: zie je niets op het display, stel dan het contrast bij (blauwe potmeter op I2C interface) 11.3 Relais schakelen met transistor CORRECTIE pagina 100, regel 13. Wijzig 'dus mag je de module' in 'dus mag je pin S van de module' Enkele tips:

• Zoals het relais in afbeelding 11.9 is geschakeld, wordt het gevoed vanuit de 9..12 volt spanningsbron. Het relais moet derhalve geschikt zijn voor 9 tot 12 volt. Een relaismodule heeft drie pinnen en wordt vanuit de Arduino gevoed met 5 volt via de rode draad in afbeelding 11.9b. De Arduino zelf wordt gevoed door middel van de externe spanningsbron (gele draad), of via USB. Binnen het blauwe kader zie je de samenstelling van de relaismodule.

addendum bij eerste druk van Leren programmeren, meten en sturen met de Arduino

Page 6: student-addendum bij: Leren programmeren, meten en sturen ... · • Let op: er mag GEEN verbinding zijn tussen de +5V pin van de Arduino en de +9V op het breadboard. • Let op:

6

Afbeelding 11.9b – De lamp wordt geschakeld door een relaismodule (blauw omkaderd). De schakelcontacten zijn beschikbaar via de schroefaansluitingen. 11.5 PWM TOEVOEGING pagina 103, onder regel 5: De pinnen van de Arduino UNO-R3 die geschikt zijn voor PWM pinnen zijn gemerkt met het ~-teken. Dit zijn D3, D5, D6, D9, D10 en D11 (zie afbeelding). De pinnen van de Arduino-MEGA-2560-R3 die geschikt zijn voor PWM zijn niet herkenbaar. De PWM-Pinnen zijn D3 tot en met D13 en D44 tot en met D46.

Afbeelding 11.13b – PWM is op de Arduino UNO-R3 uitsluitend beschikbaar op de met ~ gemerkte pinnen D3, D5, D6, D9, D10 en D11.

addendum bij eerste druk van Leren programmeren, meten en sturen met de Arduino

Page 7: student-addendum bij: Leren programmeren, meten en sturen ... · • Let op: er mag GEEN verbinding zijn tussen de +5V pin van de Arduino en de +9V op het breadboard. • Let op:

7

11.5.2 Duty Cycle van PWM regelen met potentiometer CORRECTIE pagina 105, regel 12. Wijzig pin 7 in pin 9. 11.6.1 Oefening – LED-dimmer Enkele tips:

• Ga uit van de sketch van oefening 11.5.2. • Experimenteer met de duty cycle waarden.

11.6.2 Oefening – Lichtdimmer CORRECTIE pagina 106, oefening 11.6.2, tweede regel. Wijzig 'paragraaf 10.3' in 'afbeelding 11.7'. Enkele tips:

• Deze oefening is een variant op 11.6.1. • Ga uit van de sketch van oefening 11.5.2.

11.6.3 Oefening – Lichtdimmer in balans CORRECTIE pagina 106, oefening 11.6.3. Wijzig tweemaal 'D8' in 'D11'. Enkele tips:

• Ga uit van Sketch_11_5_AnalogInOut PWM • Input is hier: potentiometer op A0 uitlezen • Output is hier: een PWM-signaal op D9 en D11 (DUS NIET D8)

addendum bij eerste druk van Leren programmeren, meten en sturen met de Arduino

Page 8: student-addendum bij: Leren programmeren, meten en sturen ... · • Let op: er mag GEEN verbinding zijn tussen de +5V pin van de Arduino en de +9V op het breadboard. • Let op:

8

12.2 Elektromotor schakelen en regelen met FET CORRECTIE gehele paragraaf 12.2 (ook in afbeelding en sketch). Wijzig pin D7 in pin D11. Enkele tips:

• De aansluitingen van de FET zijn te vinden in appendix A2.3. • Een 12V ventilator draait prima op 9 volt. Indien geen externe 12V voeding aanwezig is, mag dus ook een 9V

blokbatterij worden gebruikt. In dat geval is geen zekering nodig. Zie de instructie over het gebruik van de 9V batterij eerder in dit document.

• Op de afbeelding is te zien dat het breadboard via de rode draad wordt gevoed met +5V (rechts) voor de potentiometer en via de oranje draad met +9V (links) voor de motor.

• Om vanuit stilstand in beweging te komen heeft de motor een bepaalde gemiddelde voedingspanning nodig. Hij draait dan met een vrij hoog toerental. Als hij eenmaal draait kan de voedingspanning verlaagd worden om dit toerental te verlagen.

Afbeelding 12.5b - Als afbeelding 12.5 in het boek, maar nu met 9V batterij en Arduino R3.jpg. De oranje draad vanaf pin Vin zorgt voor 9 volt op het breadboard.

addendum bij eerste druk van Leren programmeren, meten en sturen met de Arduino

Page 9: student-addendum bij: Leren programmeren, meten en sturen ... · • Let op: er mag GEEN verbinding zijn tussen de +5V pin van de Arduino en de +9V op het breadboard. • Let op:

9

12.3.2 Servomotor aansturen met Arduino CORRECTIE pagina 114, onder kopje ACTIE, regel 7. Wijzig 'Arduino-board' in 'breadboard'. Enkele tips:

• De servomotor heeft een drie-aderige draad met female-connector. Knip deze niet af, maar steek drie draadjes in de female-connector om hem aan te sluiten op het breadboard.

• Voor de servomotor is geen blusdiode nodig. • De verdraaiing van de servomotor is in theorie regelbaar van 0 tot 180 graden, in de praktijk komt dat neer op 0

tot 170 graden (zie ook pagina 112 van het boek).

Afbeelding 12.9b - Servomotor aansturen met Arduino 12.4.3 Stappenmotor aansturen met Arduino CORRECTIE pag. 120, halverwege. Wijzig 'De 28BYJ-48 is…0,7 graad' in: De 28BYJ-48 is een unipolaire stappenmotor met 2 x 2 spoelen. De spoelen worden aangestuurd zoals in afbeelding 12.13, waardoor de stappenmotor in vier stappen 45° draait. Een 360o omwenteling vergt dus 32 stappen. Op de motoras zit een intern tandwielensysteem dat de verdraaiing met een factor van ca. 128 vertraagt, dus om de externe as éénmaal rond te draaien zijn 32*128=4096 stappen nodig. Anders gezegd: per stap draait de externe as 360/4096= 0,087 graad. CORRECTIE pag. 121, bijschrift bij de afbeelding. Toevoegen: Bij toepassing van een 5 volt stappenmotor vervallen de 12V accu en zekering en gaat de rode draad van de stepper driver naar de rode draad op de +5V pin van de Arduino.

addendum bij eerste druk van Leren programmeren, meten en sturen met de Arduino

Page 10: student-addendum bij: Leren programmeren, meten en sturen ... · • Let op: er mag GEEN verbinding zijn tussen de +5V pin van de Arduino en de +9V op het breadboard. • Let op:

10

12.5.1 Ventilator regelen met een DHT11 CORRECTIE pagina 25, vierde én vijfde regel van onderen. Wijzig 'drie omwentelingen' in 'één omwenteling van 0 tot circa 180 graden'. 12.5.3 Oefening – Stuurinrichting met stappenmotor Enkele tips:

• Ga uit van Sketch_12_4 en het schema van afbeelding 12.20 en pas deze aan. • De drukknopschakelaar voor het omkeren van de draairichting vervalt. • De potentiometer dient nu niet voor snelheidsregeling, maar voor positieregeling.

13.1 Data loggen TOEVOEGING onder aan pagina 127:

Let op: Afbeelding 13.1 toont links een SD card shield. Vaker toegepast wordt de W5100 shield, omdat die behalve een SD card slot ook een Ethernet-aansluiting heeft voor internet- en netwerkverbinding. De W5100 shield is te zien in afbeelding 14.6 en zit o.a. in de Arduino Aanvullingsset. In deze set zit geen losse SD card shield.

13.2.1 Oefening – Relatie temperatuur en licht CORRECTIE: pagina 132, afbeelding 13.3, regel 6. Wijzig: 434,65,1023 in 435,65,1023 CORRECTIE: pagina 132, afbeelding 13.3, regel 9. Wijzig: 64 in 66 Enkele tips:

• Het verwerken van DATALOG.TXT in Excel gaat als volgt: start in Excel met een blanco werkblad en kies Gegevens > Van tekst. Hiermee start je de wizard 'Tekst importeren'. Kies in stap 1 voor 'Gescheiden', in stap 2 voor 'Komma' en in stap 3 voor 'Standaard'. Kies als startpunt cel A2. Noteer in cel A1 en B1 de kolomtitels 'Temp' en 'Licht'.

• Maak de grafiek als volgt: selecteer de kolommen A en B. Kies Invoegen > in de sectie Grafieken klik je op Lijn. • SD Card probleem 1 - Als de SD Card niet in het slot blijft zitten maar steeds terugveert, zet hem dan vast met een

elastiekje om het shield. Wordt de SD Card niet herkend dan volgt een foutmelding zoals 'Kaartfout' of 'SD Card not recognized'. Hier zijn drie oorzaken voor: o Een fout van de Arduino, die op veel internetforums wordt besproken. Deze fout is bekend en wordt in

deze sketch al omzeild (regels 15 en 29-32), dus daar ligt het niet aan. o Een ongeschikte SD Card. Gebruik bij voorkeur een 16GB SD Card van het merk Sandisk en zorg dat deze

is formatteerd volgens het FAT32 bestandssysteem (check op een Windows computer met Windows Verkenner: rechtsklik op de driveletter en kies Eigenschappen ). Een kaart die net uit de verpakking komt is doorgaans al FAT32 geformatteerd en hoeft in principe niet geformatteerd te worden.

o Defecte hardware. Probeer een ander shield en een andere SD Card. 14.2.1 Zenden op 433 MHz Enkele tips bij pagina 138, boven de lijn van APC220: > char msg[1] = {LM35Value / 2};

De message is een getal tussen 0 en 255. Vaak betekent dit dat sensorwaardes moeten worden aangepast; hier wordt de te verzenden sensorwaarde van de LM35 door 2 gedeeld. Deze functie maakt één bericht of message. Moeten er meer sensorwaardes worden verzonden, bijvoorbeeld vier, dan wordt het getal [1] achter msg gewijzigd in [4]. De sensorwaardes worden achter elkaar genoteerd, gescheiden door komma's; ook regel 28 vergt een aanpassing:

char msg[4] = {LM35waarde / 2, sensorValue2, sensorValue3, sensorValue4}; vw_send((uint8_t *)msg, 4); 14.2.2 Ontvangen op 433 MHz Enkele tips bij pagina 141, boven het kopje van 14.2.3: > lcd.print(buf[i], DEC)

Is een bericht verzonden met meerdere sensorwaardes, bijvoorbeeld vier, dan verandert de functie lcd.print(buf[i], DEC). Om de vier waardes uit te lezen wordt i vervangen door een indexwaarde tussen 0 en 3:

lcd.print(buf[0], DEC); // voor eerste sensorwaarde lcd.print(buf[1], DEC); // voor tweede sensorwaarde

addendum bij eerste druk van Leren programmeren, meten en sturen met de Arduino

Page 11: student-addendum bij: Leren programmeren, meten en sturen ... · • Let op: er mag GEEN verbinding zijn tussen de +5V pin van de Arduino en de +9V op het breadboard. • Let op:

11

lcd.print(buf[2], DEC); // voor derde sensorwaarde lcd.print(buf[3], DEC); // voor vierde sensorwaarde

14.3.1 Ethernet Shield W5100 Enkele tips:

• Check de lange pinnen aan de W5100. Soldeer eventueel losgeraakte pinnen opnieuw vast. • Voorkom dat de soldeerpunten aan de onderkant van het shield de USB-connector raken. Plak daartoe een paar

stukjes plakband op de USB connector. • Zorg dat je de netwerkkabel vanaf de W5100 verbindt met een oud (!) type router. • Als het IP-adres 192.168.176.1 niet wil werken, probeer dan een ander, bijvoorbeeld 192.168.2.45.

addendum bij eerste druk van Leren programmeren, meten en sturen met de Arduino

Page 12: student-addendum bij: Leren programmeren, meten en sturen ... · • Let op: er mag GEEN verbinding zijn tussen de +5V pin van de Arduino en de +9V op het breadboard. • Let op:

12

14.4.2 Licht schakelen met smartphone Enkele tips:

• De Bluetooth module HC-06 mag zonder spanningsdeler met +5V worden gevoed. Hij hoeft dus NIET op 3,3V worden aangesloten.

• De Bluetooth-module heeft vier of zes pinnen:

pin-naam betekenis STATE NIET VERBINDEN (status-indicatie) RXD Ontvangstsignaal, verbinden met D0 TXD Zendsignaal, verbinden met D2 GND GND VCC 5 volt voedingsspanning EN NIET VERBINDEN (AT enable-pin)

Afbeelding 14.11b - Toepassing en aansluitingen Bluetooth-module 14.5.2 Oefening - Analoge regeling via Bluetooth Let op: deze opdracht is sterk afhankelijk van de beschikbaarheid van een (gratis) smartphone-app, die zowel bluetooth als een pwm-regeling ondersteunt. Heb je een Android smartphone dan kun je deze opdracht goed uitvoeren, want er zijn verschillende apps te vinden (zie o.a. ArduDroid op pagina 154 van het boek). Voor iOS en Windows daarentegen zijn er nauwelijks geschikte apps. De apps die er zijn beperken zich doorgaans tot aan/uit-functies. Maar… er komen voortdurend nieuwe apps bij, dus mogelijk zijn er inmiddels wel geschikte apps! 14.5.3 Oefening – Arduino webserver met beeld Enkele tips:

• Zie de tips hierboven bij '14.3.1 Ethernet Shield W5100' • Vervang de for-next loop in regel 66..72 door een reeks nieuwe regels, zoals

66 // Lees sensor 1 (LM35) 67 int sensorReading = analogRead(1); 68 client.print("Temperatuur is ") 69 client.print(sensorReading/10); 70 client.print(" graden Celcius"); 66 // Lees sensor 2 ….

addendum bij eerste druk van Leren programmeren, meten en sturen met de Arduino

Page 13: student-addendum bij: Leren programmeren, meten en sturen ... · • Let op: er mag GEEN verbinding zijn tussen de +5V pin van de Arduino en de +9V op het breadboard. • Let op:

13

15.1 Ultrasone afstandsmeter Bijschrift bij afbeelding: De afgebeelde HC-SR04 ultrasone module heeft twee identieke componenten: de linker is een zender, de rechter een ontvanger. Verder heeft de module o.a. ECHO en TRIGGER pinnen. Als je 5 volt op de TRIGGER pin zet, stuurt de zender een ultrasoon signaal. Zodra de ontvanger het teruggekaatste signaal ontvangt, staat er 5 volt op de ECHO pin. 15.2 Geluidssensor De microfoon-component is een aluminiumkleurige cilinder van ca. 8mm diameter met twee draadjes. Hij zet hoorbaar geluid om in een elektrisch signaal. Dit signaal kan op twee manieren worden verwerkt:

• Digitaal, dus 0 of 5 volt. Pin OUT op de digitale module is normaliter LOW (0 volt), maar wordt HIGH (5 volt) bij het overschrijden van een bepaald geluidsniveau. Dit niveau is instelbaar met de blauwe instelpotentiometer op de module.

• Analoog, dus 0 of 5 volt en alle spanningsvariaties daartussen. Echter, het signaal van een microfoon-component is enkele millivolts en moet dus versterkt worden voordat je het aan pin A0 van de Arduino kunt aanbieden. Dat doet de afgebeelde voorversterker. De transistor zorgt voor de signaalversterking. De twee condensatoren van 100 nF (nanoFarad) laten alleen spanningsvariaties of 'wisselspanning' door. Anders gezegd: de 5 volt voedingsspanning (of gelijkspanning) wordt door de condensatoren geblokkeerd, de versterkte spanningsvariaties van het geluidsignaal gaan er wel doorheen.

Afbeelding 15.2 – Links de microfoon-component, in het midden de 3-pins digitale module met microfoon en blauwe instelpotentiometer voor digitale toepassingen, rechts de voorversterkerschakeling voor analoge toepassingen.

addendum bij eerste druk van Leren programmeren, meten en sturen met de Arduino

Page 14: student-addendum bij: Leren programmeren, meten en sturen ... · • Let op: er mag GEEN verbinding zijn tussen de +5V pin van de Arduino en de +9V op het breadboard. • Let op:

14

15.8.2 Oefening VU-meter Heb je de Arduino Aanvullingsset (zie pagina 202), dan vind je daarin een digitale geluidssensor en een microfooncomponent. In deze oefening maak je gebruik van de analoge microfoon-component.

• Het signaal van elke microfoon is vrij zwak en moet voorversterkt worden voordat je het aan pin A0 van de Arduino kunt aanbieden. Dat doe je door middel van de schakeling van afbeelding 15.2 in dit document. De transistor zorgt voor de signaalversterking. TIP: De twee draden van een keramische condensator (gemerkt '104') zijn gelijk, het maakt dus niet uit hoe je de draden aansluit.

• De microfoon heeft een plus- en min-draad. De min-draad is herkenbaar, omdat hij via een of meer printbanen is verbonden met de metalen behuizing van de microfoon (GND).

• Gebruik voor de VU-meter acht LEDs (bijvoorbeeld 3 groene, 3 gele en 2 rode). Verbind de anode met de poorten D2..D10.

• Verbind elke kathode via een 150 Ohm weerstand met GND. • Maak de sketch. Lees het geluidsniveau op poort A0 in via

geluid = analogRead(ingang) • De variabele geluid heeft een waarde tussen 0 en 1023. Afhankelijk van de gewenste gevoeligheid van de

microfoon deel je dat door 50, 100 of 150. Die waarde gebruik je in IF-statements om een LED wel of niet te laten oplichten. Bijvoorbeeld de LED op D3:

if (geluid <= 20.5 ) { // 3 * 1023/150 = 20.5

digitalWrite(3, LOW); } else { digitalWrite(3, HIGH); } }

Afbeelding 15.13 – Min-draad van microfoon-component is verbonden met de aluminium behuizing

Afbeelding 15.12 – Schakeling van de VU-meter. Links de versterker met (tussen de blauwe draden) de microfoon. 15.8.3 Oefening Weerstation voltooien Toevoegen: pagina 164, onderaan tekst: Gebruik je voor het weerstation een 433 MHz ontvanger/zender dan beperkt de 8-bits data-overdracht de nauwkeurigheid van de sensorwaardes. Je kunt immers alleen waardes tussen 0 en 255 versturen en ontvangen. Wil je een hogere nauwkeurigheid - bijvoorbeeld temperatuur en vochtigheid met een decimaal cijfer achter de komma – pas dan een APC 220 of NRF24L01 zender-/ontvangerset of 'transceiver' toe. Appendix 1.2 – Hardware CORRECTIE: pagina 186, regel 1 wordt: Oplossing – Gebruik je een krachtige externe voeding zoals een accu, neem dan altijd…

addendum bij eerste druk van Leren programmeren, meten en sturen met de Arduino

Page 15: student-addendum bij: Leren programmeren, meten en sturen ... · • Let op: er mag GEEN verbinding zijn tussen de +5V pin van de Arduino en de +9V op het breadboard. • Let op:

15

Basisset en aanvullingsset Basisset opmerkingen

• Een 12V ventilator werkt ook op 9 volt. • De ventilator heeft twee draden: rood (plus) en zwart (min). Een eventuele derde (gele) draad mag je negeren. • De koperen uiteinden van de ventilatordraden passen direct in het breadboard. Als dit niet lukt, prik dan eerst

even met een stekkertje in het gaatje; daarna gaat het draadje er gemakkelijker in. • De DHT11 sensor is er in een 3- en 4-pins uitvoering. Pas bij gebruik van een DHT11 met vier pinnen altijd een

pull-up weerstand van 10 kOhm toe. • Een 9 volt batterij is niet inbegrepen in de basisset, die moet je apart aanschaffen. • Een 12 volt accu is niet inbegrepen. Voor alle oefeningen volstaat de USB-voeding en/of een 9 volt blokbatterij. • Een zekering is niet inbegrepen en is ook niet nodig bij gebruik van USB-voeding of 9 volt blokbatterij.

• Let op: trek draden los door ze aan het stekkertje omhoog te trekken. Trek NOOIT aan de draad zelf.

Aanvullingsset opmerkingen Extra onderdelen in Aanvullingsset Extra componenten in deze aanvullingsset (deze staan niet vermeld op pagina 202 van het boek):

• 1x male-female snoer o.a. voor stappenmotor • 2x 20-pins female headers foor displays • 1x 16 pins male-male header voor displays • 1x zelfklevende isolatiebud voor Ethernet shield W5100 • 1x microfoon in aluminium cilinderbehuizing • 2x condensator 100nF (bruin, opschrift 104)

Voorbereiding W5100 Ethernet shield Bij het plaatsen van het shield op de Arduino, bestaat de kans dat de pinnen van de Ethernet-connector in aanraking komen met de USB-connector op de Arduino-print. Voorkom dit door een zelfklevende isolatiebud op de USB-connector te plakken.

addendum bij eerste druk van Leren programmeren, meten en sturen met de Arduino

Page 16: student-addendum bij: Leren programmeren, meten en sturen ... · • Let op: er mag GEEN verbinding zijn tussen de +5V pin van de Arduino en de +9V op het breadboard. • Let op:

16

Afbeelding 14.6b – Isolatiebud voorkomt contact tussen Ethernet-connector en USB-connector.

Voorbereiding barometersensor Soldeer de 4-pins connector op de print. Voorbereiding displays Om alle oefeningen met de displays te kunnen uitvoeren, doe je het volgende: • Neem de 20-pins female header. • Zaag of knip de een female connectorstrip op maat (20 gaatjes worden 16 gaatjes). TIP: de handigste manier is om

dwars door gaatje nummer 17 te zagen of te knippen. • Steek de ingekorte female connectorstrip in de onderzijde van het LCD-display. • Soldeer de female connectorstrip vast aan de 16 vergulde soldeervlakken op de bovenzijde van het display. • Herhaal deze stappen voor het andere LCD-display. • Eenmaal gereed heb je nu de keuze:

• 16-pins gebruik: verbind het display met het experimenteerboard m.b.v. 12 draadjes of een 16-pins male-male connectorstrip (zie afbeelding 10.2 en 10.4).

• 4-pins gebruik: steek de I2C interface op de connectorstrip van het display (zie afbeelding 10.9). -1-

Afbeelding 10.1b – Soldeer de female connectorstrip (met 16 gaatjes) aan onderzijde van elk display.

LINKS: Afbeelding 10.1c - Male-male connectorstrip voor 16-pins toepassing van de displays. RECHTS: Afbeelding 10.09 – I2C interface op achterzijde van het display voor 4-pins toepassing.

addendum bij eerste druk van Leren programmeren, meten en sturen met de Arduino