Bitte um Hilfe beim programmieren. Habe am Freitag meinen ersten Arduino bekommen und übe den zu programmieren. Dieses Tutorial habe ich dazu gefunden und damit und den Beispielen in der arduinosoft etwas gelernt. https://www.youtube.com/watch?v=0wAY3DYihyg&list=PLAB63281B90FB376E Mit while komme ich nicht klar. Wenn ich den Schalter HIGH mache geht er in die while Schleife. Mache ich den LOW kommt er da leider nicht mehr raus. Was mache ich falsch? Was ist zu tun? In der angehängten ino mit if funktioniert das Monoflop bedingt. Habt Ihr einen guten link für mich wo while und andere erklärt werden? Muss kein youtube sein. LG old.
:
Bearbeitet durch Moderator
vielleicht sollte man den taster in der while schleife mal abfragen?
arduino schrieb: > vielleicht So wie ich das in 003 mache, bleibt er leider auch hängen. :-( Die Codeansicht hier im Forum ist ja klasse. :-) LG old.
Jetzthabensieihn I. schrieb: > bleibt er leider auch hängen Wo bleibt er denn hängen? Und woher weißt du das? Spicke deinen Code doch mit Serial.println() zum debuggen. Ist dein Schalter wirklich ein Schalter oder ein Taster?
:
Bearbeitet durch User
1 | |
2 | while (Schalter == 1) |
3 | {
|
4 | digitalWrite(rot,HIGH); |
5 | digitalWrite(gruen,LOW); |
6 | delay(3000); |
7 | digitalRead(InputPin); |
8 | }
|
In dieser Schleife kann sich "Schalter" nicht ändern, also kann er die Schleife auch nicht verlassen. Um sie zu verlassen, muss Du "Schalter" in der Schleife auf einen Wert ungleich 1 umstellen.
Jetzthabensieihn I. schrieb: > So wie ich das in 003 mache, bleibt er leider auch hängen. :-( Das blöde an Mikrocontrollern ist, dass sie genau das machen, was man ihnen sagt. Wie soll sich die Variable Schalter ändern, wenn das Programm einmal in den "while (Schalter == 1)"-Block gelangt ist.
Md M. schrieb: > Wo bleibt er denn hängen? Und woher weißt du das? Die rote LED bleibt dann an unabhängig von der Schalterstellung. Siehe Bild vom Aufbau. Klugscheisser schrieb: > Um sie zu verlassen, muss Du "Schalter" > in der Schleife auf einen Wert ungleich 1 umstellen. Das verstehe ich leider nicht. Bitte etwas ausführlicher erklären. LG old.
Hier ein ArduinoStyle Monoflop aus meiner Wühlkiste: (viel Spass damit)
1 | class MonoFlop |
2 | {
|
3 | private:
|
4 | unsigned long timestamp = 0; |
5 | unsigned long interval = 0; |
6 | bool running = false; |
7 | |
8 | public:
|
9 | MonoFlop(unsigned long interval):interval(interval){} |
10 | |
11 | void trigger() |
12 | {
|
13 | running = true; |
14 | timestamp = millis(); |
15 | }
|
16 | |
17 | bool out() |
18 | {
|
19 | return running; |
20 | }
|
21 | |
22 | void run() |
23 | {
|
24 | if(running) |
25 | {
|
26 | if(millis() - timestamp > interval) |
27 | {
|
28 | running = false; |
29 | }
|
30 | }
|
31 | }
|
32 | };
|
33 | |
34 | |
35 | //---------------------------------------------
|
36 | |
37 | |
38 | |
39 | MonoFlop zeitglied(1000); // 1s Abfallverzoegert |
40 | |
41 | const byte taster = 3; |
42 | const byte led = LED_BUILTIN; |
43 | |
44 | //---------------------------------------------
|
45 | |
46 | |
47 | void yield() |
48 | {
|
49 | zeitglied.run(); |
50 | }
|
51 | |
52 | |
53 | //---------------------------------------------
|
54 | |
55 | |
56 | void setup() |
57 | {
|
58 | pinMode(led,OUTPUT); |
59 | pinMode(taster,INPUT_PULLUP); |
60 | }
|
61 | |
62 | void loop() |
63 | {
|
64 | // wenn Taster gedrückt, dann trigger Monoflop
|
65 | if(!digitalRead(taster)) zeitglied.trigger(); |
66 | |
67 | // Ausgabe
|
68 | digitalWrite(led,zeitglied.out()); |
69 | |
70 | delay(1); |
71 | }
|
Arduino F. schrieb: > Hier ... Danke, allerdings verstehe ich das nicht. Ist ja ein ganz anderer Ansatz. Woher kennst Du die Begriffe zum Programmieren und deren Funktion? Angeblich soll man ja die Begriffe zur Programmierung auf der arduino.cc Seite finden. ich habe da schon mehrfach erfolglos gesucht. Wenn da Jemand einen link kennt, bitte zeigen. Muss doch irgendwie gehen aus der while Schleife rauszukommen. Vielleicht ist minibloq für mich besser geeignet. LG old.
Jetzthabensieihn I. schrieb: > Muss doch irgendwie gehen aus der while Schleife rauszukommen. Ja, einfach mal innerhalb der while-Schleife gucken, was der Schalter macht (i.e. InputPin abfragen) und die Variable Schalter entsprechend ändern.
Wolfgang schrieb: > (i.e. InputPin abfragen) und die Variable Schalter > entsprechend ändern. Habe ich das nicht in 003 getan? Auch digitalRead(Schalter); funktioniert nicht, siehe Anhang 004. Vielleicht braucht die while Funktion eine Rechenaufgabe (die ich nicht bieten kann). Gibt es noch etwas anderes als if und while was da infrage kommt? Gibt es eine Liste mit Begriffen und Erklärungen dazu? Link? LG old.
Jetzthabensieihn I. schrieb: > Gibt es noch etwas anderes als if und while was da > infrage kommt? Klingt als bräuchtest du erstmal einen kleinen C-Grundlagen bzw. algemein einen Programmier-Crashkurs. Und wie gesagt, schreib doch immer, wenn du nicht weißt, was an einer Stelle vor sich geht oder welcher Wert in einer Variable steht sowas wie
1 | Serial.print("Stelle A: "); |
2 | Serial.println(Schalter,DEC); |
hin, dann weißt du, was in der Variable steht und ob du sie verändert hast oder ob du nur glaubst, dass du sie verändert hast.
1 | Schalter = digitalRead(InputPin); |
1 | digitalRead(Schalter); |
Siehst du die Unterschiede?
Md M. schrieb: > Siehst du die Unterschiede? Nein? Ich habe über Google !!! etwas bei arduino gefunden: https://www.arduino.cc/en/Tutorial/WhileStatementConditional Ich muss für 1 HIGH und für 0 LOW schreiben. Das war der Fehler. Jetzt funzt das. :-) Der Tag ist gerettet. Über den Pfad finde ich dann auch weitere Erklärungen auf der arduino.cc Seite. LG old.
Jetzthabensieihn I. schrieb: > Ich muss für 1 HIGH und für 0 LOW schreiben. > Das war der Fehler. > Jetzt funzt das. :-) Der Tag ist gerettet. > Über den Pfad finde ich dann auch weitere Erklärungen > auf der arduino.cc Seite. Immer gut NICHT zu wissen warum etwas funktioniert
:
Bearbeitet durch User
Jetzthabensieihn I. schrieb: > Arduino F. schrieb: >> Hier ... > > Danke, allerdings verstehe ich das nicht. > Ist ja ein ganz anderer Ansatz. > Woher kennst Du die Begriffe zum Programmieren > und deren Funktion? Was du (und auch ich) verwende(st) ist C++. Dazu gibts reichlich im Internet. Arduino ist übrigens gerade bei C++11 angekommen. Angefangen, habe ich übrigens mit Büchern, und so... --- > anderer Ansatz Klar. Dein 3 tausender Delay wird dir noch das Genick brechen. Jetzthabensieihn I. schrieb: > Wenn da Jemand einen link kennt, bitte zeigen Zu while: http://en.cppreference.com/w/cpp/language/while
Jetzthabensieihn I. schrieb: > Jetzt funzt das. Tut es leider nicht. Hatte statt while, if geschrieben in 005. Damit geht es bedingt. Arduino F. schrieb: > Zu while Absolut unverständlich für mich. Ich schaue mich mal auf der arduino Seite um. Wenn ich damit nicht klar komme probiere ich mal minibloq. Darauf bin ich zufällig bei youtube gekommen. LG old.
Jetzthabensieihn I. schrieb: > Arduino F. schrieb: >> Zu while > > Absolut unverständlich für mich. Ok, das kann ich nachvollziehen, auf der Seite sieht das auf den ersten Blick etwas viel aus. Wenn man das mit Mathematik vergleicht, hast du dich da quasi von der Addition erschrecken lassen. > Ich schaue mich mal auf der arduino Seite um. Dann hier https://www.arduino.cc/en/Reference/While
Klugscheisser schrieb: > Um sie zu verlassen, muss Du "Schalter" > in der Schleife auf einen Wert ungleich 1 umstellen. Ja, ich habe ihn um eins erniedrigt Schalter --; und komme raus. Jetzt habe ich die ino falsch bezeichet, sollte 006 sein, egal. Ich hoffe mal da raucht nichts ab, wenn ich im Programm Schalter ++; mache. Arduino F. schrieb: > Dein 3 tausender Delay wird dir noch das Genick brechen. Knack. Ich muss mal zusehen, dass er auf die fallende Flanke in while kommt. LG old. @Moderation: Bitte mal retriggerbares in der Überschrift vom Startbeitrag setzen.
Jetzthabensieihn I. schrieb: > Knack. > Ich muss mal zusehen, dass er auf die fallende Flanke > in while kommt. Tipp: Suche das Arduino Beispiel "BlinkWithoutDelay" Da findest du die Lösung für dein Delay Problem.
Jetzthabensieihn I. schrieb: > Klugscheisser schrieb: >> Um sie zu verlassen, muss Du "Schalter" >> in der Schleife auf einen Wert ungleich 1 umstellen. > > Das verstehe ich leider nicht. Bitte etwas ausführlicher > erklären. Schalter = digitalRead(InputPin); while (Schalter == 1) { digitalWrite(rot,HIGH); digitalWrite(gruen,LOW); delay(3000); digitalRead(InputPin); } OK, Versuch du gehst in den Supermarkt und willst Kaffe, fragst vor dem Drehkreuz die Kassiererin in welchem Regal -> diese Info ist dein (Schalter == 1) Solange du diese Info hast und keine neue Info anforderst schickt dich diese Schleife while (Schalter == 1) immer ums Kaffeeregal rum, wie sollst du da wieder rauskommen wenn du nicht mal neuere Infos bestellst, also den Schalter in deinem im Kreislaufen neu befragst! die weitere Abfrage ob der Schalter immer noch 1 ist muss natürlich in die Schleife damit du raus kommst.
Joachim B. schrieb: > digitalRead(InputPin); siehe 003.ino In der Schleife ist der Schalterzustand parameter. Deshalb ist das sinnlos den Abzufragen. Du muss Dich da raus rechnen, siehe Beitrag: Jetzthabensieihn I. schrieb: > und komme raus So erkläre ich mir das. ___________________________________________ Arduino F. schrieb: > Tipp Danke, ich befasse mich jetzt erstmal mit den Bool'schen Operatoren. LG old.
eigentlich wollte ich den Spielverderber machen. Aber ich glaube, der TO braucht braucht so langsam doch einen deutlicheren Hinweis... Jetzthabensieihn I. schrieb: > In der Schleife ist der Schalterzustand parameter. > Deshalb ist das sinnlos den Abzufragen. Du sollst den Schalterzustand innerhalb der Schleife nicht abfragen, du sollst ihn aktualiseren! (Damit die Abfrage der Schleifenbedingungen mitkriegen kann, wenn sich der Zustand des Schalters wieder ändert) Mach aus dem Schalter = digitalRead(InputPin); Serial.println(Schalter,DEC);
1 | while (Schalter == 1) |
2 | {
|
3 | digitalWrite(rot,HIGH); |
4 | digitalWrite(gruen,LOW); |
5 | delay(3000); |
6 | digitalRead(InputPin); //in dieser Schleifer bleibt der Wert von |
7 | //Schalter konstant. Die Schleife kann nie
|
8 | //verlassen werden
|
9 | }
|
bitte einfach mal ein
1 | Schalter = digitalRead(InputPin); |
2 | Serial.println(Schalter,DEC); |
3 | |
4 | while (Schalter == 1) |
5 | {
|
6 | digitalWrite(rot,HIGH); |
7 | digitalWrite(gruen,LOW); |
8 | delay(3000); |
9 | Schalter = digitalRead(InputPin); |
10 | //in dieser Schleife wird der Zustand des Schalters bei jedem
|
11 | //Schleifenadurchlauf neu abgefragt.
|
12 | //Sobald Schalter auf 0 wechselt, wird die Schleife beendet
|
13 | }
|
Vergiss bitte nicht auch die Kommentare in deinen Code einzufügen (als Merkhilfe)
Achim S. schrieb: > der TO ist schon lange aus der while Schleife raus. Frage: wie gibt man mit der Tastatur logical or und xor ein? LG old.
Jetzthabensieihn I. schrieb: > Achim S. schrieb: >> der TO > > ist schon lange aus der while Schleife raus. Ja, und zwar mit einer völlig unsinnigen Methode: Jetzthabensieihn I. schrieb: > Ja, ich habe ihn um eins erniedrigt > Schalter --; > und komme raus. Warum machst du Sache nicht einfach richtig? Wäre das zu einfach?
Achim S. schrieb: > Aber ich glaube, der TO > braucht braucht so langsam doch einen deutlicheren Hinweis... Hatte er eigentlich schon: Md M. schrieb: > Schalter = digitalRead(InputPin); > digitalRead(Schalter); > > Siehst du die Unterschiede? Jetzthabensieihn I. schrieb: > Frage: > wie gibt man mit der Tastatur logical or und xor ein? Wie schon gesagt: Md M. schrieb: > Klingt als bräuchtest du erstmal einen kleinen C-Grundlagen bzw. > algemein einen Programmier-Crashkurs. http://www2.informatik.uni-halle.de/lehre/c/c_operat.html Logische und bitweise Operatoren.
Jetzthabensieihn I. schrieb: > Frage: > wie gibt man mit der Tastatur logical or und xor ein? Md M. schrieb: > http://www2.informatik.uni-halle.de/lehre/c/c_operat.html > Logische und bitweise Operatoren. Mit Copy und Paste von da. Danke. LG old.
Jetzthabensieihn I. schrieb: > Bitte um Hilfe beim programmieren. > Mit while komme ich nicht klar. > Wenn ich den Schalter HIGH mache geht er in die while > Schleife. Mache ich den LOW kommt er da leider nicht > mehr raus. > LG > old. das wolltest DU, den Schalter befragen bei HIGH rein in die while Schleife! den Schalter befragen und bei LOW raus! Jetzthabensieihn I. schrieb: > Joachim B. schrieb: >> digitalRead(InputPin); > > siehe 003.ino > > In der Schleife ist der Schalterzustand parameter. > Deshalb ist das sinnlos den Abzufragen. > Du muss Dich da raus rechnen, siehe Beitrag: > LG > old. while (Schalter == HIGH) { digitalWrite(Schalter,HIGH); digitalWrite(rot,HIGH); digitalWrite(gruen,LOW); delay(3000); Schalter --; } deswegen ist dieses falsch! Du befragt den Schalter und gehst bei HIGH rein, soweit OK. Nun befragst du aber in der WHILE Schleife den Schalter nicht sondern vergisst was die Frage am Anfang war und das ist nicht gleich deiner ersten Forderung! Es ist ein Unterschied ob der Schalter LOW wird oder ob man den "gemerkten" Schalterzustand vergisst oder sich falsch erinnert.
ja ne is klar wer Gedankenfehler aufzeigt bekommt ein negativ reingewürgt? echt jetzt? Die Forderung war wenn der Schalter wieder LOW wird, das ist aber nicht der Fall wer den gemerkten Schalterzustand einfach negiert! Das hat mit Schalterzustand nichts zu tun. Jetzthabensieihn I. schrieb: > Wenn ich den Schalter HIGH mache geht er in die while > Schleife. Mache ich den LOW kommt er da leider nicht > mehr raus. so geht das, sagten auch andere: Achim S. schrieb: > while (Schalter == 1) > { > digitalWrite(rot,HIGH); > digitalWrite(gruen,LOW); > delay(3000); > Schalter = digitalRead(InputPin); > //in dieser Schleife wird der Zustand des Schalters bei jedem > //Schleifenadurchlauf neu abgefragt. > //Sobald Schalter auf 0 wechselt, wird die Schleife beendet > } das hatte ich auch versucht zu erklären, aber OK
Jetzthabensieihn I. schrieb: > Habe ich das nicht in 003 getan? > Auch digitalRead(Schalter); funktioniert nicht, > siehe Anhang 004. while (Schalter == 1) { digitalRead(Schalter); digitalWrite(rot,HIGH); digitalWrite(gruen,LOW); digitalRead(Schalter); delay(3000); digitalRead(Schalter); } du verstehst immer noch nicht vor while: Schalter = digitalRead(InputPin); ^Merker^.........^Schalter^ while (Schalter == 1) solange Merker ==1 in der while digitalRead(Schalter); schick der Schalter kann sich ändern, der Merker wird nicht verändert es fehlt: Schalter = digitalRead(InputPin); ^Merker^.........^Schalter^ und solange der Merker (Schalter) nicht durch den digitalRead(InputPin) geändert wird: while (Schalter == 1)
du könntest dir den Merker Schalter auch sparen wenn du gleich in der while abfragst, while( digitalRead(InputPin)== 1 ) { digitalWrite(rot,HIGH); digitalWrite(gruen,LOW); delay(50); // und dazu entprellst bis der Schalterzustand stabil wird } // und danach das low wider entprellst do {delay(50); // und dazu entprellst bis der Schalterzustand stabil wird }while( digitalRead(InputPin)==1 ); bevor es in eine neue Runde geht
:
Bearbeitet durch User
Joachim B. schrieb: > while( digitalRead(Inpu Das digitalRead über dem while war die Ursache. Jetzt sehe ich aber keinen Unterschied zu if. Ich muss das aber noch genauer untersuchen. Diese Lösung muss ich mal nachvollziehen: Beitrag "Re: Arduino UNO etriggerbares Monoflop if while" LG old.
Jetzthabensieihn I. schrieb: > Das digitalRead über dem while war die Ursache. nicht nur, auch deine ganzen vorigen Abfragen es ist halt ein Unterschied ob ich mit dem Finger teste ob die Herdplatte heiss ist ( Schalter = digitalRead(InputPin); ) ^ Finger.......^ Herdplatte = heiss und solange Finger aua (egal ob die Herdplatte an ist oder nicht) ich dann heule und wenn der Finger nicht mehr weh tut weiter mache, (egal ob die Herdplatte noch an ist)..... oder ob ich bevor ich weiter mache noch mal den Finger auf die Herdplatte lege > Jetzt sehe ich aber keinen Unterschied zu if. das wird der Compiler schon optimierend fast gleichwertig übersetzen WENN es das gleiche meint.
Jetzthabensieihn I. schrieb: > Diese Lösung muss ich mal nachvollziehen: > Beitrag "Re: Arduino UNO etriggerbares Monoflop if while" Wenn dir daran etwas unklar ist, dann kann ich dir sicherlich die passenden Stichworte für Google liefern.
Ha! Genau das Richtige für mich: www.ov-meschede.de/workshop/Arduino%20Programmierhandbuch.pdf Jetzthabensieihn I. schrieb: > ich befasse mich jetzt erstmal mit den > Bool'schen Operatoren. Die UND Verknüpfung mit Variablen steht auch schon. Macht mir Spaß der Arduino. :-) LG old.
Jetzthabensieihn I. schrieb: > www.ov-meschede.de/workshop/Arduino%20Programmierhandbuch.pdf So wird ein Link draus: http://www.ov-meschede.de/workshop/Arduino%20Programmierhandbuch.pdf scheint leicht verdaubare Kost zu sein, dazu in deutscher Sprache, was dem deutschsprachigem Fremdsprachabstinenzler entgegen kommt (wobei mein Englisch auch nur für's Nötigste reicht - ohne Google wäre ich echt arm dran ;)) MfG
Jetzthabensieihn I. schrieb: > Macht mir Spaß der Arduino. :-) Endlich hat hier mal jemand begriffen, wozu Arduino gemacht ist.
Md M. schrieb: > wozu Arduino gemacht ist Beitrag "Re: Elektrische Rollosteuerung" Wenn ich alle logischen Verknüpfungen in Griff habe, kann ich den Arduino da schon einbauen. Das Hardwaremonoflop und die Endlagenschalter werden dann mit dem Programmierfortschritt entfernt. Da das CD4541 ja vorhanden ist, hat das Softwaremonoflop hier keine Eile. LG old.
Jetzthabensieihn I. schrieb: > Ha! Genau das Richtige für mich: > www.ov-meschede.de/workshop/Arduino%20Programmierhandbuch.pdf Liegt bei mir seit 2015 auf der Festplatte, mit sowas und einigen Schulscripten (per Google gefunden) habe ich am ersten Uno Blinkeleds, Drehpoti, Taster ... bespielt. Ich hatte zwar ein konkretes Projekt im Auge, weiß aber aus langjähriger Erfahrung, dass es besser ist, sich erstmal Grundlagen ohne direktes Gesamtziel zu erarbeiten. Ich habe auch schon stundenlang eigene Fehler *) gesucht, glaube aber, dass ich damit schneller am Ziel war als meine Ergüsse in Foren zu posten. *) Geschweifte Klammern und Semikolon sind meine Feinde. > Macht mir Spaß der Arduino. :-) Das macht er in der Tat, sogar süchtig. Patrick J. schrieb: > scheint leicht verdaubare Kost zu sein, dazu in deutscher Sprache, was > dem deutschsprachigem Fremdsprachabstinenzler entgegen kommt (wobei mein > Englisch auch nur für's Nötigste reicht - ohne Google wäre ich echt arm > dran ;)) Mein Englisch reicht, mit Servicetechnikern per Telefon zu sprechen - dennoch bevorzuge ich Deutsche Unterlagen, die Muttersprache geht immer noch am besten. Jetzthabensieihn I. schrieb: > Da das CD4541 ja vorhanden ist, hat das Softwaremonoflop > hier keine Eile. Dafür schäme Dich!
Manfred schrieb: > Jetzthabensieihn I. schrieb: >> Da das CD4541 ja vorhanden ist, hat das Softwaremonoflop >> hier keine Eile. > Dafür schäme Dich! Warum? Manfred schrieb: > Ich habe auch schon stundenlang eigene Fehler *) gesucht, glaube aber, > dass ich damit schneller am Ziel war als meine Ergüsse in Foren zu > posten. Habe ich inzwischen auch gemerkt. Im Programmierbereich des Forums ist die Hilfsbereitschaft nicht sonderlich ausgeprägt. Wenn Du aber eine Frage stellst und nach stundenlanger Suche die Lösung einstellt, hilfst Du damit anderen Hilfesuchenden. Eine Gute Tat halt. LG old.
Jetzthabensieihn I. schrieb: >>> Da das CD4541 ja vorhanden ist, hat das Softwaremonoflop >>> hier keine Eile. >> Dafür schäme Dich! > Warum? Das bedeutet doch, dass Du aufgegeben hast. Es ist keine Schande, an einem Stück Software zu verzweifeln, aber zumindest ich kann mir selbst gegenüber nur schwer akzeptieren, etas abzubrechen. >> Ich habe auch schon stundenlang eigene Fehler *) gesucht, glaube aber, >> dass ich damit schneller am Ziel war als meine Ergüsse in Foren zu >> posten. > Habe ich inzwischen auch gemerkt. > Im Programmierbereich des Forums ist die Hilfsbereitschaft > nicht sonderlich ausgeprägt. Wenn Du selbst einmal versuchst, fremden Programmcode zu verstehen und zu verändern, wird Dir klar, warum das so ist.
Manfred schrieb: > Das bedeutet doch, Wenn ich alle logischen Verknüpfungen in Griff habe, kann ich den Arduino da Beitrag "Re: Elektrische Rollosteuerung" schon einbauen. Das Hardwaremonoflop und die Endlagenschalter werden dann mit dem Programmierfortschritt entfernt. Da das CD4541 ja vorhanden ist, hat das Softwaremonoflop hier keine Eile. LG old.
Arduino F. schrieb: > Suche das Arduino Beispiel "BlinkWithoutDelay" Das ist ein guter Tipp! Nach einigen Experimenten konnte ich zuerst die LED über einen Schalter verzögert schalten. Dann die Verzögerungszeiten für das Ein- und Ausschalten separat einstllen. Für meine Anwendung Sonnenschutzrollo Beitrag "Re: Elektrische Rollosteuerung" ist dieser Sketch sehr geeignet, weil ich eine Einschaltverzögerung z.B. eine Minute und eine Ausschaltverzögerung z.B. 30 Minuten einstellen kann. Das ist mehr als das eine Hardware-Monoflop kann. Damit der Sketch für Anfänger wie mich nachvollziehbar ist, habe ich einige Kommentare dazu geschrieben. Möge er dem Nächsten viele Stunden Arbeit ersparen. Zum Ansehen auf die Codeansicht klicken. https://www.mikrocontroller.net/attachment/highlight/330247 LG old.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.