Bin leider verdonnert worden zu einer kleinen Weihnachtsbastelei. Ich
brauche 15 Ausgänge um 15 LEDs einzeln anzusteuern.
Ich bin etwas unsicher, ob ich hier noch mit einem ATtiny 2313 hinkomme.
Der hat 18 I/Os, aber lassen die sich alle nutzen, wenn man den ISP dann
auch zur Programmierung verwenden möchte?
Alternativ einen im TQFP-32 Gehäuse nehmen?
ISP = in System programming. Ja du kannst alle Ports nutzen. Zum
programmieren darf halt nicht zu viel last dran hängen, zumindest nicht
beim programmieren
Schnösel schrieb:> Der hat 18 I/Os, aber lassen die sich alle nutzen, wenn man den ISP dann> auch zur Programmierung verwenden möchte?
Nein. Wenn du den Reset abschaltest, brauchst du dir über ISP keine
Gedanken mehr zu machen. Bleiben also noch 17. Mit 14 davon kannst du
machen, was du willst. Die 15. LED kommt an eine der ISP-Leitungen.
Normalerweise hat dss keinen negativen Einfluss. Die LED flackert dann
ein bisschen im Takt der Daten. Darüber freut sie sich. Gerade zu
Weihnachten. Falls der Programmer dazu zu schwachbrüstig ist, musst du
die Leitung mit einem Jumper auftrennbar machen. An die anderen beiden
ISP-Pins kannst du z.B. Taster anschliessen.
mfg.
OldMan schrieb:> Du brauchst einen Port mit 8 Ausgängen.> Das Zauberwort lautet Multiplexing.
Äh .. was bitte soll ich mit Multiplexing? Ich möchte keine zusätzlichen
Chips einsetzten, um dann doch wieder zu demultiplexen.
Oder meintest du die Anordnung in einer LED Matrix?
Hm, ich überlege mal ins Blaue: 8 bit können 255 Zustände. Du hast 15
LEDs die wahrscheinlich jeweils nur zwei Zustände kennen, also musst du
30 Zustände codieren können…also eigentlich reichen hierfür sogar nur 5
IOs.
Timmo H. schrieb:> Ja du kannst alle Ports nutzen. Zum> programmieren darf halt nicht zu viel last dran hängen, zumindest nicht> beim programmieren
Ja, das klingt gut. Ich muss hinzufügen, ich würde gar nicht fragen wenn
ich nicht gerade im "Bestellstress" wäre. Sonst kommt das Zeug nicht
mehr rechtzeitig.
Michael K. schrieb:> Hm, ich überlege mal ins Blaue: 8 bit können 255 Zustände. Du hast 15> LEDs die wahrscheinlich jeweils nur zwei Zustände kennen, also musst du> 30 Zustände codieren können…also eigentlich reichen hierfür sogar nur 5> IOs.
Sicher, ich könnte jetzt mit wenigen I/O auskommen, indem ich einen
Binary Decoder zusätzlich einsetze. Das bedeutet aber zusätzlichen
Schaltungsaufwand und Fläche. Will ich vermeiden. So einfach wie möglich
soll es sein.
Schnösel,
wie willst Du die LED beschalten ?
Denke an die max. Ströme der einzelnen Pins und an den gesamt Strom.
Es kann sein, dass nicht alle Pins den selben Strom als Sink oder Source
liefern können.
Uwe S. schrieb:> Schnösel,>> wie willst Du die LED beschalten ?> Denke an die max. Ströme der einzelnen Pins und an den gesamt Strom.>> Es kann sein, dass nicht alle Pins den selben Strom als Sink oder Source> liefern können.
Ja, ich weiß. Die LED sollen langsam ihre volle Helligkeit erreichen,
verharren und dann wieder bis auf Null abschwellen, also ein Zeitglied.
Der ATtiny braucht nur das RC-Glied dazu langsam laden und wieder
entladen; ich werde für jeden Ausgang eine SMD-Transe als Treiber
spendieren. Die Schaltung für alles habe ich aber noch nicht.
Schnösel schrieb:> Äh .. was bitte soll ich mit Multiplexing?
Hattest du nicht eine Frage gestellt?
Ich halte den Multiplexing Vorschlag für eine gute Antwort.
Schnösel schrieb:> Ich möchte keine zusätzlichen> Chips einsetzten, um dann doch wieder zu demultiplexen.
Wie wäre es mit Charlieplexing, wenn dir Matrixen nicht gefallen....
Uwe S. schrieb:> Schnösel,>> was willst Du den Bauen ?>> Vielleicht ist dies ein Projekt für dich ?>> *Blinkenlights (LED-Matrix)*> #> http://www.ehajo.de/baus%C3%A4tze/smd-baus%C3%A4tz...
Ne, nix "blinken". :)
Es soll einfach ein bisschen Acryl mit superhellen LEDs zum aufleuchten
gebracht werden. Nix besonderes. Werde auch keine Bilder hier einstellen
(ist nicht bös gemeint, aber es soll anonym bleiben für den Empfänger,
sonst sieht der noch meine Doofheit, dass ich hier überhaupt frage ;-)).
Schnösel schrieb:> Uwe S. schrieb:>> Schnösel,>>>> wie willst Du die LED beschalten ?>> Denke an die max. Ströme der einzelnen Pins und an den gesamt Strom.>>>> Es kann sein, dass nicht alle Pins den selben Strom als Sink oder Source>> liefern können.>> Ja, ich weiß. Die LED sollen langsam ihre volle Helligkeit erreichen,> verharren und dann wieder bis auf Null abschwellen, also ein Zeitglied.> Der ATtiny braucht nur das RC-Glied dazu langsam laden und wieder> entladen; ich werde für jeden Ausgang eine SMD-Transe als Treiber> spendieren. Die Schaltung für alles habe ich aber noch nicht.
PWM und Mosfet?
Hallo,
beschaff Dir noch schnell ein paar WS8212, dann kommst Du mit einem
Datenpin aus. Es hängt allerdings von Deinen Programmierkenntnissen ab,
Beispiele sind zu finden, das Timing der Ansteuerung ist nicht
sonderlich kompliziert, aber etwas zeitkritisch.
Außer dem Tiny und den LEDs brauchst Du nichts weiter, die LEDs haben
den PWM-Controller schon eingebaut, jede einzelne.
Gruß aus Berlin
Michael
Ulrich F. schrieb:> Ich halte den Multiplexing Vorschlag für eine gute Antwort.
Multiplexen geht mit takten einher. Das kann ich nicht gebrauchen für
das langsame auf- und abschwellen der LEDs. Ich brauche also nicht nur
"An-Aus", sondern die Ausgabe einer Rampe (Dreieck). So wie bei den
hübschen Farbwechsler-Lichtkugeln. Ausgänge am µC sparen brauche ich
nicht. Wenn ich sie schon habe, kann ich sie auch nutzen. ;) Ob ich da
noch was mit Lichtprogramm-Umschaltung mache per Taster weiß ich noch
nicht.
Schnösel schrieb:> Ulrich F. schrieb:>> Ich halte den Multiplexing Vorschlag für eine gute Antwort.>> Multiplexen geht mit takten einher. Das kann ich nicht gebrauchen für> das langsame auf- und abschwellen der LEDs. Ich brauche also nicht nur> "An-Aus", sondern die Ausgabe einer Rampe (Dreieck). So wie bei den> hübschen Farbwechsler-Lichtkugeln. Ausgänge am µC sparen brauche ich> nicht. Wenn ich sie schon habe, kann ich sie auch nutzen. ;) Ob ich da> noch was mit Lichtprogramm-Umschaltung mache per Taster weiß ich noch> nicht.
warum willst du denn kein PWM nutzen? Sollen alle LEDs gleich hell und
dunkel werden oder unterschiedlich steuerbar?
Schnösel schrieb:> Es soll einfach ein bisschen Acryl mit superhellen LEDs zum aufleuchten> gebracht werden.
Und warum brauchst Du dafür einen uC?
Das könnte man auch mit ein paar Standardkomponenten lösen, ohne uC.
Solange Du nicht detailliert schreibst, wie das Aufleuchten ablaufen
soll,
solange kann Dir hier nicht wirklich geholfen werden.
Im Supermarkt gibt es derzeit LED-Lichterketten mit blauen, roten und
gelben LEDs. 50 Stück mit kleiner Steuerung für lächerliche 4,95 €.
Das solltest Du dir einmal näher anschauen, dann klappt es vielleicht
mit Deinem Projekt vor Weihnachten noch.....
Ansonsten sehe ich da kein Licht am Ende des Tunnels für Dich.
Wenn es hell werden soll, kommst Du sowieso nicht ohne Treiber für die
LEDs aus. Die Belastbarkeit eines Tiny (worst case: alle Ausgänge sind
vollgedröhnt, also high) ist nämlich begrenzt. Somit sollte es kein
Problem sein, den ISP doppelt zu belegen. Wenn Dich allerdings das
synchrone Geflacker der Dioden während des Programmiervorganges stört,
kann auch ein Löt-Jumper helfen. Der ist in der Preisklasse: Kost' fast
nix - nur ein bisschen Platz auf der Platine.
Michael U. schrieb:> Außer dem Tiny und den LEDs brauchst Du nichts weiter, die LEDs haben> den PWM-Controller schon eingebaut, jede einzelne.
PWM war auch meine erste Idee. Das gefällt mir aber von der Wirkung her
nicht. Das ist zu grob aufgelöst und ruckelt. Ich möchte keine
erkennbaren Stufen.
Ich weiß, man kann das feiner aufgelöst hinbekommen. Aber dann steigt
der Aufwand wieder und ich brauche das für 15 LEDs einzeln und
laaaangsam, du verstehst?!
;)
pluti schrieb:> warum willst du denn kein PWM nutzen?
Weil mir das flackern nicht gefällt.
> Sollen alle LEDs gleich hell und> dunkel werden oder unterschiedlich steuerbar?
Auf jeden Fall unterschiedlich. Vielleicht per Zufallsprinzip.
Schnösel schrieb:> PWM war auch meine erste Idee. Das gefällt mir aber von der Wirkung her> nicht. Das ist zu grob aufgelöst und ruckelt. Ich möchte keine> erkennbaren Stufen.
Ne 16 bit PWM ist dir zu grob aufgelöst? Hallo? Also das kauf ich dir
mal nicht ab.
OldMan schrieb:> Und warum brauchst Du dafür einen uC?> Das könnte man auch mit ein paar Standardkomponenten lösen, ohne uC.>> Solange Du nicht detailliert schreibst, wie das Aufleuchten ablaufen> soll,> solange kann Dir hier nicht wirklich geholfen werden.
Keine Angst, ich weiß schon was ich will.
> Im Supermarkt gibt es derzeit LED-Lichterketten mit blauen, roten und> gelben LEDs.
Ich will keine Lichterkette bauen.
> Ansonsten sehe ich da kein Licht am Ende des Tunnels für Dich.
Mal sehen, ob's noch klappt.
Michael K. schrieb:> Du hast 15> LEDs die wahrscheinlich jeweils nur zwei Zustände kennen, also musst du> 30 Zustände codieren können…also eigentlich reichen hierfür sogar nur 5> IOs.
verstehe deine Rechnung nicht, bei mir kommen da 2 hoch 15 Zustände raus
(entsprechend 15 Bit)
Schnösel - du musst deine Anforderungen genauer spezifizieren. Es ist
sehr unschön & anstrengend, wenn man dir alles aus der Nase ziehen muss
:-/
mach doch erstmal eine Anforderungsliste und dann wird dir bestimmt
geholfen :-)
Hallo,
@Schnösel: was gefällt Dir daran nicht?
http://www.avr.roehres-home.de/Stern.mp4
Die Videoqualität zeigt leider nicht die ganz die wirkliche Darstellung,
der Kontrastumfang ist meinem Fotoapparat zu groß.
Kaum Bauteilaufwand, letztlich nur etwas programmieraufwand oder man ist
faul wie ich und nimmt die ArduinoIDE und deren FastLED-Lib.
Was da läuft ist ein Demo der Lib mit verschiedenen Effekten, ich muß
mir noch ein paar eigene Muster ausdenken und programmieren.
http://www.ebay.de/itm/4-Stripes-mit-je-6-x-WS2812B-LED-schwarz-WS2812-5050-SMD-WS2811-/350951233708?hash=item51b652d8ac:g:UtMAAOSwmUdUV6PK
Sollte ja nur ein Hinweis sein, die Teile werden zur Zeit wohl etwas
knapp bei Versand aus Deutschland.
Gruß aus Berlin
Michael
Michael K. schrieb:> Schnösel schrieb:>> PWM war auch meine erste Idee. Das gefällt mir aber von der Wirkung her>> nicht. Das ist zu grob aufgelöst und ruckelt. Ich möchte keine>> erkennbaren Stufen.>> Ne 16 bit PWM ist dir zu grob aufgelöst? Hallo? Also das kauf ich dir> mal nicht ab.
Das was ich auf YouTube gesehen habe ist mir jedenfalls zu grob und
bedenke bitte, ich bräuchte die PWM an 15 Ausgängen!!
Bedenke bitte, ich bin kein "Peter Dannegger" mit jahrelanger täglicher
µC-Erfahrung. Also bitte etwas Nachsicht, wenn ich momentan den
einfachen Weg suche. Es ist nur eine kleine Bastelei mit etwas
Lichteffekt, mehr nicht. ;)
Irgendwie habe ich es nicht mitbekommen:
Sollen alle LEDs synchron die Erleuchtung bekommen?
Dann würde ein Ausgang mit einem ausgewachsenen Treiber reichen.
Hat jede LED ihre eigene Vorstellung von Hell und Dunkel und dem
zugehörigen Zeitpunkt dafür?
Dann brauchst Du aber 15 PehWehÄmm-Generatoren. Die hat aber kein mir
bekannter µP. Also wirst Du das Ganze wohl auf der weichen Ebene machen
müssen. Sportlich!
Michael U. schrieb:> Hallo,>> @Schnösel: was gefällt Dir daran nicht?> http://www.avr.roehres-home.de/Stern.mp4
Gefällt mir gut. Hast du schön gemacht. Für meine Zwecke ist der
Lichteffekt aber noch deutlich zu schnell. Ich setze eher auf den Effekt
sehr langsamer Farbübergänge, ähnlich wie bei den käuflich matten
Acryl-Lichtkugeln. Da gibt es aber auch "sone und solche", also manche
sind sehr schön langsam, so dass man es kaum wahrnimmt. Andere versuchen
sich als "Disko". Letzteres möchte ich nicht (das nervt auf Dauer). Ist
ja nicht nur für Weihnachten gedacht, sondern soll zeitlos sein. Es soll
nicht die Nerven strapazieren, sondern beruhigen (aber keine
therapeutischen Zweck dienen; just for fun).
;)
Sebastian S. schrieb:> Irgendwie habe ich es nicht mitbekommen:>> Sollen alle LEDs synchron die Erleuchtung bekommen?> Dann würde ein Ausgang mit einem ausgewachsenen Treiber reichen.>> Hat jede LED ihre eigene Vorstellung von Hell und Dunkel und dem> zugehörigen Zeitpunkt dafür?> Dann brauchst Du aber 15 PehWehÄmm-Generatoren. Die hat aber kein mir> bekannter µP. Also wirst Du das Ganze wohl auf der weichen Ebene machen> müssen. Sportlich!
Wie ich es genau auslege muss ich noch sehen. Das ist dann Sache der
Programmierung der Ausgänge. Wichtig ist nur, die Ausgangsspannung bzw.
der LED-Strom fährt langsam hoch und kann auch wieder langsam
abschwellen. Die Zeit dazwischen wie lange und wann überhaupt welche LED
angesteuert wird ist Sache des Programms. Das kann fest eingeprägt oder
per Zufall geschehen. Muss ich noch sehen.
Notfalls wird eben alles so einfach gemacht wie es passt. Es muss halt
schön aussehen.
Mir sind die Tiny261/461/861 sympathischer, als der 2313.
Ist aber eine subjektive Meinung.
Jedenfalls sind das auch 20-Pin-µCs und haben jeweils
PortA-0..7 und PortB-0..7.
Den Reset-Pin PortB-7 brauchst du für ISP, also sind
15 Port-Pins frei. Für die Lichtspiele reicht der interne
RC-Oszillator.
Wenn du für die Software-PWM jedem Port-Pin einen Transistor mit
Vorwiderstand (z.B. 4,7 k) spendieren willst, kannst du die ISP
(direkt an den entsprechenden Pins angeschlossen) ohne Probleme
einsetzen.
- Und alles "live" testen...
Hallo,
ich habe mir noch nicht die Zeit genommen, da selber was zu machen.
Die LEDs machen 3x8Bit PWN für die 3 Farben, laufen zur Zeit mit 120Hz
Wiederholrate. Mit einer 8Bit PWM sind es eben nur 256
Helligkeitsstufen. Ein Farbübergang z.B. von Rot nach Grün sind dagegen
schon 256*256 mögliche Schritte. Das können die LEDs auch und mehr
machen besagte Kugeln auch nicht, schon des Aufwandes wegen.
15 LEDs einzeln ansteuern ist Aufwand. In Hardware wie in Software.
15x WS2812 ansteuern heißt so oft man will oder der Tiny zuläßt mit
800kHz die Farbinfo (2x 8 Bit) für alle LEDs rausschieben. Dann eben
nach (fast) beliebiger Zeit die neuen Farben für alle LEDs rausschieben.
Wie willst Du Deins anlegen? Je ein Portpin an-/ausschalten und mit
RC-Gliedern das Faden erzeugen? LEDs sind nicht unbedingt linear zum
eingestellten Strom und das menschliche Auge noch viel weniger.
Wie also ein "3/4" Rot erzeugen, weil da das Gelb zusammen mit Grün
besonders angenehm wirkt?
Gruß aus Berlin
Michael
Loddaar schrieb:> Michael K. schrieb:>> Du hast 15>> LEDs die wahrscheinlich jeweils nur zwei Zustände kennen, also musst du>> 30 Zustände codieren können…also eigentlich reichen hierfür sogar nur 5>> IOs.>> verstehe deine Rechnung nicht, bei mir kommen da 2 hoch 15 Zustände raus> (entsprechend 15 Bit)
Das liegt daran, dass du falsch gerechnet hast. Eine LED kann zwei
Zustände, mit jeder weiteren LED kommen zwei weitere Zustände hinzu.
Macht bei 15 LEDs gesamt also 30 Zustände die entsprechend codiert
werden müssen. Natürlich hast du recht, mit 15 LEDs kann man 2 hoch 15
Zustände codieren aber das ist ja hier gar nicht gefordert, sprich du
hast von der falschen Seite geschaut ;).
Schnösel schrieb:> Das was ich auf YouTube gesehen habe ist mir jedenfalls zu grob und> bedenke bitte, ich bräuchte die PWM an 15 Ausgängen!!
Vielleicht schaust du es dir dann mal Live und in Farbe selbst an. Aber
15 PWMs wäre schon ne sportliche Sache, da kommst du mit dem ATTiny2313
ohne weiter Chips schlicht nicht hin (außer vielleicht mit ner
Soft-PWM).
Du kannst auch einen Tiny mit interner PLL nehmen dann kommst Du auf
mehrere kHz die Du dann via Soft-PWM auf die PINs umlegst.
Wenn Du die LEDs dann noch passend verschaltest kommst Du bei 16 LEDs
mit I/Os aus.
Such mal hier im Forum gab's schon öfter.
Nebenbei ein Mega88 ist auch nicht wesentlich größer.
Und warum kannst Du nicht nachsehen:
http://www.atmel.com/products/microcontrollers/avr/tinyavr.aspx
Immer die Hausaufgabenverbummler&Co. :-P
und wieso müssen es eigentlich 15 LEDs sein? Du schreibst von Farb
Übergängen, warum nimmst du kein RGB Band? Die einfachen kannst du nach
jeder 3. LED Abschneiden. Damit brauchst du nur 3 PWM Ausgänge. Ich kann
dir dazu den Attiny 841 empfehlen, den hab ich gerade für sowas
ähnliches missbraucht. Der hat einen 8 bit Timer (nehm ich als
Zeitscheibe für die Helligkeitswerte und 2 16Bit Timer mit je 2 Compare
Ausgängen. Das beste jedoch ist, daß er eine Ausgangsmatrix hat, welche
es erlaubt die PWM an verschiedenen Portpins auszugeben. Damit kann man
super einfach einen langsamen, nicht ruckelnden Farbübergang erledigen.
(Speicher hat der auf jeden Fall mehr als genug dafür)