• 16.02.2019, 06:14
  • Registrieren
  • Anmelden
  • Sie sind nicht angemeldet.

 

Weiter Ardunio Hilfe

Sonntag, 3. Januar 2016, 22:48

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.
Intel I7 4790K@4,9GHz | Gigabyte G1.Sniper Z97 | 16GB Teamgroup Vulcano Red 1866MHz | Asus STRIX 1070TI STRIX Advanced 2012MHz/4400MHz | Crucial M500 480GB | Coolermaster Silentgold 800W

Montag, 4. Januar 2016, 00:54

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)

Quellcode

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)

Quellcode

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

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »LotadaC« (4. Januar 2016, 01:11)

Eheim1046->AD->CPU->NB->GraKa-APE240->AT AMD Sempron2500@2090MHz-K7VT4A+FSB333@380MHz-Maxtor80GB-Nvidia Geforce FX 5500

Montag, 4. Januar 2016, 13:44

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.
Intel I7 4790K@4,9GHz | Gigabyte G1.Sniper Z97 | 16GB Teamgroup Vulcano Red 1866MHz | Asus STRIX 1070TI STRIX Advanced 2012MHz/4400MHz | Crucial M500 480GB | Coolermaster Silentgold 800W

Sonntag, 28. Februar 2016, 22:40

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.