Forum: Mikrocontroller und Digitale Elektronik 12 kanal PWM?


von Michael P. (mpl)


Lesenswert?

Hi,

ich bin derzeit an ner LED Beleuchtung fürs Aquarium dran... die 
leuchtet nur abends zur Deko Zwecken wenn die Röhren aus sind.

jetzt hab ichn kleineres problem... da ich da verschiedene "effekte" 
hinzufügen möchte bräuchte ich nen 12 Kanal PWM der per I2C gesteuert 
werden kann auf attiny/atmega basis jetzt könnte ich

a) 3 attiny2313 (1 für 4 PWM's) nehmen
b) meinen gestern erhaltenen atmega1281 mit 12 PWM's nehmen (sehr 
ungern)
c) eventuell etwas mit den hier liegenenden Atmega644p/atmega32 
anstellen?
d) ???

der atmega1281 soll eigentlich als I2C master dienen und etliche 
kleinere controller verwalten... wie z.b. aquarien steuerungen (pH, 
Temperatur, Licht, Lüftung, Filter) Wetterstation, Wecker, LED zimmer 
beleutungen LCD'S usw... also so ne art Hausbus (Bascom) eventuell 
umstieg auf C je nach aufwand un "einlern zeit"

zur verfügung an unverbauten atmel produkten habe ich wie o.g.

3 x attiny2313
1 x atmega1281
2 x atmega644p
1 x atmega32
1 x hühnerfutter

mfg

von MaWin (Gast)


Lesenswert?

Eigentlich müsste ein ATTiny doch für alle 12 Kanäle a 8 bit ausreichen, 
du musst ihn halt in Assembler und nicht Bascom programmieren.

Da du ihn per I2C ansteueren willst, reichen die Pins, sie reichen nur 
nicht er auch noch das Bedieninterface sein soll.

von Michael P. (mpl)


Lesenswert?

hi,

okay also software PWM via attiny2313 =)

der attiny2313 hat doch aber nur einen 8bit counter... 12 prescaler ?

von Falk B. (falk)


Lesenswert?

@  Michael P. (mpl)

>jetzt hab ichn kleineres problem... da ich da verschiedene "effekte"
>hinzufügen möchte bräuchte ich nen 12 Kanal PWM der per I2C gesteuert
>werden kann auf attiny/atmega basis jetzt könnte ich

Viele Wege führen nach ROM. Soft-PWM oder ein TLC5922 oder einer 
seiner Brüder. Wenn du große Power-LEDs hast, brauchst du eine 
Konstantstromquelle fuer Power LED.

>3 x attiny2313

Reicht. Ist aber zu klein, wenn du dein anderes Zeug noch reinpacken 
willst (Flash 2k).

>1 x atmega32

Der reicht für alles.

MFG
Falk

von Michael P. (mpl)


Lesenswert?

Falk Brunner schrieb:
> Wenn du große Power-LEDs hast

sind 5mm ultrahell LED's

Falk Brunner schrieb:
> Ist aber zu klein, wenn du dein anderes Zeug noch reinpacken
> willst

der attiny2313 wird nur der PWM Treiber und die I2C Routinen haben

Falk Brunner schrieb:
> Der reicht für alles.

joa :D aber hat zu viele freie Pins dann

MaWin schrieb:
> musst ihn halt in Assembler

kann isch nischt :/

habs mir auch schon qualvoll beibringen wollen aber ging in die Hose und 
hat mich bestimmt 500blatt A4 gekostet :/

von Falk B. (falk)


Lesenswert?

@  Michael P. (mpl)

>> Wenn du große Power-LEDs hast

>sind 5mm ultrahell LED's

Das sind "normale" LEDs mit 20mA. High Power geht ab 100mA++ los.

>der attiny2313 wird nur der PWM Treiber und die I2C Routinen haben

Kann man machen, ist aber Overkill. Pack das mit in deinen "Haupt"AVR 
und gut. Dieses Multiprozessorgetue ist nix für Anfänger. Bringt mehr 
Ärger als Gewinn.

>joa :D aber hat zu viele freie Pins dann

Ach herje.

>> musst ihn halt in Assembler

Braucht man nicht. Siehe Artikel Soft-PWM.

MfG
Falk

von Karl H. (kbuchegg)


Lesenswert?

Michael P. schrieb:

> der attiny2313 wird nur der PWM Treiber und die I2C Routinen haben

Warum I2C

I2C ist gedacht für Kommunikation auf einer Platine. Also dort wo kurze 
Wege herrschen.

So wie ich das verstanden habe, hast du irgendwo eine Art Zentrale, von 
der aus (nicht nur) dein Aquarium gesteuert werden soll.

von MaWin (Gast)


Lesenswert?

> der attiny2313 hat doch aber nur einen 8bit counter

Der Counter ist doch sowieso nicht für Hawrdware-PWM tauglich,
du wirst die 12 Kanäle (PB0..PB7, PD0..PD3) schon in Software 
zusammenklackern, dann braucht man keinen Timer mehr.

Den einen Timer setzt man ein, damit man bei den 2 laufenden
Jobs (I2C und PWM) beim einen die Zeit des anderen
berücksichtigen kann, also als Synchronisierung des
Programms mit einem unveränderlichen Zeitpunkt.

Ohne Assembler tut man sich aber mit Sicherheit schwer,
schlisslich sind beide Jobs, I2C und PWM, vor allem
Bitklackerei, die am einfachsten in Assembler geht.

von avr (Gast)


Lesenswert?

Der Tiny2313 hat einen Vorteil, er hat UART.
Das sollte man (evtl. als RS485) nutzen.
Damit ist die Übertragung einfach und der Timer
kann als Zeitgeber für eine Soft-PWM verwendet werden.

Bei 12 LEDs a 20 mA ist der Tiny schon überfahren. Er darf
nur 200 mA. (Evtl. einige gegen GND andere gegen VCC)

avr

von Michael P. (mpl)


Lesenswert?

Karl heinz Buchegger schrieb:
> I2C ist gedacht für Kommunikation auf einer Platine. Also dort wo kurze
> Wege herrschen.


das wusste ich leider nicht... aber die paar meter wird es hoffentlich 
schaffen falls nicht müsste ich das ganze umdenken ala RS485 RFM12 für 
controller die weiter weg sind und I2C nicht mehr schaffen...

ich schau jetzt erstmal wieweit ich alles optimieren kann

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.