Forum: Mikrocontroller und Digitale Elektronik RGB Led ansteuern und mit Taster Farbe ändern


von Minze F. (doenerfresh)


Lesenswert?

Hallo erst mal!

Ich möchte mit einem mega8 eine RGB Led ansteuern jetzt habe ich 
volgendes Problem:

ich habe ein Blinklicht bei dem ich mit einem Taster verschieden Farben 
auswählen kann. Leider habe ich eine ich das Polling verfahren genommen 
und jetzt ist es so das der Taster mal geht und mal nicht. Hier das 
Programm in Basic:

'Erzeugt ein Blinklicht und wechselt die Farbe bei Tastendruck zwischen 
RGBCMY

Config Portc.5 = Output
Config Portc.4 = Output
Config Portd.5 = Output
Config Portd.4 = Input
Config Portd.3 = Input

Rot Alias Portc.4                                           'Rot
Gruen Alias Portd.5                                         'Gruen
Blau Alias Portc.5                                          'Blau
Taster2 Alias Pind.3

Dim A As Byte
Dim B As Integer

Config Debounce = 15



'Hauptprogramm
Do
   Gosub Tasterabfrage
   If A > 6 Then A = 1
   Select Case A
   Case 1 : Gosub Rot1
   Case 2 : Gosub Gruen1
   Case 3 : Gosub Blau1
   Case 4 : Gosub Cyan1
   Case 5 : Gosub Magenta1
   Case 6 : Gosub Yellow1
   End Select
Loop
End

Tasterabfrage:
Debounce Taster2 , 1 , Aplus1 , Sub
Return

Aplus1:
Incr A
Return

Rot1:
Incr B
Set Rot
Reset Rot
Return

Gruen1:

Set Gruen
Waitms 500
Reset Gruen
Waitms 500
Return

Blau1:

Set Blau
Waitms 500
Reset Blau
Waitms 500
Return

Cyan1:
Set Blau
Set Gruen
Waitms 500
Reset Blau
Reset Gruen
Waitms 500
Return

Magenta1:
Set Rot
Set Blau
Waitms 500
Reset Rot
Reset Blau
Waitms 500
Return

Yellow1:
Set Rot
Set Gruen
Waitms 500
Reset Rot
Reset Gruen
Waitms 500
Return

hat mir jemand eine bessere Lösung. Denn die 500ms Wartezeit sind vom zu 
lange, dass der Taster bei jedem druck reagiert.

Dankschee für eure hilfe im Vorraus!

von Christoph S. (mixer) Benutzerseite


Lesenswert?

Hallo,

nimm hald einfach n timer, dann kannst du den taster während der 
warteschleife abfragen!!

MFG Mixer

P.S. Andere Sprache wär au net schlecht!

von Düsentrieb (Gast)


Lesenswert?

ich hab ne rgb ansteuerung gemacht, die stufenlos die farbe ändert, ala 
regenbogen :-)
wenns dich interessiert...is aber asm

von Minze F. (doenerfresh)


Lesenswert?

Dankschee für eure schnellen Antworten! Jedoch haben die mich leider 
nicht so weitergebracht.

Einen Farbwechsler habe ich schon selbst mit einer PWM realisiert. 
Trotzdem danke. Schaut schon nett aus :-)

Ich denke ich sollte diesen Waitms befehl irgend wie durch eine Variable 
ersetzten die ich hochzählen lasse. So könnte ich doch immer hin und her 
springen. Oder nicht?

Hat mir dafür jemand eine Lösung?

Gruß Minze

P.S. Andere Sprache geht nicht weil ist nicht!

von Falk B. (falk)


Lesenswert?

@ Minze Fresh (doenerfresh)

>Ich denke ich sollte diesen Waitms befehl irgend wie durch eine Variable
>ersetzten die ich hochzählen lasse. So könnte ich doch immer hin und her
>springen.

Ja.

>Hat mir dafür jemand eine Lösung?

Ein Timer.

AVR-Tutorial: Timer

Geht auch mit BASCOM sehr gut.

>P.S. Andere Sprache geht nicht weil ist nicht!

Wozu? BASCOM ist gut!

MfG
Falk

von Martin K. (spyro07)


Lesenswert?

Düsentrieb wrote:
> ich hab ne rgb ansteuerung gemacht, die stufenlos die farbe ändert, ala
> regenbogen :-)
> wenns dich interessiert...is aber asm

Würde mich echt interessieren, könntest es ja vielleicht in die 
Codesammlung stellen?

von Minze F. (doenerfresh)


Lesenswert?

Hallo Falk!

Gut dann werde ich mich wohl in diese Timergeschichte einlesen müssen.
Ich habe ja schon für die PWM den Timer0 benutzt. Da kann das auch nicht 
viel anderst gehen. Oder?

BASCOM ist sehr gut!

Ich bin überhaupt erst seit 2 Wochen am Programmieren und hab vorher nix 
gekonnt und hab jetzt immerhin schon ein paar kleine Programme in BASCOM 
zum laufen bekommen. Wenn mein Programm läuft wie es sein soll werde ich 
es euch stolz Präsentieren.

Wer mir noch einen Schups in die richtige Richtung geben kann! Gerne!

Gruß Minze

von Kai (Gast)


Lesenswert?

Habe mein Programm letzlich in die Codesammlung geladen, schau mal nach 
TLC5922, dafür brauchst du dann auch keine PWM mehr und hast den 
Controller entlastet. Das Programm kann bisher faden und ein Lauflicht 
ist auch integriert
Gruß
Kai

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
Noch kein Account? Hier anmelden.