Hallo, ik ben als beginner bezig met een programma voor mijn arduino Nano maar krijg het niet werkend. Doel is om later met een draaischakelaar met de weerstanden verschillende acties te starten. Als ik de sketch run gaat de rode led branden maar als ik een dipswitch inschakel (dus de waarde hoger als 0 maak) gebeurd er niets. Vast bedankt voor suggesties.
Dit is de sketch:
code:
/* Test met 6 x dipswitch met verschillende weerstanden en 6 x LED en switch statement. Eerst met andere sketch de waardes op A0 uitgelezen
* en genoteerd. Gemeten waardes: met 10K +/- 511, met 18K +/- 361, met 33K +/- 234, met 47K +/- 175, met 68K +/- 129, en 100K +/- 90.
* Als de sketch werkt wordt de dipswitch vervangen door een draaischakelaar. Verder worden de LED's vervangen door een 3 voudig 7-segment displayen en worden de functies uitgebreid, de LED's zijn dus maar tijdelijk, maar het blijven wel ouputs.
*/
int rood = 12; // Rode LED op pin 12
int geel = 11; // Gele LED op pin 11
int oranje = 10; // Oranje LED op pin 10
int groen = 9; // Groene LED op pin 9
int wit = 8; // Witte LED op pin 8
int blauw = 7; // Blauwe LED op pin 7
int interval = 200; // Tijdsduur tussen LED aan/uit
int val = 0; // variabele waarde, te lezen uit analoog A0
void setup() {
pinMode(rood, OUTPUT); // Zet pinnen 7 - 12 op output
pinMode(geel, OUTPUT);
pinMode(oranje, OUTPUT);
pinMode(groen, OUTPUT);
pinMode(wit, OUTPUT);
pinMode(blauw, OUTPUT);
val = analogRead(0); // Waarde wordt gelezen op analoge input A0
while (val< 10) // Zolang de waarde kleiner is als 0 (er geen dipswitch is geschakeld) rode LED aan.
{digitalWrite(rood, HIGH);}
}
void loop() {
if (val > 500 && val < 520){ // Als gemeten waarde ligt tussen 500 & 520, kies case 1
val = 500;}
else if(val > 350 && val < 365){ // Als gemeten waarde ligt tussen 350 & 365, kies case 2
val = 350;}
else if (val > 225 && val < 235){ // Als gemeten waarde ligt tussen 225 & 235, kies case 3
val = 225;}
else if(val > 165 && val < 180){ // Als gemeten waarde ligt tussen 165 & 180, kies case 4
val = 165;}
else if (val > 125 && val < 135){ // Als gemeten waarde ligt tussen 125 & 135, kies case 5
val = 125;}
else if (val > 80 && val < 100){ // Als gemeten waarde ligt tussen 80 & 100, kies case 6
val = 80;}
else{
}
}
void LEDrood (){ // Functiestap rode LED
digitalWrite(rood, HIGH);
delay(interval);
digitalWrite(rood, LOW);
delay(interval);}
void LEDgeel (){ // Functiestap gele LED
digitalWrite(geel, HIGH);
delay(interval);
digitalWrite(geel, LOW);
delay(interval);}
void LEDoranje (){ // Functiestap oranje LED
digitalWrite(oranje, HIGH);
delay(interval);
digitalWrite(oranje, LOW);
delay(interval);}
void LEDgroen (){ // Functiestap groene LED
digitalWrite(groen, HIGH);
delay(interval);
digitalWrite(groen, LOW);
delay(interval);}
void LEDwit (){ // Functiestap witte LED
digitalWrite(wit, HIGH);
delay(interval);
digitalWrite(wit, LOW);
delay(interval);}
void LEDblauw (){ // Functiestap blauwe LED
digitalWrite(blauw, HIGH);
delay(interval);
digitalWrite(blauw, LOW);
delay(interval);
switch (val){
case '1': // Weerstandwaarde case 1, rode LED 3 x aan/uit
LEDrood(); LEDrood(); LEDrood();
break;
case '2': // Weerstandwaarde case 2, gele LED 3 x aan/uit
LEDgeel(); LEDgeel(); LEDgeel();
break;
case '3': // Weerstandwaarde case 3, oranje LED 3 x aan/uit
LEDoranje(); LEDoranje(); LEDoranje();
break;
case '4': // Weerstandwaarde case 4, groene LED 3 x aan/uit
LEDgroen(); LEDgroen(); LEDgroen();
break;
case '5': // Weerstandwaarde case 5, witte LED 3 x aan/uit
LEDwit(); LEDwit(); LEDwit();
break;
case '6': // Weerstandwaarde case 6, blauwe LED 3 x aan/uit
LEDblauw(); LEDblauw(); LEDblauw();
break;
}
}