NLT

FME 11: DigitalAnalog

In deze post behandelen wij de werking van les 11: DigitalAnalog van http://funmetelectronica.nl/.

Knipselkaas

Ten eerste moet bovenstaande opstelling worden nagebouwd en het juiste bestand voor de Arduino software worden geopend.

Bij de volgende codering word achter de // steeds de korte functie beschreven. Waarachter wij een verdere beschrijving geven.

int knop1 = 2;       // knop aan pin 2
int knop2 = 3;       // knop aan pin 2
int led = 11;       // led aan pin 11
int toestandknop1 = 0;   // variabele voor het lezen van de knop
int toestandknop2 = 0;   // variabele voor het lezen van de knop

In dit stuk codering word aan het programma verteld hoe de pins op de afbeelding zijn aangesloten. int knop1 = 2; betekent dus dat knop 1 is aangesloten op pin 2. En int toestandknop1 = 0; geeft aan dat wanneer de knop niet is ingedrukt de waarde 0 is en wanneer de knop wel is ingedrukt de waarde 1 is.

void setup() { pinMode(led, OUTPUT);     //ledpin is output  
pinMode(knop1, INPUT);     //knop is input  
pinMode(knop2, INPUT);     //knop is input  

Bij dit deel word aangegeven welke componenten informatie versturen of ontvangen. Output betekent dat de Arduino signalen naar dit component verstuurd en bij Input ontvangt de Arduino hier juist informatie van.

     }
void loop(){
toestandknop1 = digitalRead(knop1); //toestandknop is de waarde van knop
toestandknop2 = digitalRead(knop2); //toestandknop is de waarde van knop
if (toestandknop1 == HIGH) {        //controleer of de knop1 ingedrukt is         
analogWrite(led, 50);       //indien ingedrukt: led aan op sterke 50 (waarde tussen 0 – 255)      }  
else if (toestandknop2 == HIGH) {         //controleer of de knop2 ingedrukt is          analogWrite(led, 255);       //indien ingedrukt: led aan op sterke 100 (waarde tussen 0 – 255)      }
else {    digitalWrite(led, LOW);         //anders: led uit
}
}
/*
Je kan de waarde anders instellen, een delay er aan toevoegen of nog meer knoppen gebruiken.
*/
digitalRead houdt in dat de Arduino van dit component informatie af moet lezen. if (toestandknop1 == HIGH) betekent dat wanneer de knop een positieve waarde naar de Arduino stuurt een andere actie uitvoer wat in dit geval het laten branden van het ledlampje is. analogWrite(led, 50)  geeft de waarde aan die de Arduino moet versturen (write) wanneer de knop dus is ingedrukt (high is). Voor de tweede knop geld dis hetzelfde. Je kan bij beide knoppen een andere waarde instellen die het voltage bepalen. Het laatste deel geeft aan dat wanneer de knop niet is ingedrukt (low is) de er geen informatie door de Arduino wordt verstuurd.

Max de Haan en Gijs Smit
A4c

 

 

 

 

Leave a Reply