Forum: Mikrocontroller und Digitale Elektronik PMW Led und WS2812 am Atmega328P


von Bruno I. (bjnas)


Lesenswert?

Hallo

Wie im Titel genannt läuft ein weisse Led Strip als Leselampe zusammen 
mit WS2812 Leds auf dem gleichem Nano paralell.

Nun ist immer ein Flackern auf den weissen Led sichtbar beim ändern der 
WS2812 Leds. Ist ja klar da die weissen Leds im Timer1 ISR laufen und 
das programmieren der WS2812 ohne Unterbruch durchläuft.

Meine Idee ist es für die weissen Leds ein PMW IC über I2C anzusteuern. 
Der dimmt die Leds dann eigenständig bis zum nächsten Befehl.

Die Frage ist nun gibt es passende ICs für zB. 4 Kanäle (Warm und Kalt 
Weiss) oder gibt es bessere Lösungen (schnelleren MCU)?

von Sebastian W. (wangnick)


Lesenswert?

Bruno I. schrieb:
> oder gibt es bessere Lösungen

Die PWM-Funktionen des Atmega328P benutzen? Du scheinst ja für die 
weissen Leds das Rechtecksignal händisch in der Timer 1 ISR zu 
generieren, oder?

LG, Sebastian

von C-hater (c-hater)


Lesenswert?

Bruno I. schrieb:

> Ist ja klar da die weissen Leds im Timer1 ISR laufen und
> das programmieren der WS2812 ohne Unterbruch durchläuft.

Da stimmt was am Design der Software nicht. Die Timer sind absolut in 
der Lage, eine unterbrechungsfreie PWM zu liefern, ganz egal, womit sich 
die MCU sonst gerade noch beschäftigt.

Mun muss die LEDs halt nur an genau die Ausgänge hängen, für die der 
verwendete Timer das leisten kann. Und dem Timer sagen, dass er in 
Hardware an diesem Pin genau dieses Signal liefern soll.

Und keine keine Arduino-Scheisse verwenden, die diese Sache für Idioten 
"wegabstrahiert"...

von Carsten-Peter C. (carsten-p)


Lesenswert?

Hallo, Timer 1 und Timer 2 können Hardware PWM. Damit würde es 
eigentlich flackerfrei laufen. Wenn Du einen Dimmer über I2C ansprechen 
möchtest, ist dieser Dimmer vielleicht was für Dich.
Beitrag "4-fach Dimmer 2Stromstoßschalter Schaltuhr"
Der hat vier Dimmer, die sich über Taster und über I2C ansprechen 
lassen.
Gruß Carsten

von Helmut H. (helmuth)


Lesenswert?

Bruno I. schrieb:
> gibt es passende ICs für zB. 4 Kanäle

PCA9685 16 Kanäle 40-1000 Hz

von C-hater (c-hater)


Lesenswert?

Helmut H. schrieb:
> Bruno I. schrieb:
>> gibt es passende ICs für zB. 4 Kanäle
>
> PCA9685 16 Kanäle 40-1000 Hz

Nur Arduidioten brauchen einen zusätzlichen IC für eine Sache, die die 
MCU locker alleine handlen kann.

von Stefan F. (Gast)


Lesenswert?

C-hater schrieb:
> Arduino-Scheisse ... für Idioten

C-hater schrieb:
> Nur Arduidioten brauchen einen zusätzlichen IC

Ich weiß, wo du Nachholbedarf hast.

Beitrag #7363876 wurde vom Autor gelöscht.
von Bruno I. (bjnas)


Lesenswert?

Sorry für späte Melden.

Danke mal für die Gedankenansätze,  Und ja, das Programm War früher auf 
dem Atmega8 gelaufen. Da habe ich mich zuwenig mit den neuen Funktionen 
des Atmega328p befasst. Werde ich sofort nachholen und die PMW Pins 
anschauen. Und danke auch für die Tips der ICs.

Und zweitens ja, aus Bequemlichkeit bin ich schon länger vom AVR Studie 
zur Arduino IDE gewechselt. Kleine Sachen sind einfach schneller gemacht 
so.

von Rainer W. (rawi)


Lesenswert?

Bruno I. schrieb:
> Ist ja klar da die weissen Leds im Timer1 ISR laufen und
> das programmieren der WS2812 ohne Unterbruch durchläuft.

Was haben die weißen LEDs in der ISR zu suchen?
Die gehören an den HW-Ausgang. Sonst flackert die weiße Kette während 
der WS2812B-Datenübertragung.

von Bruno I. (bjnas)


Lesenswert?

Sorry für die späte Antwort.

Habs geändert und funktioniert wunderbar ohne Flackern. Manchmal 
brauchts ein Schubs in die richtige Richtung und schon gehts. Brauche 
nun nur wieder eine neue Platine da natürlich alle Licht Ausgänge an den 
falschen Pins sind.

Das kleinste Problem, wir haben Zeit.

Danke für die Tipps und schöne Ostern. Bruno

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.