NLT

FME Les 3: knop

In deze les ga je werken met een knop en een LEDje. In les 1 en 2 heb je al kennis gemaakt met het gebruik van Arduino in combinatie met het LEDje. Door de combinatie knop-led kun je het LEDje aan of uit zetten. Meestal stel je in dat als je de knop indrukt, het LEDje aangaat. Probeer het ook eens andersom!

_3_knop780

Les 3 is de eerste les met een knop. Je gaat ervoor zorgen dat het LEDje aangaat als je de knop indrukt. Als dat lukt, kun je het ook nog eens andersom proberen. Je begint met het nabouwen van het bovenstaande plaatje. Let erop dat de draadjes in het goede gaatje zitten en dat de knop goed vastzit.

In het schema is te zien dat het LEDje en de weerstand van 330 ohm in serie zijn geschakeld. Ook de knop heeft een weerstand (eentje van 10 K ohm). Dit is om te voorkomen dat de LED doorbrandt en om de knop te ‘beschermen’ van kapot gaan. Op de Arduino staat een spanning van 5,0 V. Dit is te veel voor het LEDje en de knop. De weerstanden zorgen ervoor dat er niks kapot gaat in de schakeling.

code knop

Je ziet hier aan de linkerkant de codes die de computer kan lezen. Aan de rechterkant, na de // tekens, staat al het commentaar wat de computer niet kan lezen, maar wel handig is voor jou.

int knop = 2
int led = 13
int toestandknop = 0

Hier weet het programma in welke cellen de knop, led en toegangsknop zitten.

Void setup() {
pinMode(led, OUTPUT) ;
pinMode(knop, INPUT) ;
}

Hier ziet het programma dat als je iets doet met de knop, de led daar een reactie op geeft, en niet andersom.

Void loop () {
toestandknop = digitalRead (knop);
if (toestandknop == HIGH) {
digitalRead(led, HIGH) ;
}
else {
digitalWrite (led, LOW);

Hier staat dat als de knop ingedrukt is (HIGH), dan is het LEDje aan (HIGH). Onder ‘else’ staat dat als de knop niet ingedrukt is, het LEDje uitstaat (LOW).

Dit gedeelte kan je veranderen. Bijvoorbeeld:  Als je wilt dat het lampje de hele tijd aanstaat, maar uitgaat op het moment dat je de knop indrukt moet je een paar aanpassingen maken. Neem de aanpassingen van hieronder over.

Void loop () {
toestandknop = digitalRead (knop);
if (toestandknop == HIGH) {
digitalRead(led, LOW) ;
}
else {
digitalWrite (led, HIGH);

Bij ‘ if (toestandknop == HIGH) { digitalRead(led, LOW) ‘ heb je ingesteld dat als de knop is ingedrukt, het lampje uitgaat. Bij ‘else {digitalWrite (led, HIGH);’ heb je nu ingesteld wat er gebeurt als de knop niet is ingedrukt, namelijk dat het LEDje dan aanstaat. * HIGH betekent dus aan en LOW betekent uit*

Dit zijn niet de enige twee dingen die je kunt instellen, er zijn nog twee andere opties.
Je kunt instellen dat het LEDje altijd aanstaat, ongeacht of het knopje is ingedrukt of niet. Je kunt dit ook precies andersom doen ( het LEDje staat ten alle tijden uit).

Als je het LEDje altijd aan wil hebben staan, neem dan de aanpassingen hieronder over.

Void loop () {
toestandknop = digitalRead (knop);
if (toestandknop == HIGH) {
digitalRead(led, HIGH) ;
}
else {
digitalWrite (led, HIGH);

Door alles op HIGH te zetten, heeft het LEDje altijd input. Hierdoor brandt het LEDje constant, ook als de knop uitstaat. Je kan ook de toestandknop op LOW zetten. Dan zegt de ‘else’-optie iets over als de toestandknop HIGH staat. Aangezien het LEDje bij beide aanstaat, kan je deze dus ook omkeren.

Als je wilt dat het lampje ten alle tijden uitstaat, neem dan de aanpassingen hieronder over.

Void loop () {
toestandknop = digitalRead (knop);
if (toestandknop == LOW) {
digitalRead(led, LOW) ;
}
else {
digitalWrite (led, LOW);

Doordat je alles op LOW zet, als de toestandsknop aan of uit is, gaat het lampje dus nooit aan. Ook bij deze geldt dat je de toestandsknop ook op HIGH kan zetten, met dezelfde reden als bij de optie dat het lampje altijd aanstaat.

Annebelle Antonis en Tess Geerts, A4

1 Comment

Leave a Reply