Wie behebe ich den folgenden Arduino Fehler?

4 Antworten

du benutzt status im if aber deklarierst die Variable erst später

BenDix2005 
Fragesteller
 23.06.2020, 00:17

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?

0

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.

BenDix2005 
Fragesteller
 23.06.2020, 00:30

Danke, das mit dem stop war eher so aus dem instinkt heraus da ich das von anderen Skripten kenne.

0
pucgenie  23.06.2020, 00:38
@BenDix2005

Ich vermute, mit "stop" ist etwas wie "delay(200);" gemeint.

0

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.

Woher ich das weiß:Studium / Ausbildung
BenDix2005 
Fragesteller
 23.06.2020, 00:24

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?

0
pucgenie  23.06.2020, 00:30
@BenDix2005
  1. 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.
  2. 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.
0
BenDix2005 
Fragesteller
 23.06.2020, 00:35
@pucgenie

Ihr wahrt beide hilfreich, du hattest halt die Zeilen mit drin. Das machte es einfacher. :)

0

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