ich bin neu hier im Forum. Mein Name ist Moritz, ich bin 14 Jahre alt, komme aus dem Raum Stuttgart und bin beim Thema Arduino eher Einsteiger.
Jetzt mein Problem. Ich benutze seit einigen Monaten Arduino Nanos, um Lichtsteuerungen für RC-Cars zu erstellen. Dabei habe ich hauptsächlich Sketche von Freunden übernommen oder nur simple Sketche selber geschrieben. Doch jetzt will ich einen Sketch notgedrungen verbessern doch ich weiß nicht genau wie und brauche eure Hilfe. Ich will mit dem Sketch LEDs im Auspuff zum Blinken bringen, wenn ich vom Gas gehe. Dabei soll das Signal nicht über PulseIn ausgelesen werden sondern nur erkennen, wenn der Wert von meinem Kanal sich verringert. Ich dachte da an die Interruptfunktion, habe diese aber nach mehreren Foreneinträgen etc. immernoch nicht verstanden. Desweiteren soll dann die Anzahl und Länge der "Auspuffblitze" zufällig sein damit jeder Blitz anders ist als der vorherige. Bis jetzt ist das über Randomfunktionen gesteuert, die Zeitspannen für Delayfunktionen angeben. Währenddessen wird das ganze Programm angehalten. Das will ich durch millisfunktionen beheben, jedoch verstehe ich diese ebanfalls nicht. Auch noch sollen im wählbaren Abstand die Kanäle "blink1" und "blink2" entgegengestetzt blinken (wenn eine Kanal auf HIGH ist, ist der andere LOW). Dabei dachte ich ebenfalls an die millisfunktion.
Der Sketch ist, soweit er gerade ist angehängt.
Ich danke dafür dass ihr euch jetzt durch den Text gequält habt und würde mich über eure Hilfe riesig freuen.
porschemoritz:
... würde mich über eure Hilfe riesig freuen.
Die Idee, keine delays zu verwenden und statt dessen alles über millis() zu machen, ist manchmal sicher nicht verkehrt. Meiner Meinung nach ist es aber häufig schwer zu verstehen und für Anfänger nicht so gut geeignet. Man bekommt halt häufig das Problem gelöst, mehrere Sachen gleichzeitig laufen lassen zu wollen.
Was ich gerade nicht verstehe: Wie(so) möchtest Du ein einfaches Wechselblinken mit millis() lösen? Auf die Idee käme ich zumindest derzeit nicht. Ich würde eher etwas machen wie
lampe1=!lampe2
So klappt das zwar kaum, aber die Logik, die ich meine, kommt hoffentlich rüber.
Mir ist natürlich klar das die Funktionen schwer zu verstehen sind, jedoch habe ich gedacht, dass jemand mir diese halbwegs plausibel erklären kann oder mir evtl. sogar den Sketch umschreiben könnte;)
Deine Idee erscheint mir logisch,jedoch wäre mein Anliegen, alle Funktionen gleichzeitig zu haben, jedoch beim gegenseitigen Blinken zB auch die Dauer des jeweiligen Blinkzustandes evtl mit dem Blinken im Auspuff koppeln zu können, jedoch aber auch diese Einstellung nicht dauerhaft zu behalten sondern wieder ändern zu können. Ich hoffe ich konnte das jetzt halbwegs in Ordnung erklären.
ja ich habe "Blink without delay " schon gefunden. Ich habe auch schon manch andere Sketche schon ausprobiert, jedoch komm ich bei meinem Hauptproblem, dass ich das "Backfire mit millis steuern will, bei dem eben die Zeitabstände zufällig sein sollen. Das kann ich leider aus "blink without delay" nicht steuern, oder?
In Blink without delay steht long interval = 1000; als Wert, der nicht verändert wird. Wenn Du in Zeile 57 intervall mit einem Zufallswert füllst, ist das Blinken unregelmäßig.
danke für die Hilfe;)
Ich werde das die nächsten Tage mal ausprobieren und mich melden wenn es klappt. Noch eine Frage: Wie steuere ich den Kanal mittels Interrupt an? Wie müsste die entsprechende Stelle aussehen, wenn ein Interrupt ausgelöst werden soll, wenn sich ein Wert verringert?
Für das bisschen Geblinke braucht man keine Interrupts. Der Arduino ist schnell genug, das im laufenden loop zu machen. Und die meiste Zeit hat er sowieso nichts zu tun.