mikrocontroller.net

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


Autor: Minze Fresh (doenerfresh)
Datum:

Bewertung
0 lesenswert
nicht 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!

Autor: Christoph S. (mixer) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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!

Autor: Düsentrieb (Gast)
Datum:

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

Autor: Minze Fresh (doenerfresh)
Datum:

Bewertung
0 lesenswert
nicht 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!

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Martin K. (spyro07)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Minze Fresh (doenerfresh)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Kai (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.