Hallo, bin neu in Sachen Raspberry programmieren, aber hab n Projekt von der Schule bekommen. Ich soll mit zwei Tastern die zwei LEDs ansteuern(Die LEDs werden später durchn Motor ausgetauscht der mit PWM betrieben wird). Jetzt hab ich aber das Problem, dass immer if(Tast==1) durchläuft und auch wenn ich die Taster drück tut sich nix. Hoffe mein Problem ist verständlich genug.(LAS,ENDL und ENDR sind Endschalter und eine Laserschranke)
Code
while(digitalRead(LAS)==0){
if(Tast==1){
while((digitalRead(ENDL)==0)&&(Tast==1)){
if((digitalRead(For)==1)&&(Tast==0)){
Tast=1;
}
else if((digitalRead(Back)==1)&&(Tast==1)){
Tast=0;
}
else if((digitalRead(Back)==1)&&(Tast==0)){
Tast=2;
}
else if((digitalRead(For)==1)&&(Tast==2)){
Tast=0;
}
else{};
delay(500);
digitalWrite(LED, HIGH);
delay(500);
digitalWrite(LED, LOW);
}
}
else if(Tast==2){
while((digitalRead(ENDR)==0)&&(Tast==2)){
if((digitalRead(For))&&(Tast==0)){
Tast=1;
}
else if((digitalRead(Back))&&(Tast==1)){
Tast=0;
}
else if((digitalRead(Back))&&(Tast==0)){
Tast=2;
}
else if((digitalRead(For))&&(Tast==2)){
Tast=0;
}
else{}
delay(500);
digitalWrite(LED2, HIGH);
delay(500);
digitalWrite(LED2, LOW);
delay(500);
}
}
else if(Tast==0){
while(Tast==0){
if((digitalRead(For))&&(Tast==0)){
Tast=1;
}
else if((digitalRead(Back))&&(Tast==1)){
Tast=0;
}
else if((digitalRead(Back))&&(Tast==0)){
Tast=2;
}
else if((digitalRead(For))&&(Tast==2)){
Tast=0;
}
else{}
delay(500);
digitalWrite(LED, HIGH);
digitalWrite(LED2,HIGH);
}
}
else{}
}
if(digitalRead(LAS)){
printf("FEHLER");
while(digitalRead(LAS)){
digitalWrite(LED, HIGH);
delay(250);
digitalWrite(LED, LOW);
delay(250);
}
}
return 0; while(digitalRead(LAS)==0){
if(Tast==1){
while((digitalRead(ENDL)==0)&&(Tast==1)){
if((digitalRead(For)==1)&&(Tast==0)){
Tast=1;
}
else if((digitalRead(Back)==1)&&(Tast==1)){
Tast=0;
}
else if((digitalRead(Back)==1)&&(Tast==0)){
Tast=2;
}
else if((digitalRead(For)==1)&&(Tast==2)){
Tast=0;
}
else{};
delay(500);
digitalWrite(LED, HIGH);
delay(500);
digitalWrite(LED, LOW);
}
}
else if(Tast==2){
while((digitalRead(ENDR)==0)&&(Tast==2)){
if((digitalRead(For))&&(Tast==0)){
Tast=1;
}
else if((digitalRead(Back))&&(Tast==1)){
Tast=0;
}
else if((digitalRead(Back))&&(Tast==0)){
Tast=2;
}
else if((digitalRead(For))&&(Tast==2)){
Tast=0;
}
else{}
delay(500);
digitalWrite(LED2, HIGH);
delay(500);
digitalWrite(LED2, LOW);
delay(500);
}
}
else if(Tast==0){
while(Tast==0){
if((digitalRead(For))&&(Tast==0)){
Tast=1;
}
else if((digitalRead(Back))&&(Tast==1)){
Tast=0;
}
else if((digitalRead(Back))&&(Tast==0)){
Tast=2;
}
else if((digitalRead(For))&&(Tast==2)){
Tast=0;
}
else{}
delay(500);
digitalWrite(LED, HIGH);
digitalWrite(LED2,HIGH);
}
}
else{}
}
if(digitalRead(LAS)){
printf("FEHLER");
while(digitalRead(LAS)){
digitalWrite(LED, HIGH);
delay(250);
digitalWrite(LED, LOW);
delay(250);
}
}
return 0;
Alles anzeigen