NLT

FME les 4: Of En Functie

De EN-OF functie

Dit is les 4, en het doel van de les is om door middel van op 1 of op alle 2 de knoppen te drukken je het lichtje laat branden. Hiervoor moet je eerst het schema hierboven namaken. Door dit schema te bouwen staat er op de onderste rij 0V en op de 2 de rij van onder +5V. De LED is aangesloten op pin 13. De drukknopjes zijn aangesloten op pin 3 en op pin 2. De weerstand van 330 ohm en de LED staan in serie geschakeld, en de weerstand is er om de spanning die over de LED staat te beperken. Als je de LED zonder weerstand zou aansluiten staat er dus +5V overheen, en dan is de kans groot dat ie stuk gaat. Door een weerstand aan te sluiten wordt de totale spanning van 5V verdeeld over de LED en de weerstand . Zo krijgt de LED de juiste spanning. De druk knopjes hebben ook een weerstand in serie met elkaar geschakeld zodat er daar ook niet teveel spanning doorheen loopt.

De Code.

/*

Of_functie

Soms wil je met meerdere knoppen één actie uit laten voeren.

Dat kan met een “en” en “of” functie.

In deze sketch zien we de “of” functie werkt.

Zelf ga je op zoek naar de “en” functie.

*/

int knop1 = 2;       // knop aan pin 2

int knop2 = 3;       // knop aan pin 3

int led =  13;       // led aan pin 13

int toestandknop1 = 0;   // variabele voor het lezen van de knop 1

int toestandknop2 = 0;   // variabele voor het lezen van de knop 2

void setup() {

pinMode(led, OUTPUT);     //ledpin is output

pinMode(knop1, INPUT);     //knop1 is input

pinMode(knop2, INPUT);     //knop2 is input

}

void loop(){

toestandknop1 = digitalRead(knop1); //toestandknop is de waarde van knop1

toestandknop2 = digitalRead(knop2); //toestandknop is de waarde van knop2

if (toestandknop1 == HIGH || toestandknop2 == HIGH) {          //controleer of de knop 1 of 2 ingedrukt is

digitalWrite(led, HIGH);        //indien 1 of 2 ingedrukt: led aan

}

else {

digitalWrite(led, LOW);         //anders: led uit

}

}

/*

Verander de sketch zo dat:

De lamp juist aan gaat als de knop 1 en 2 wordt ingedrukt. Kijk op de tutorial-site van deze les voor een link. Onder logische

berekeningen, met welke tekens je dit voor elkaar kan krijgen.

*/

Uitleg:

Alles tussen /* en */ is uitleg. En alles na // is ook uitleg.
Eerst heb je int. Na int staat bijvoorbeeld knop1 of led en een = teken. Na het is teken staat een cijfer, dat cijfer geeft aan op welke pin de knop of led is aangesloten.

Daarna heb je void setup() { hierachter staat wat de in- en wat de output is. Om aan te geven wat in en wat output is heb je pinMode(led, OUTPUT); bijvoorbeeld. Dat betekend dat de led de output is. (Input betekend dat de signalen daar naartoe gaan, output betekend dat die signalen afgeeft.)

Daarna heb je void setup(){ en hierachter staat wat er moet gebeuren om in dit geval het lampje aan te laten gaan. Je hebt in dit geval dus toestandknop 1 = digitalRead(knop1); en dat betekend dat je de waarde van de knoppen gaat kijken.

Daarna heb je if (toestandknop1 == HIGH || toestandknop2 == HIGH) {  digitalWrite(led, HIGH);
en dit betekend dat als er dus 1 of alle 2 ingedrukt worden het lampje aan gaat.

En dan heb je else{ digitalWrite(led, LOW); en dit betekend dat als ze dus niet ingedrukt zijn het lampje niet brand.

-Iris Carmiggelt en Kaoutar El Kaouini

Leave a Reply