ich bin leider ein ziemlicher Arduino-Neuling und brauche dringend Eure Hilfe.
Ich möchte ein Objekt gestalten, bei dem vier Funktionen unabhängig voneinander funktionieren. Für jede Funktion habe ich einen eigenen Sketch erstellt allerdings scheitere ich komplett an der Zusammenführung dieser, dass diese unabhängig voneinander ablaufen können. Gibt es da einen Tipp? Ich habe schon in anderen Foren gelesen, verstehe es aber leider nicht.
Die Funktionen sind beispielsweise, Temperatur steigt und die LED geht ab 25 Grad an oder der Taster wird gedrückt und eine LED geht an.
Ich wäre Euch sehr dankbar, wenn ihr mich unterstützen könnte.
Viele Grüße und einen schönen Abend!
Anna
soll heißen, einen einfachen Ablaufplan. Was soll in welcher Reihenfolger passieren.
Es gibt auf einem kleinen Arduino kein "Gleichzeitig" ... also musst du es nacheinander machen.
Idealerweise klappt das aber so schnell dass der Anwender davon nichts merken muss. Loop wird ja einige Tausend mal pro Sekunde durchlaufen ... solange du den loop nicht mit blockierenden delay() aufhältst...
Der Tipp heißt "Blockadefreies Programmieren".
Dann kann man beliebig viele Funktionen gleichzeitig ablaufen lassen, und muss sich nicht ein multitasking-Betriebssystem zusätzlich bauen/suchen (was dann auch eher für mehrere unabhängige Objekte als für ein einzelnes Objekt mit parallel-Funktionen geeignet wäre).
Was du unter einem "Objekt" verstehst, ist wohl erstmal egal, nehme ich an...
Oh Entschuldigung! Sind die Sketche jetzt im richtigen Format hochgeladen? Der erste und der zweite Sketch sind sehr ähnlich mit zwei verschiedenen Tastern.
Vielen Dank
Anna
E:\Programme\arduino\portable\sketchbook\sketch_jan06c\sketch_jan06c.ino: In function 'void loop()':
E:\Programme\arduino\portable\sketchbook\sketch_jan06c\sketch_jan06c.ino:45:3: warning: statement is a reference, not call, to function 'funktion1' [-Waddress]
45 | funktion1;
| ^~~~~~~~~
E:\Programme\arduino\portable\sketchbook\sketch_jan06c\sketch_jan06c.ino:45:3: warning: statement has no effect [-Wunused-value]
E:\Programme\arduino\portable\sketchbook\sketch_jan06c\sketch_jan06c.ino:46:3: warning: statement is a reference, not call, to function 'funktion2' [-Waddress]
46 | funktion2;
| ^~~~~~~~~
E:\Programme\arduino\portable\sketchbook\sketch_jan06c\sketch_jan06c.ino:46:3: warning: statement has no effect [-Wunused-value]
Sollte man evtl. nicht so oft aufrufen, zumal darin auch ein Serial.print passiert. So schnell kann man gar nicht mitlesen.
Wenn der Pegel sich tatsächlich schnell -innerhalb weniger Millisekunden- ändern kann, wäre eine Änderungsüberwachung nett:
Nur was ausgeben, wenn der Wert sich signifikant (wie immer man das definiert) ändert.
Variablen, die nur lokal gebraucht werden, sollten auch nur lokal definiert werden.
Am besten da, wo sie auch ihren Wert erhalten.
Dann ist es auch egal, wenn zwei verschiedene jeweils lokale Variable aus Versehen denselben Namen haben.