• 06.07.2025, 06:46
  • Register
  • Login
  • You are not logged in.

 

Dear visitor, welcome to Aqua Computer Forum. If this is your first visit here, please read the Help. It explains how this page works. You must be registered before you can use all the page's features. Please use the registration form, to register here or read more information about the registration process. If you are already registered, please login here.

hugoLOST

Foren-Inventar

Weiter Ardunio Hilfe

Sunday, January 3rd 2016, 10:48pm

Nabend,

Ich möchte gerne 3 LEDs (Weiß, Rot, Blau) in einer bestimmten reihenfolge blinken lassen.

Rot, Weiß, Weiß, Blau. Zwischen den LEDs 80ms Pause und am ende der Sequenz 3000ms Pause bevor sie wieder von vorne anfangen soll.

Das ganze bekomme ich mit delay auch hin aber es soll/muß in void_loop und dort werden aber noch 3 taster abgefragt. Mit delay im Code werden die Tasten leider nicht mehr abgefragt. Wie bekomme ich es nun ohne delay hin?

Grüße Dennis.

LotadaC

God

Monday, January 4th 2016, 12:54am

Mit Arduino und Deiner IDE kann ich Dir nicht weiterhelfen (da ich eher "normale" AVR und Assembler nutze), aber generell könntest Du quick'nDirty zum Beispiel einen Timer nutzen, der Dir 'ne geeignete Zeitbasis (könnten hier zB 40ms sein) generiert. Also der Timer erzeugt alle 40ms 'n IRQ, in der ISR hinterlegst Du Deinem Hauptprogramm 'n "40ms-sind-rum" Flag. Dein Hauptprogramm fragt regelmäßig das Flag ab, und zählt ggf einen 40ms-Zähler rauf (und löscht das Flag). Erreicht der Zähler die entsprechenden Werte, schaltest Du die LEDs um, und bei 75 (=3s)setzt Du den Zähler wieder auf 0 zurück.

Interessehalber: was'n das für'ne Schaltung? Dieweil 80ms is ja recht fix für's Auge...

(P.S.: Warteschleifen, in denen der Controller "auf der Stelle hüpft", sind natürlich generell nix für Anwendungen, wo mehrere Sachen quasi-Gleichzeitig erledigt werden sollen. Dazu zählt neben den reinen Zeitschleifen (tue zichtausendmal nix)

Source code

1
2
3
4
Einsprungpunkt:
INC Register
BREQ Einsprungpunkt
;hier geht's weiter, wenn Register übergelaufen ist
auch die Schleifen, die auf ein bestimmtes Ereignis warten (tue nix, bis Bein x Pegel y hat)

Source code

1
2
3
4
Einsprungpunkt:
SBIC Pinregister, Pinbit
RJMP Einsprungpunkt
;hier geht's weiter, wenn das Bein low ist
)

This post has been edited 1 times, last edit by "LotadaC" (Jan 4th 2016, 1:11am)

hugoLOST

Foren-Inventar

Monday, January 4th 2016, 1:44pm

Das ganze Projekt nutzt mehrere Ardunios und wird wenn es fertig ist ein Escape Room. Beim aktuellen Problem sollen die 3 LEDs in bestimmter Reihenfolge aufleuchten (kontinuierlich) da drunter sind 3 Taster die, die selbe Farbe wie die LEDs haben. Man muß die LED sequenz mit den Taster eingeben und dann bekommt man auf einem Display eine Zahl angezeigt die Teil des Zahlen Codes ist um die Tür zu öffnen. Display steht alles soweit mit einem weiteren Arduino. Dieser muß quasi bei erfolgreicher eingabe der sequenz nur ein Pin auf High Schalten.

drdeath

Senior Member

Sunday, February 28th 2016, 10:40pm

Tja, ich als Profi (pffffhihihi) würde das mit einem Timer machen und die Tasten per Interrupt abfragen, dann behalte ich den Takt bei, aber wie man das mit einem Arduino hinbekommt...
Hier geht's zum RGBAmp
Hinweis: Der RGBAmp stammt nicht von AC und wird nicht offiziell supported!
Note: The RGBAmp is not an AC product and isn't officially supported.