Arduinocursus Deel2 Gev Opdrachten

From Digimaken wiki

Revision as of 11:48, 23 June 2016 by Simon (talk | contribs)

2++.1, PWM

Sluit de LED aan op een van de PWM-pinnen van de Arduino (3, 5, 6, 9 of 10). Gebruik de functie analogWrite om de LED te laten faden: Laat de LED in een paar seconde geleidelijk aangaan en vervolgens weer deleidelijk uit.

2++.2, analogRead

a

Sluit de LDR-module aan op een van de analoge pinnen (A0-A3):

Arduinocursus img6.jpg

Lees de waarde van de LDR-module uit met de functie analogRead. Toon deze waarde op de serial monitor met behulp van de functie Serial.println Welke waarde krijg je als je de LDR afschermt met je hand? Welke waarde krijg je als je er een lampje op schijnt?

b

Sluit nu ook een LED aan op de Arduino. Zorg ervoor dat de LED gaat branden als het donker is en weer uitgaat als het licht is.

2++.3, digitalRead (met ruis)

a

Sluit de druknopmodule en een LED op de Arduino aan. We beginnen eenvoudig: Laat de LED aangaan als de drukknop is ingedrukt en uitgaan als de drukknop is losgelaten. (Dit is een herhaling van Opdracht 1.4b van vorige week.)

b

Maak een toggle-switch: Pas de sketch zo aan dat de LED aangaat als de drukknop wordt ingedrukt en vervolgens aanblijft zelfs als de schakelaar wordt losgelaten. Pas als de schakelaar nogmaals wordt ingedrukt gaat de LED weer uit.

Opmerking: Dit is lastiger dan het op het eerste gezicht lijkt. Er zijn twee problemen om rekening mee te houden:

1. Bij een naive implementatie gaat de LED gaat knipperen als je de knop ingedrukt houdt. Probeer dat te voorkomen.

2. Er zit ruis in het signaal. Volgens het model dat we tot nu toe hebben gebruikt meet je een hoog voltage (5V) als de drukknop niet is ingedrukt en zodra de drukknop wordt ingedrukt gaat het voltage naar 0V. Bij deze overgang wil je de LED toggelen. In werkelijkheid is die overgang niet zo mooi. Als je een drukknop indrukt dendert het contact een beetje na. Dat wil zeggen het voltage gaat na het indrukken van de knop een aantal keer op en neer van 0V naar 5V voor het uiteindelijk stabiel op 0V blijft staan. Zie onderstaande plaatjes:

Ideaal model drukknop:

Drukknop ideaal.png

Werkelijkheid:

Drukknop dendering.png

Dit effect wordt denderen (of bouncing) genoemt. Het denderen kan ervoor zorgen dat de LED heel snel achter elkaar uit en aan gaat. Dit gaat zo snel dat je het niet ziet. Maar, als je er geen rekening mee houdt in je programma, dan kan de schakeling heel onvoorspelbaar gedrag gaan vertonen.

Het is dus belangrijk om ervoor te zorgen dat je sketch hier goed mee omgaat.

(Hint: De sampling rate---het aantal keer per seconde dat je de toestand van de drukknop uitleest---speelt een grote rol.)