Gast
#4887576
Hallo alle zusammen.
Ich wollte auch probieren Lichter einfach per klatschen einzuschalten
(Arduino).
Da aber bei den vielen Tutorials die dazu gegebenen Codes bei mir nicht
funktionieren wollten, habe ich mich an einen eigenen versucht.
Letztendlich ist meiner Meinung nach nicht schlechtes raus gekommen :
const int sounds =2;
unsigned long starttime;
unsigned int pasttime;
int var;
boolean statusi =false;
void setup() {
pinMode(sounds,INPUT);
pinMode(5,OUTPUT);
}
void loop() {
if ( digitalRead(sounds)==HIGH ){
starttime= millis();
var=1;
}
if (digitalRead(sounds)==LOW ){
pasttime=millis()-starttime;
delay(1);
if ( digitalRead(sounds)==HIGH&&var==1&&pasttime>=200 && pasttime<=300){
if (!statusi){
digitalWrite(5,HIGH);
var=2;
statusi=true;
}
else if (statusi){
statusi=false;
Serial.println("LED OFF");
digitalWrite (5,LOW);
}
}
else if (digitalRead(sounds)==HIGH&&var==1&&pasttime<200){
var=2;
}}}
Wenn ich bei diesem Code das obere delay(1) auskommentiere, dann
funktioniert der sketch nur noch halb.
Die if Abfrage funktioniert nicht mehr gut.
Weshalb ich auf delay(1) komme: Davor habe ich dort eine Serielle
ausgabe von pasttime eingesetzt.
Als ich diese raus nahm, geschah wie schon oben beschrieben.
Meine Frage ist also, wieso das Programm von diesem einen delay abhängig
ist?
LG heike.
