Mehrere Sachen gleichzeitig gehen nur ohne "delay" im Sketch - das erfordert aber dann eine andere Programmierlogik. Je früher man damit anfängt, desto besser .
Viele Grüße, Bodo
Die Freiheit des Menschen liegt nicht darin, dass er tun kann, was er will, sondern dass er nicht tun muss, was er nicht will. (Jean-Jacques Rousseau)
Auch ich bin jemand, der das Blink without Delay bis heute mit wirklich geschnallt hat. Ich verstehe den Grund und ich verstehe auch den Ablauf. Bis heute habe ich aber nicht verstanden, welcher Befehl was auslöst, und wenn ich die Zusammenhänge nicht verstehe, bekomme ich die Befehle auch nicht an die richtige Stelle.
Ich habe aber trotzdem eine Ampelsteuerung mit mehreren Abbiegespuren und Blinklichtern zusammen geschustert und das alles nur mit Delay. Man muss nur alles gleichzeitig der Reihe nach programmieren und damit das auch halbwegs praktikabel ist, sollte man sich den Guttenberg verinnerlichen.
So genug der dummen Sprüche.
Was ich damit eigentlich sagen möchte:
Wenn die Ampel z.B. von grün über gelb nach rot springen soll, dann sagt man einfach grün aus und gelb an. Dann die Blinklampe an und wieder aus und vielleicht noch mal an und aus und dann gelb aus und rot an. Und dann wieder die Blinklampe an und wieder aus und das alles mehrmals.
So bastel ich mir den Ablauf zusammen. So schreibe ich die Befehle meist nur einmal und dann tritt Copy and Paste in Aktion.
Natürlich braucht so ein Sketch ein bisschen mehr Speicherplatz, als wenn ein Profi den programmiert. Aber was soll's. Wem interessierts? Auf so 'nem Arduino ist genug Speicherplatz und hinterher sieht doch keiner den Sketch .
Dann noch ein kleiner Hinweis: Fertige Ampeln schalten über Minus und haben daher einen gemeinsamen Pluspol. Wenn man nun daher den Rückleiter nicht an GND sondern an die 5Volt anklemmt, leuchten die LEDs bei Low und sind bei High aus. Und damit ich dann beim Ablauf besser durchblicke, habe ich daher an als Low und aus als High definiert. Somit brauche ich im Sketch nicht mehr High und Low schreiben, sondern schreibe einfach an oder aus.
MfG Oliver
PS: Sonntag wird mir wegen dieser Sprüche Bodo vermutlich wieder die Leviten lesen.
die MobaTools (die Suchfunktion des Forums bringt Dich dorthin) von Franz-Peter (MicroBahner) stellen die Klasse "EggTimer" bereit, damit kannst Du Abläufe Millisekunden-genau steuern. Wie weiter oben geschrieben, erfordert das aber eine gänzlich andere Struktur des Programms als bei der Benutzung von delay ().
Da ich nicht weiß, was Du genau erreichen willst (Ampel und Blinklicht im Zusammenhang machen mich ehrlich gesagt etwas ratlos), kann ich Dir leider auch keine weitergehende Hilfe geben. Mit etwas mehr Info wäre das schon möglich...
Vor ein paar Tagen habe ich ein Video in meinem Thread hochgeladen, in dem 10 LEDs in einer Gebäudebeleuchtung zufällig angesteuert werden. Und das auf einer viiiiel schwächeren Hardware als sie ein Uno zur Verfügung stellt. Vielleicht überzeugt es Dich davon, künftig auf delay () zu verzichten
schau bitte mal nach bei viewtopic.php?f=21&t=127532&start=75#p1433710 - Bahnübergang mit Schranke und Wechselblinker. Die Ablaufsteuerung ist da sehr verständlich geschrieben, wie ich finde. Den Wechselblinker-Teil kannst Du als Basis nehmen und die Ampelsteuerung sollte nach demselben Schema funktionieren. Ein wenig Gehirnschmalz mußt Du allerdings investieren
Sorry, momentan geht's nur ganz kurz, muß gleich aus dem Haus...
Zitat Ich würde gerne eine Andreaskreuz Schaltung (Also eine Blinkschaltung ) und eine normale Straßenampel (rot,gelb,grün) auf einem Arduino steuern
Hallo Thomas, für so eine 'einfache' Aufgabe ( aus Arduino-Sicht ) 2 UNO's zu verwenden wäre eigentlich sehr schade. Die Arduinos würden sich nur langweilen und in delay-Aufrufen Däumchen drehen . Eigentlich ist das auch gar nicht sooo schwierig - man muss nur das Prinzip der Ablaufsteuerung bzw. eines Zustandsautomaten und die Umsetzung auf dem Arduino einmal kapiert haben. Dann öffnen sich ungeahnte Möglichkeiten mit dem Arduino. In dem von Dieter verlinkten Post habe ich das anhand von einer Bahnschranke versucht zu erklären. Aber wahrscheinlich ist es für den Einstieg doch schon zu komplex. Für den Einstieg sollte man sich wohl erstmal auf den reinen Wechselblinker beschränken. Ich überlege gerade, dein Beispiel mal in einem eigenen Thread für ein kleines Tutorial zum Zustandsautomaten auf dem Arduino zu nutzen. Ich denke, Du bist ja nicht der einzige, der auf dem Arduino dieses Problem mit den Zeitsteuerungen ohne delay() hat. Vielleicht würde das doch dem einen oder anderen helfen, den Arduino besser zu nutzen .
Zitat Ich überlege gerade, dein Beispiel mal in einem eigenen Thread für ein kleines Tutorial zum Zustandsautomaten auf dem Arduino zu nutzen. Ich denke, Du bist ja nicht der einzige, der auf dem Arduino dieses Problem mit den Zeitsteuerungen ohne delay() hat. Vielleicht würde das doch dem einen oder anderen helfen, den Arduino besser zu nutzen .
Hallo Franz –Peter
Würde ich mich sehr darüber freuen wem du anhand von meinem Beispiel ein Tutorial erstellen würdest. Ich habe es heute Nachmittag noch einmal versucht, aber als ahnungsloser „Elektroniker „ flaster: sind das zur Zeit alles noch böhmische Dörfer
Das Beispiel mit der Schranke und dem Wechselbinker lässt sich für mich nicht so einfach umschreiben in ein Wechselblinker und eine Strassenampel wenn man die Befehle nicht richtig versteht