Ich brauche für die Schule einen Code da meiner nicht geht

Das Ziel ist es Zwei Leds mithilfe von Taster oder Bewegungssensor 20 Sekunden zum leuchten zu bringen doch wenn in dieser Zeit der Taster gedrückt wird oder der Sensor eine Bewegung wahrnimmt sollen diese 20 Sekunden von neuem anfangen

Im englischen Teil des Forum müssen die Beiträge und Diskussionen in englischer Sprache verfasst werden. Deswegen wurde diese Diskussion in den deutschen Teil des Forums verschoben.

mfg ein Moderator.

@elihuha
ich habe versuch dein Bild in Paint zu bearbeiten. Das geht zwar lässt sich aber nicht compilieren und lässt sich auch nicht auf den Arduino laden.

--> Code postet man in Code Tags!(!!!)

Was du probieren kannst, hier nachzulesen:
Arduino: LED oder Relais per Tastendruck einschalten und mit Zeitablauf abschalten

und hier
Objektorientierte Programmierung (OOP) am Arduino UNO / NANO / MEGA

Du weißt was der Unterschied von = und == im if ist?

Du hast zwar mit delay() einen nicht blockierenden Sketch gebaut, noch besser geht es aber mit millis() siehe blink without delay in den Arduino-IDE Beispielen.

und NEIN wir schreiben Dir keinen funktionierenden Sketch.

Grüße Uwe

Und dann benutze bitte noch mal in der IDE Strg-T und den Code zu formatieren.

Hi elihuha,

abgesehen von den richtigen Hinweisen, die es hier schon gab ...

Dein code sieht für mich erstmal gar nicht so verkehrt aus!

Bekommst Du sicher zum Laufen, wenn Du die bisherigen Hinweise hier gewissenhaft verfolgst.

Danke ich werde sobald ich kann mir die texte durchlesen

Ein paar Tipps.

Suche mal den Unterschied von & und &&.

Taster == HIGH

Taster ist ein Konstante von dir. Wie soll diese HIGH oder LOW werden?

Lan wird nur den Wert 20000 oder 19990 haben können. Von 19990 werden keine 10 abgezogen, da das if nicht mehr wahr ist.

Kontrolliere deine Block Klammern. Diese beeinflussen deinen Code. Einrückungen sind nur für den Menschen, damit er es besser lesen kann (in C++). Nutze STRG+T in der Arduino IDE. Dies rückt den Code anhand deiner Klammern ein. Ich denke, dann siehst du einiges, was anders als gewollt ist.

Danke für die hilfe und ich wollte keinen ganzen code sondern nur hilfe da meiner nicht geht war ein Missverständnis aufgrund meiner formulierung

Setze erst mal deinen Sketch richtig rein, so dass man den auch testen kann.

Daran könnte es liegen danke für die Infos

Werde ich machen sobald ich an meinem Pc wieder bin

Und wieso hast du den Thread als "gelöst" gekennzeichnet ?
Oder funktioniert alles ?

das war ein versehen bin neu hier und kenne mich noch nicht so gut aus

Ok, alles gut.

Eine gute Gelegenheit, mit meiner Combielib.zip(findest du mit der Forensuche) zu protzen!

Ein retriggerbares Monoflop:

#include <CombieTimer.h>
#include <CombiePin.h>

#include <CombieTypeMangling.h>
using namespace Combie::Millis;

Combie::Pin::OutputPin<4>    led1;
Combie::Pin::OutputPin<5>    led2;
Combie::Pin::InvInputPin<2>  taster; // Taster zwischen Pin und GND(invertierend)
Combie::Pin::InputPin<3>     pir;    // nicht invertierend

Combie::Timer::FallingEdgeTimer toff {20_Sekunden};  // abfallende Flanke wird verzoegert

void setup()
{
  taster.initPullup();
  pir.init();
  led1.init();
  led2.init();
}

void loop()
{
  led1 = led2 = toff = pir || taster;
}

Keine Schleifen, kein if mit verwirrenden Bedingungen.
Flach und gerade runter.

Was der Lehrer dazu sagt .....

Das || (ODER) fehlt zumindest in deinem Bild in #1
Da ist dank Zeile 17 die Zeile 16 komplett überflüssig und der Bewegungssensor wird ignoriert.

Nur flach, nicht gerade runter.

Ausser man interessiert sich dafür, was Combie::Timer::FallingEdgeTimer und Konsorten genau machen.
Erst da wird es spannend.
Dass man das Ganze dann in einer einzeiligen loop mit 3 Gleichheitszeichen (Zuweisungsoperatoren) nutzen kann, ist --wenn man durch die combielib durchgestiegen ist-- nicht der Rede wert.

Aber dann könnte man sich auch dafür interessieren, wie die Arduino-Objekte und Funktionen genau arbeiten, und wie der Compiler aus C++ Maschinencode (für welchen "Arduino" überhaupt) macht und wie die Elektronik in einem Microcontroller funktioniert.

Hallo
ich bin auch mit der Zeile 16 u 17 aus dem Eingangspost nicht einverstanden. Zudem ist dann in Zeile 22 und 30 die Abfrage auf Taster sinnlos , das ist die Pinnummer und also in dem Fall immer HIGH.

Heinz