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?
Du brauchst einen Port mit 8 Ausgängen. Das Zauberwort lautet Multiplexing.
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
:
Bearbeitet durch User
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.
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%A4tze/blinkenlights-led-matrix.html
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
:
Bearbeitet durch User
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.
.... dann noch hier; http://www.beck-shop.de/fachbuch/leseprobe/9783645650199_Excerpt_001.pdf suchbegriff; Hyperplexing von LED´s ....
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).
:
Bearbeitet durch User
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)
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? Den MISO-Pin kannst Du mit einer LED belasten, d.h. Du hast 15 Ausgänge verfügbar. Die Ausgänge der ISP-Programmer mögen keine großen Lasten. Oder Du nimmst einen Bootloader: Beitrag "AVR-Bootloader mit Verschlüsselung" Mehrkanal-PWM: Beitrag "AVR: Fast-PWM (BAM) 12 Bit für 8 Kanäle"
Schnösel schrieb: > So einfach wie möglich soll es sein. Charlieplexing rules, auch wenn man schnell n Knoten im Kopf hat.
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.