Frage von ma9rtin, 76

Arduino ungewollte Verzögerung?

Also, ich habe ein Programm am Arduino laufen welches einen Taster ausließt und eine LED bei gedrücktem Taster leuchten lässt. Das Problem ist jetzt, wenn ich drücke, die LED zwar leuchtet, aber wenn ich nicht mehr drücke leuchtet die LED ungefähr 1 Sekunde nach.. Woran könnte das liegen? Habe das Arduino UNO Board..

Hilfreichste Antwort - ausgezeichnet vom Fragesteller
von Jelkr, 33

Vmtl an der programmierung. Zeig ma code

Kommentar von ma9rtin ,

Danke für deine Antwort! Code:
int EingangTaster = 5;
int Schalterstatus;
int Ausgang Pin = 10;
void setup(){
pinMode (EingangTaster, INPUT)
pinMode (AusgangPin, OUTPUT);
}
void loop() {
Schalterstatus = digitalRead (EingangTaster);
if (Schalterstatus == 1)
{digitalWrite (AusgangPin, HIGH};
if (Schalterstatus == 0)
{digitalWrite (AusgangPin, LOW};
}

Kommentar von xdanix77 ,

Du schließt die runden Klammern der DigitalWrite-Funktion nicht, außerdem gehört der Strichpunkt hinter den geschwungenen Klammern weg. Beim oberen pinMode gehört noch ein Strichpunkt dazu.

Kommentar von ma9rtin ,

Das ist schon alles richtig, ich habs evtl falsch abgeschrieben.. Sonst käme ja auch ne Fehlermeldung oder sowas.. Hat sich eh schon erledigt.. Aber danke für deine Hilfe..

Antwort
von LostUniverse, 36

du hast bestimmt eine verzögerung drin. wenn du das standartprogramm hast, dann ist ja delay(zahl) die wartezeit. wenn du die wegmachst, dann sollte es laufen.

Kommentar von ma9rtin ,

Danke für die Antwort! Ein Bild .. Warte

Kommentar von ma9rtin ,

int EingangTaster = 5;
int Schalterstatus;
int Ausgang Pin = 10;
void setup(){
pinMode (EingangTaster, INPUT)
pinMode (AusgangPin, OUTPUT);
}
void loop() {
Schalterstatus = digitalRead (EingangTaster);
if (Schalterstatus == 1)
{digitalWrite (AusgangPin, HIGH};
if (Schalterstatus == 0)
{digitalWrite (AusgangPin, LOW};
}

Kommentar von LostUniverse ,

lass dir die werte erstmal am seriellen monitor ausgeben, da findest du dann eher das problem. wie ich jetzt sehe hast du überhaupt kein delay drin. ich empfehle dir einfach mal rumzuprobieren, setz mal ein delay(1) hin (ist ja der niedrigste wert). falls das nicht klappt, dann änder das 2. if zu else. if und else gehören eigentlich immer zusammen. also WENN so und so, ANSONSTEN so und so. ich hoffe ich konnte dir damit helfen.

Kommentar von ma9rtin ,

Hm, also am seriellen Monitor könnte ich nichts finden.. Wenn an Pin 5 keine Spannung mehr anliegt, der Eingang also LOW ist, stehen da für 1 Sekunde später trotzdem noch 1en da.. Und dann halt wieder 0en.. Wenn ich ein delay(1) einsetze, hat das auch nicht geholfen und bei der Ersetzung des "if" durch ein "Else" kam nur ne Fehlermeldung.. Muss ich da iwas beachten wenn ich else einsetzte? ÜBRIGENS DANKE FÜR DEINE ANTWORT!

Kommentar von LostUniverse ,

du darfst if nicht einfach nur austauschen. du musst das umschreiben. wenn du else benutzt, brauchst du dein (schalterstatus==0) nicht. und kein problem :)

Kommentar von ma9rtin ,

Geht trotzdem nicht.. Auch nicht mit Else... Ich schick das Teil einfach zurück und verlange mein Geld zurück... Danke für deine Hilfe..

Kommentar von LostUniverse ,

hast du denn eine anleitung dafür? oder beispiele wie man das machen sollte?

Kommentar von ma9rtin ,

Nop.. Das Programm ist kinderleicht und ich hätte nicht gedacht dass es damit solche Probleme gibt... Diese Verzögerung macht mir alles kaputt

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten