Wie behebe ich den folgenden Arduino Fehler?
Erstmal der Code: https://pastebin.com/vqWV18bC
Ignoriert das letzte "}" Das war nen versehen.
Ich bekomme die Fehlermeldung "
'status' was not declared in this scope". Aber ich weiß nicht wo bzw was ich wo deklarieren muss, ich hab gerade wieder mit dem Arduino angefangen. Es währe nett wenn mir jemand hilft den Fehler zu finden.
LG Bendix
Ps: Noch ein Bild vom Fehler:
4 Antworten
du benutzt status im if aber deklarierst die Variable erst später
Du deklarierst Status zuerst im Setup. Damit ist sie nur lokal verfügbar und eben nicht im Loop. Du müsstest sie global deklarieren wenn du sie in Setup in Loop benutzen willst. Also da wo auch mfrc522 deklariert wird.
Dann unten dementsprechend von den Zuweisungen immer das int entfernen damit die globale Variable verwendet wird.
Zudem wäre mir ein stop neu bei Arduino. Eigentlich nimmt man da return.
Danke, das mit dem stop war eher so aus dem instinkt heraus da ich das von anderen Skripten kenne.
status ist nur eine lokale Variable in der void setup()-Prozedur.
Ich vermute, du willst eine globale Variable machen, onder diese von setup() gleich unter loop() verschieben.
Dazu "int status;" in Zeile 16 schreiben, und in Zeile 26 nur "status = 0".
Bei 67., 78., 79. Zeile den Typ weglöschen ("int"), weil man das nur zum Deklarieren braucht, und das wird einmal gemacht für den Bereich, wo die Variable gültig sein soll.
Danke, Alle Antworten haben mir sehr geholfen, diese hier besonders. Ich hab aber noch eine Frage, wenn ich den rfid chip an den sensor halte blinken alle LEDs schnell durch und das LCD Display kommt nich hinterher, gibt es ne möglichkeit einen cooldown oder so hinzuzufügen?
- https://www.gutefrage.net/frage/wie-behebe-ich-den-folgenden-arduino-fehler#answer-355710104 LisamagPferde04 hat eigentlich noch vor mir alle wesentlichen Tipps gegeben, meine erste Version der Antwort enthielt nur den Tipp mit dem Verschieben der status-Variable vom void setup()-Scope in den Global-Scope.
- Dazu musst du verstehen, wie lange die Aktionen innerhalb von void loop() dauern (läuft in fast null komma nichts durch) und nach wie kurzer Zeit loop() wieder aufgerufen wird (mit seeehr kurzem Abstand). Es gibt dann mehrere Möglichkeiten, wie du das verzögern kannst.
Ihr wahrt beide hilfreich, du hattest halt die Zeilen mit drin. Das machte es einfacher. :)
dein erster term heist ==2
da müsste der zweite auch irgendwie mit ==n definiert werden denke ich
?(terme=
set ==1
do things or reject them
set ==2
other things or green light)
(==terme
compaire ?==1/2))==3
!terme
Danke, allerdings bin ich mir immernoch nicht sicher wo der Fehler ist. Könntest du mir die Zeilen schreiben und evt korrigieren bei denen ich was falsch gemacht hab?