Hallo alle miteinander! Ich hab da mal 'ne Frage zur Leistungsfähigkeit eines Atmel-µC. Ich möchte eine Art "Stimmungs-Beleuchtung" für eine Modellbau-Ähnliche Umgebung bauen. Die Beleuchtung wird aus 4 "Mini-Scheinerfern" bestehen. Jeder Schweinwerfer enthält sechs SMD-LED's verschiedener Farben. Also insgesammt 24 LED's, die möglichst unabhängig von einander angesteuert werden sollen. Auf 12 würde ich mich auch noch einlassen. Um die gewünschte Stimmung zu erzeugen, sollen die LED's über PWM gedimmt werden können. Soweit so gut. Jetzt hat ja so ein µC nur eine begrenzte Anzahl an Hardware-PWM-Ports. Wie schätzt ihr die Changen ein, z.B. an einem ATMega8 fünf Ports über Soft-PWM zu betreiben und 1x den Hard-PWM? Hinzu kommt eine Kommunikation unter den µC's selbst. Machbar - schlecht - oder Katastrophe ??? Grüße Tacker
Zunächt einmal: 4 Scheinwerferchen ansteuern, so dass beliebige Farbe und Helligkeit möglich ist geht auch mit 12 PWMs (4 SW mal 3 LED´s, RGB) Benutze mal die Suchfunktion, da gab es schon Beiträge zu, das und mehr sollte ein ATmega8 ordentlich programmiert locker bewältigen können
Absolut machbar - bei einer Auflösung von 8 Bit kein Problem, darüber wird es schon enger. Hauptsache, der Controller hat genug freie Pins.
Du gehst ja schon den richtigen Weg, die Aufgabe auf mehrere µPs zu verteilen. Ob jetzt vier oder acht, das ist kostenmäßig ziemlich egal. Du brauchst allerdings keine Kommunikation untereinander, sondern nur einen 'master', der Befehle an die übrigen µPs sendet. Hierfür reicht ein einfaches Protokoll, was so aussehen könnte und über die UART oder SPI gehandhabt wird: 1.Byte Adresse '1' - '8', 2.-5. Byte Kanalwerte 1-4. Anschließend eine Pause, sodaß sich die Empfänger neu synchronisieren können. Man kann es auch eleganter machen, aber für diese Anwendung sehe ich keinen Bedarf.
ja, oder externe IC's: MAX6964, 17PWM-Ausgänge, je 4bit Auflösung PCA9634, 8PWM-Ausgänge, je 8bit Auflösung mit I2C ansteuerbar...
warum mehrere µCs verwenden? also ich schaff mit einem Tiny2313 bei 8MHz intern relativ locker 12 PWM Kanäle bei 8 Bit Auflösung. Einfach nen Timer nehmen, ein Register hochzählen und bei jedem Inkrement schauen ob der Wert für einen der Kanäle überschritten wurde, wenn ja -> Einschalten. Bei 255 alle wieder ausschalten. Fertig. So und ob ich nun 12 oder 24 oder was weiß ich wieviele Kanäle hab is der Routine ja relativ egal. Mega32 nehmen, der hat ja schon 4*8... 32 Pins. Einfach mal nachrechnen wie lang die Routine wird und dann schauen ob der µC das noch schafft. ich wette aber ja... PS: Mit dem Carry kann man lustig vergleichen und dann shiften ---> Int_Tov: push temp1 in temp1,sreg push temp1 clr temp1 cp CH4,Dimmvalue ror temp1 cp CH5,Dimmvalue ror temp1 cp CH6,Dimmvalue ror temp1 cp CH7,Dimmvalue ror temp1 cp CH8,Dimmvalue ror temp1 cp CH9,Dimmvalue ror temp1 cp CH10,Dimmvalue ror temp1 cp CH11,Dimmvalue ror temp1 out PortB,temp1 clr temp1 cp CH12,Dimmvalue ror temp1 cp CH2,Dimmvalue ror temp1 cp CH1,Dimmvalue ror temp1 cp CH3,Dimmvalue ror temp1 out PortD,temp1 inc Dimmvalue brne Nichtstun out PortD,null out PortB,null Nichtstun: pop temp1 out sreg,temp1 pop temp1 reti
ja, oder externe IC's (2): TLC5922 (8-Bit Graustufen) TLC5940 (12-Bit Graustufen + Dot-correction) externe ICs haben den Vorteil, dass keine Zusatztreiber notwendig und sie id.R. EMV-technisch wesentlich besser sind. Obige ICs können ürigens bis zu 89mA und bis zu 17V (falls Du mehrere LED in Serie schalten willst). 8 Bit Auflösung reichen Dir wahrscheinlich nicht - im unteren Bereich siehst Du dann schon deutliche "Treppenstufen". Gruß, Stefan
wenn man will kann man den timer ja gleich so laden dass er logarithmisch arbeitet... sprich den timer im CLC Mode betreiben und den Compare Wert bei jedem Timerinterrupt aktualisieren. Dann sollte das auch im unteren Bereich wenig auffallen. Ich denke jedenfalls dass mehr als 8 Bit für Modellbau vllt n bissl overpowered is.
Erstmal vielen Dank für die Kommentare! Die Ideen mit den zusätzlichen IC's und I2C finde ich sehr interessant! Ich denke in diese Richtung werde ich mal ein paar Versuche wagen... Für weitere Ideen und vor allem Kommentare bin ich sehr dankbar! Grüße Tacker
@Tacker: Ich habe gerade ein ähnliches Projekt in der Entwicklung (Platinen sind schon fast fertig). Vielleicht interessiert dich das ja da irgendwie mit einzusteigen...? Dann bescheid geben
@Matthias Ja, zumindest würde ich mir die Sache gerne mal ansehen. Kannst mich unter der (temporären) eMail-Adresse erreichen: tacker_mcnet[at]online[dot]de
Mahlzeit ! Ich habe was ähnliches vor und bevorzuge die Lösung mit den I²C-IC's. Leider sind die hier vorgeschlagenen IC's bei Reichelt nicht verfügbar. Kennt jemand ähnliche Typen??? Grüße Stammel
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.