Frage von tryfreak, 59

was stimmt mit dem quelltext nicht?

int led = 13 ;

 int buttonpin = 3; 

int val = 0; 

void setup () 

{

 pinMode (led, OUTPUT) ;

 pinMode (buttonpin, INPUT) ;

 } 

void loop ()

 { 

val = digitalRead (buttonpin) ; 

if (val == HIGH);

 { 

digitalWrite (led, HIGH)

 } 

else

 { 

digitalWrite (led, LOW)

 } 

}

Antwort
von priesterlein, 33

Das Semikolon am Ende von if (val == HIGH); verhinder den eigentlichen if-Zweig und dann hat das else danach kein if, zu dem es gehört.


Bitte lerne, zu formatieren. Es gibt hier einigermaße brauchbare Formate für Quelltexte.

Zudem kenne ich deinen Arduino nicht, aber vielleicht kommen hinter die digitalWrite (led, HIGH) und so auch Semikolon?

Kommentar von tryfreak ,

ja tut mir leid bin neu in dem bereich :/ aber danke

habs geändert aber da scheint immernoch was falsch zu sein :(

Antwort
von Berny96, 40

Du hast bei "digitalWrite(LED, LOW)" beide Male das Semikolon vergessen und wie schon vor mir gesagt wurde hast du bei dem if zwei ein Semikolon zu viel. :)

Kommentar von Berny96 ,

Habe deinen Code nochmal überarbeitet: 

int led = 13 ;

int buttonpin = 3;
int val = 0;
void setup ()
{
pinMode (led, OUTPUT) ;
pinMode (buttonpin, INPUT) ;
}
void loop ()
{
val = digitalRead (buttonpin) ;
if (val == HIGH)
{
digitalWrite (led, HIGH);
}
else
{
digitalWrite (led, LOW);
}
}
Kommentar von tryfreak ,

danke man :D

habs hinbekommen aber irgendwie tut der quelltext nicht das was es soll bin echt am verzweifeln ....

hab wirklich alleeees mögliche versucht aber es geht nicht die LED leuchtet einfach nicht selbst wenn ich noch so laute geräusche mache :(

Kommentar von tryfreak ,

ich hab ein arduino uno und den geräuschsensor LM393 

irgendwie hab ich schon so viele quelltexte versucht aber nix klappt. Ich glaub nicht das ich was falsch angeschlossen habe. am geräuschsensor hab ich d0, a0, 5 v und ground angeschlossen.

die LED hab ich an port 13 und ground richtig angeschlossen. 

was mache ich falsch? Die LED leuchtet die ganze zeit einfach.

der quelltext ist doch auch richtig. :(

Kommentar von Berny96 ,

Ich habe leider keine Erfahrung mit Arduinoprogrammierung, kann dir daher nicht behilflich sein. Konnte dich nur auf deine Syntaxfehler aufmerksam machen sorry :/

Antwort
von phigeek, 7

Hast Du schon mal mit

Serial.print(val);

oder ähnlich versucht auszugeben, was der Input wirklich liefert. Eventuell liegt es an der Schaltung und "HIGH" wird mit digitalRead(..); gar nie erhalten?

Dies kannst Du dann mit der Arduino-Entwicklungsumgebung einfach testen.

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten