1. drempelwaarde sensor instellen

Het instellen van een sensor drempelwaarde:

Uitgangspunt: functionele sensor die werkt tussen 0 en 5 V
Probleem: deze sensor moet op een door ons zelf gekozen moment wel en op een op ander moment niet werken.
Voorbeeld: Een lichtsensor werkt overdag niet en als het donker wordt schakelt de arduino via de lichtsensor een lamp aan.


// technasium Jacob Roelandslyceum 12-12-14

//1e gedeelte van het programma: geheugen reserveren in de microcontroller (met het commando int). 

int SensePin = A0; // er wordt werkgeheugen gereserveerd voor data afkomstig uit analoge poort A0 
int waarde; // dit werkgeheugen is 2 bytes oftewel 16 bits groot 
int ledpin = 13; // dit is een waarde tussen de 32767 en de -32768 bits http://arduino.cc/en/Reference/int

// tweede gedeelte van het programma
// het definiëren van de poorten

// poorten kunnen ingangen of uitgangen zijn, poorten kunnen analoog of digitaal zijn.
// 1. "digitaal": zowel als "in-" of als een "output".  
// 2. "analoog" : idem.

void setup()

{
Serial.begin(9600); //we maken het mogelijk in via de PC seriele communicatie aan te gaan met de Arduino

pinMode (ledpin,OUTPUT); // we instrueren de microcontroller om het poortje dat we "ledpin" hebben genoemd - dat is poortje 13 - als een 'output' (uitgang) te functioneren.  
}

//derde gedeelte van het programma

void loop()

{
analogRead (SensePin); // het analoge signaal wordt ingelezen via poortje A0, dit is 'analoog poortje nummer 0'. 
// De analoge waarde (deze varieert tussen 0 en 5 V) wordt vervolgens omgezet (door een z.g. AD convertor) naar een digitale waarde.
// Deze digitale weergave - in ons geval hebben we gekozen voor de waarde 500 - kan de spanning over een sensor of weerstand weergeven als een 10 bits waarde (maximaal 1024).
// De 10 bits digitale waarde wordt opgedeeld in 1023 spanningsgebiedjes tussen de 0 en 5 V. Deze 1023 gebiedjes worden opgesplitst in spanningsgebiedjes van 5/1024 = 4,9 mV. 
// Vooorbeeld: Spanning Arduino = 5V,  AD omzetting is zoals gezegd in dit geval 10 bits = 2^10 = 1024. => 5/1024 = 4,9 mV. De digitale getalswaarde in de seriele monitor = 500, dus de spanning bedraagt 500 x 4,9 mV = 2,45 V 

waarde = analogRead (SensePin); // de variable 'waarde' neem de ingelezen (sensor) spanningswaarde over van analoge poort A0. 

Serial.println(waarde); //de waarde van de variabele 'waarde' wordt geprint in een apart venster, de z.g. seriele monitor, deze kun je zichtbaar maken via de knop rechtsboven in de vorm van het vergrootglas.

if (waarde < 500) digitalWrite (ledpin,HIGH);  // als de digitale waarde beneden de waarde 500 blijft (2,45 V) wordt poortje 13 "hoog", dat wil zeggen: het LEDje op poortje 13 gaat branden.

else digitalWrite(ledpin,LOW); // boven de waarde 500 blijft of gaat de LED uit.

if (waarde < 500) delay (2500); //als de digitale waarde 500 niet wordt overschreden blijft het LEDje van poortje 13 branden gedurende de tijdsuur van 2,5 seconden voordat een nieuwe waarde wordt ingelezen die deze toetand kan veranderen.
else delay (0); // 
}