Arduinocursus Deel2 Gev Opdrachten: Difference between revisions

From Digimaken Wiki

Simon (talk | contribs)
No edit summary
Simon (talk | contribs)
No edit summary
Line 30: Line 30:


Opmerking: Dit is lastiger dan het op het eerste gezicht lijkt. Er zijn twee problemen om rekening mee te houden:
Opmerking: Dit is lastiger dan het op het eerste gezicht lijkt. Er zijn twee problemen om rekening mee te houden:
*Bij een naive implementatie gaat de LED gaat knipperen als je de knop ingedrukt houdt. Probeer dat te voorkomen.
 
*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:
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:
Ideaal model drukknop:
Line 40: Line 42:


[[File:Drukknop_dendering.png|400px]]
[[File:Drukknop_dendering.png|400px]]
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.

Revision as of 09:45, 23 June 2016

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):

Error creating thumbnail: File missing

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:

Error creating thumbnail: File missing

Werkelijkheid:

Error creating thumbnail: File missing

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.