DIY-RGB-Controller mit IR-Fernbedienung und DMX - modular erweiterbar

  • Da ich so was schon länger mal machen wollte, und der Tiny2313 einer meiner "Lieblings-µC" ist, habe ich mal nen RGB-Controller mit IR-Fernbedienung dafür programmiert... klar, sowas gibt's schon öfter, aber das Teil hier füllt doch irgendwie eine Nische, diese billig-Controller haben ja nur recht wenig Programme (wird immer wieder gefragt, ob die sich erweitern lassen), und größere Controller mit mehr Funktionen kosten dann gleich ziemlich viel...


    der Controller hier kann eine handvoll Programme, Feste Farben aussuchen, der beliebte "Rainbowfader", "Blob" (auf- und abfaden von Zufallsfarben), Feuersimulation, DMX-Empfang... das ist schon mehr, als diese billigen kleinen China-Controller können. Ausserdem lässt sich der Funktionsumfang leicht erweitern, da die SW modular und übersichtlich aufgebaut ist. Also alles was man gerne hätte an Lichtprogrammen, kann man sich selbst erstellen dafür - und aufgebaut ist das Teil für unter 10 Euro.


    ich hoffe irgendwie auch ein bisschen, damit mehr Leute für die schöne Sprache Assembler gewinnen zu können, und dass - hier im Forum schon gemachte - vorschnelle Aussagen wie "Auch in Assembler ist ein Tiny2313 alleine mit RC5-Empfang und SW-PWM schon fast voll" in Zukunft besser überlegt werden.... ;)


    Habe also mal angefangen, Konfigurationen wie Timer, Usart, Ports etc., sind ja nur ein paar Byte - dann SW-PWM dazu, die braucht 60 Byte für 3 Kanäle...


    Auch in ASM muss man nicht immer das Rad neu erfinden, also habe ich mal nach ner RC5-Routine gesucht - gefunden habe ich (natürlich! :D) was bei Mikrocontroller.net, war aber in C - das sind aber nur ein paar Zeilen, also habe ich das in asm übersetzt, macht dann genau 94 Byte...


    die Routine (von Peter Danegger, der macht sehr überlegte/ausgefeilte Sachen, großes Lob!) ist recht genial, die läuft in ner Timer-ISR, ändert den Timer (im Gegensatz zu z.B. Bascom-Empfangsroutine) aber nicht - daher kann man den zusätzlich noch für andere Sachen benutzen, ich brauche also für RC5-Empfang und SW-PWM zusammen nur einen Timer (nicht zwei, wie schon mal vermutet wurde), und nehme den auch noch als Zeitbasis für den Fader etc.


    weiterer Vorteil: die Routine ist nicht auf nen Interrupt angewiesen, also wieder eine ISR weniger, und man kann (anders als z.B. bei Bascom) einen beliebigen Pin für den RC5-Empfänger nehmen... da man die PWM-Ausgänge ja ebenfalls auf beliebige Pins routen kann, wäre es also auch möglich, die SW auf diesen "Mini-Fader", der hier im Forum verkauft wird, anzupassen (in der Datei "Definitions.inc") ...ohne an der HW was zu ändern


    damit ich rausfinde, welche Codes meine Fernbedienung (habe die von der Glotze, SEG, genommen) sendet, habe ich noch ein Display ran - dieses belegt den kompletten PortB... wenn man das nicht braucht, kann man das auch deaktivieren (in der Datei "settings.inc" die entsprechende Zeile auskommentieren), dann spart man noch mal 436 Byte für das ganze Display-Gedöns (eigentliche Ansteuer-Routinen: 298 Byte), und kann entsprechend mehr Programme rein machen...


    wichtig: wenn kein Display dran hängt, muss das auf jeden Fall deaktiviert werden, meine LCD-Routine fragt das "busy"-Flag ab, wenn kein Display "antwortet", dann hängt die SW ewig beim initialisieren fest.


    dann halt noch ein paar Programme rein gehackt, bzw. mehr oder weniger aus den SEDU-Ambilight-Standalone-Programmen übernommen...


    hier mal ein kleines Video von der SW auf meinem Tiny2313-Experimentierboard, da werden ein paar Sachen durchgeschaltet:


    Externer Inhalt www.youtube.com
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.


    mit den Ziffern-Tasten wird das Programm ausgewählt, mit Vol+ und - kann man die Helligkeit (global) einstellen, PGM+/- stellt dann je nach Programm die Farbe oder Geschwindigkeit ein. Die Geschwindigkeit wird für jedes Programm extra gespeichert, extra Helligkeit pro Programm wäre auch noch zu machen, wenn's denn jemand braucht...


    Mit "0" kann man auf Maximalgeschwindigkeit schalten... mit der Ein-/Ausschalttaste wird der aktuelle Status gespeichert, und "ausgeschaltet" (LEDs aus) - mit einer beliebigen anderen Taste kann man dann wieder einschalten, natürlich kann man dem Ding auch komplett den Saft abdrehen, beim wiedereinschalten kommt exakt der letzte gespeicherte Stand...


    Die SW ist modular aufgebaut, es ist sehr einfach, da weitere Programme hinzu zu fügen, oder welche weg zu lassen, die man nicht braucht - wie gesagt, ohne Display (das ist eigentlich nur Spielerei, braucht man nicht mehr, wenn man die Codes raus gefunden hat) hat man 436 Byte mehr (also noch 476 Byte insg., Tiny ist ja noch nicht voll), da kann man in Assembler schon ne Menge machen...


    z.B. auch zusätzlich Steuerung über Tasten/Encoder - es ist auch eine Empfangsroutine für NEC-Protokoll in Arbeit, damit kann man das Teil dann über diese billige flache kleine Chinesen-Controller-FB steuern.


    Und wenn man dann auch kein DMX braucht, kann man den Quarz auch noch weg lassen (da muss man nur ein paar Parameter ändern) und das Ganze auf nen Tiny25 portieren, damit dann nen wirklich kleinen Controller bauen, der z.B. mit LED und Akku zusammen in ne Christbaumkugel rein passt... ;) - mit nem Tiny45 oder 85 dann auch mit *wesentlich* mehr Programmen...


    Eine Portierung für den Tiny25 und für das SEDU-Board (bzw., da wurde es ja drauf entwickelt ;) OK, auf dem alten) mit mehr Funktionen, Tastensteuerung etc. folgt dann noch...


    unten anbei die SW inkl. Hexfile (2008 Byte), ausführliche Erklärung, was die alles wie macht und wie die aufgebaut ist, folgt noch... ebenso Schaltplan und Layout zum leichten Nachbau auch für Anfänger. EDIT: Diese SW enthält ein paar kleinere Bugs, und auch größere (DMX-Empfang funktioniert nicht richtig, ist wohl noch keinem aufgefallen :D) - die wird aber nicht mehr geändert, wie gesagt, das Display braucht man eigentlich nicht, man kann ggfs. mit dieser SW die Tastenbelegung rausfinden, und dann die neue "Standard-SW" benutzen...


    EDIT 22.12.2012: Schaltplan für die "Vollversion" (mit Display und DMX) ist nun hier zu finden, Lötmeister macht dann ein Layout daraus, vielen Dank schon mal! :)


    EDIT 01.04.2012: Hier gibt es nun die neue "Standard-Version" für Tiny2313, ohne Display, dafür mit mehr Programmen.


    EDIT 02.04.2012: Hier hat Lötmeister PDFs der Schaltpläne, Bestückungsplan, PDF zum selbst ätzen und Bauteileliste für die "Standard-Version" mit DMX und Tiny2313/4313 veröffentlicht.


    Hier noch ein Hinweis: Ich bin kein Hersteller, man kann das also nicht bei mir fertig aufgebaut kaufen. Ebensowenig wie als Bausatz, ich ätze auch keine Platinen für andere. Das Ganze ist ein Hobby von mir, ich stelle hier aus reiner Freundlichkeit die komplette Doku zum nachbauen rein, kann aber keinerlei praktische Hilfe anbieten - ebensowenig wie irgendwie in irgendeiner Weise Verantwortung übernehmen, falls bei jemandem der Nachbau nicht klappen oder gar irgendwelche Schäden auftreten sollten!


    Ebenso ist das hier zum privaten, nichtkommerziellen Nachbau für Bastler gedacht - wer vorhat, damit eine (Klein-)-Serie zu produzieren und zu verkaufen, möge sich doch bitte vorher an mich wenden!

    Dateien

    It's only light - but we like it!


    Da es sich in letzter Zeit häuft: Ich beantworte keine PNs mit Fragen, die sich auch im Forum beantworten lassen!
    Insbesondere solche von Mitgliedern mit 0 Beiträgen, die dann meist auch noch Sachen fragen, die bereits im entsprechenden Thread beantwortet wurden.
    Ich bin keine private Bastler-Hotline, technische Tipps etc. sollen möglichst vielen Lesern im Forum helfen!

    8 Mal editiert, zuletzt von Pesi ()

  • "Bedienungsanleitung"
    (gilt für die "Standard-Version" ohne Display).


    Der Controller wird über ein paar Tasten auf einer RC5-Fernbedienung (Universal-FB, oder alte vom TV etc.) gesteuert, es kommt auch noch eine Version, bei der diese Tasten direkt am Gerät verfügbar sind - die Tasten der FB lassen sich frei zuweisen, hier in Klammern, welche Taste auf meiner TV-FB in dem Projekt voreingestellt ist:


    Taste "Standy" (An/aus auf der FB):
    Hiermit wird der Controller "ausgeschaltet", also alle LEDs auf 0 gesetzt - der µC läuft weiter, wenn man also das Teil längere Zeit aus schalten will, sollte man zum Strom sparen das NT primär ausschalten. Wieder eingeschaltet wird mit einer beliebigen anderen Taste, das vor dem "ausschalten" aktive Programm läuft weiter.


    Taste "Speichern" ("Sound", so ne rote Taste, auf der FB):
    hiermit wird die aktuelle Einstellung gespeichert, im EEPROM, also auch nach dem Spannung wegnehmen startet der Controller wieder an der gespeicherten Stelle. Zur Bestätigung blinken die angeschlossenen LEDs 3x grün auf, die Ststus-LED blinkt mit.


    Taste "Programm Change" ("Menue" auf der FB):
    Hiermit wird das Programm eins weiter geschaltet - diese Taste wäre eigentlich nicht nötig, da man mit den Tasten 0-1 auch ein Programm direkt anwählen kann, ist aber trotzdem drin, weil sie bei der Bedienung direkt am Gerät gebraucht wird (da ist einfach kein "Platz" für 10 Direktwahl-Tasten) - ausserdem kann man so den Controller auch mit ner kleinen Schlüsselanhänger-FB mit nur ein paar Tasten steuern


    Direktwahl-Tasten 0-9 (0 - 9 auf der FB):
    Hiermit kann eins der Programme direkt angewählt werden, in der Standard-Version 0 = DMX-Empfang, 1 = Feste Farbe, 2 = RGB-Fader, 3 = Blob, 4 = Feuer, 5 = Zufallsfader, 6 = Gewitter


    Dimmer heller/dunkler (Vol up und Vol down auf der FB):
    hiermit kann die Gesamthelligkeit rauf- und runter gedimmt werden, global, diese Tasten haben immer diese Funktion, egal welches Programm


    Speed up/down bzw. Option 1 up/down (Programm + und Programm - auf der FB):
    Diese Tasten haben unterschiedliche Funktion, je nach Programm: In den meisten Programmen, wo sich ja irgendwas "bewegt", wird damit die Geschwindigkeit eingestellt (extra je Programm), beim Programm "Feste Farbe" werden damit die Farben durchgeschaltet (da gibt's ja keine Geschwindigkeit).


    Option 2 up/down (Menue links und Menue rechts auf der FB):
    Damit werden weitere Optionen eingestellt, je nach Programm: bei "Feste Farbe" z.B. unbelegt, bei den Fadern etc. kann damit die Geschwindigkeit mit einem Druck auf Maximal oder Minimal gestellt werden. Es kommt noch ein "Universal-Fader-Programm", bei dem dann damit z.B. die Wartezeit zwischen zwei Fades extra eingestellt werden kann - beim "Farbkreis" dann die Sättigung.


    Beschreibung der Programme


    DMX-Empfang:
    Klar, hier werden halt RGB-Werte per DMX empfangen und angezeigt - die Adresse wird per Jumper eingestellt oder fest eingebrannt, bei der Version mit Tiny4313 kann man dann die Adresse auch über Taster und FB einstellen - evtl. kommt noch ne 5-Kanal-Version mit Gesamtdimmer und Strobo, mal sehen... i.M. nimmt der Controller stur die empfangenen Werte, man könnte das aber auch ganz leicht so ändern, dass man zumindest die Helligkeit dann noch zusätzlich per FB steuern kann...


    Feste Farbe:
    Hier sucht man sich einfach eine von 16 fest eingestellten Farben aus - die Tabelle der 16 Farben lässt sich im Quellcode umsortieren, ändern, und auch erweitern (im Tiny2313 noch Platz für 12 weitere Farben...)


    RGB-Fader:
    klar, der beliebte "Regenbogen-Fader"-Effekt - Geschwindigkeit einstellbar, Helligkeit ja sowieso global...


    Blob:
    Auf- und Abfaden von zufälligen Farben - diese sind in einer Tabelle hinterlegt, können also auch an persönlichen Geschmack angepasst werden - über die FB Geschwindigkeit und Helligkeit einstellbar


    Feuer:
    Wie der Name sagt, eine Feuersimulation - per Geschwindigkeit über die FB in gewissen Grenzen einstellbar, im Quelltext gibt es noch ein paar Parameter für mehr oder weniger Flackern etc.


    Die Routine erzeugt einfach bei jedem Aufruf eine zufällige Farbe zwischen Gelb und Orange, in zufälliger Helligkeit - es muss eine Mindesthelligkeit (einstellbar) erreicht werden, damit es nicht zu sehr flackert, ansonsten wird noch mal "gewürfelt" - ausserdem darf der Unterschied zur zuletzt erzeugten Helligkeit nicht zu groß sein (einstellbar), eben wieder, damit's nicht zu sehr flackert.


    der Unterschied nach oben darf dabei größer sein als der nach unten, das ist realistischer, man hat das bei nem Lagerfeuer ja auch, dass plötzlich mal eine Flamme empor züngelt, und dann langsam wieder verlischt.


    mit den ganzen Parametern lassen sich da recht viele Variationen erzeugen, von ner ruhig brennenden Kerze über loderndes Kaminfeuer bis zu heftigem Flackern ("Kerze im Wind" o.ä.) - alle direkt im Modul einstellbar.


    Zufallsfader:
    hier werden einfach R, G und B getrennt voneinander zu zufälligen Maximalwerten rauf- und wieder runter gefadet, dadurch ergeben sich ständig neue Verlausfkombinationen mit vielen Pastellfarben


    Gewitter:
    Die LEDs leuchten dunkel (einstellbar in der Datei, bei der nächsten Version über Tasten Option 2) Blau, ab & zu zuckt ein Blitz (weißes Aufleuchten) über den "Nachthimmel" (das dunkle Blau)


    Die Routine erzeugt einfach bei jedem Aufruf (Geschwindigkeit über FB einstellbar) eine Zufallszahl, ist diese in einem bestimmten Rahmen (einstellbar) dann wird ein "Blitz" erzeugt, also die LEDs auf weiß gesetzt in zufälliger (Bereich einstellbar) Helligkeit. Da auch mal 2, 3 mal direkt hintereinander ein Blitz in unterschiedlicher Helligkeit erzuegt wird, ergeben sich so auch längere Blitze, die in der Helligkeit schwanken, wie in echt ja auch.


    Hier macht sich übrigens positiv bemerkbar, dass der Zufallszahlen-Algorithmus ja keine echten Zufallszahlen erzeugt, sondern durch die Methode (linear rückgekoppeltes Schieberegister) viele Zahlen gehäuft hintereinander vorkommen. Dadurch ergibt sich dieser relativ realistische Effekt, dass eben immer ne Zeit lang Ruhe ist, und dann gleich mehrere Blitze kurz hintereinander kommen - ab&zu sogar recht realistische Kombinationen wie 2 mal kurzer Blitz und ein längerer hinterher... wären es wirklich echte Zufallszahlen, dann wäre das auch nicht so, da würden die Blitze dann regelmäßiger, gleich verteilter kommen, so wie es in echt ja auch nicht ist... also hier ist ein Handicap ("schlechte" Zufallszahlen) durchaus mal ein Vorteil! :thumbup:

    It's only light - but we like it!


    Da es sich in letzter Zeit häuft: Ich beantworte keine PNs mit Fragen, die sich auch im Forum beantworten lassen!
    Insbesondere solche von Mitgliedern mit 0 Beiträgen, die dann meist auch noch Sachen fragen, die bereits im entsprechenden Thread beantwortet wurden.
    Ich bin keine private Bastler-Hotline, technische Tipps etc. sollen möglichst vielen Lesern im Forum helfen!

    Einmal editiert, zuletzt von Pesi ()

  • Frage:
    Lt. Info im Netz ist RC5 "veraltet, obsolet und ausgestorben", 80% nutzen NEC-Protokoll - warum hier also RC5...?


    Antwort:
    Letztlich ist es hier sogar ein Vorteil, dass das Protokoll nicht mehr für TV etc. genutzt wird: Man kann den Controller so mit einer billigen Universal-FB per RC5 steuern, ohne dass es Probleme gibt wie die Glotze wird mit beeinflusst oder andersrum, der Controller schaltet sich um, wenn man am TV lauter oder leiser stellt.


    Im Übrigen kommt hier auch noch eine Version für NEC-Empfang, diese wird dann erst mal auf diese billigen kleinen Lichtsteuer-FB angepasst...

    It's only light - but we like it!


    Da es sich in letzter Zeit häuft: Ich beantworte keine PNs mit Fragen, die sich auch im Forum beantworten lassen!
    Insbesondere solche von Mitgliedern mit 0 Beiträgen, die dann meist auch noch Sachen fragen, die bereits im entsprechenden Thread beantwortet wurden.
    Ich bin keine private Bastler-Hotline, technische Tipps etc. sollen möglichst vielen Lesern im Forum helfen!

    Einmal editiert, zuletzt von Pesi ()

  • Großes Lob für diese Arbeit. :thumbup: Nach meinen ersten Schritten mit Bascom und eben dem 2313 habe ich das schnell zur Seite gelegt und C benutzt. Ich hatte dann mal ein Programm geschrieben als RGB-Fader mit RC5-Empfang. Das war sicher nicht so effektiv programmiert, aber der Tiny war mehr oder weniger voll. Wenn man sieht, was in Assembler alles geht, muss man eigentlich umsteigen.


    Das Display als User-Feedback finde ich eigentlich auch ganz gut und es gibt einige Dinge wie Einstellungen von Parametern, wo es eigentlich gar nicht ohne geht. Ich versuche mich nämlich gerade daran ... Aber für den Normalbetrieb mit Fernbedienung ist es dann schon nicht nötig.


    Was mich noch interessiert: die Encoder-Routinen sind da jetzt schon mit drin oder noch nicht? Aber viel Speicher wird das ja trotzdem nicht sein.

  • Wenn man sieht, was in Assembler alles geht, muss man eigentlich umsteigen.

    Naja, das nun auch nicht.... ;)


    Was für eine RC5-Routine hast Du denn genommen...? - auch die vom Danegger...? - kann ja sein, dass Du eine andere erwischt hast (da geistern mehrere rum), die wesentlich aufwändiger programmiert war... wenn der C-Compiler das Ding deutlich größer macht als die Handübersetzung, dann wäre das schon schwach...


    im Zweifel nimmt man dann halt doch nen größeren µC, Mega8/16/32 - hier würde ich sogar zum Tiny4313 tendieren, schade nur, dass der mit 3,50 teurer ist als der Mega48 mit 2,60...


    Mega8 mag' ich nicht so, das ist irgendwie so ein "Kompromiß-µC" - wenn man Quarz und Usart braucht, hat man keinen einzigen kompletten Port mehr frei... :wacko: - und Mega16 ist für so ein Teil schon wieder übertrieben (groß)...


    Ohne jetzt wieder ne Diskussion lostreten zu wollen, der Unterschied von Bascom zu Assembler ist halt um Welten größer - gibt hier auch nen (in nem Uralt-Thread) RC5-Tester, nur Daten empfangen und auf Display ausgeben, Tiny2313 voll... oder nen anderen Controller mit Display, ein paar Farben einstellen und RGB-Fader, Mega48 voll... :D


    ich bleibe jedenfalls bei Assembler, sehe für mich in C keine Vorteile - klar, da muss man sich hier&da evtl. weniger Gedanken machen, aber bei mir läuft das ganz gut, immer SREG etc. in ISRs sichern und benutzte Register stur in jeder Subroutine, da können nicht mehr viele Assembler-typische Fehler passieren...


    Und eben den Code besser strukturieren (Anfangs habe ich alles in ne meterlange Datei geschrieben :D), dann ist das ebenso übersichtlich - wie gesagt, auch in asm muss man nicht "2 Seiten Text für jede Multiplikation tippen" wie hier schon mal geunkt wurde, man bastelt sich da auch Funktionen, die man dann aufruft...


    ebenso das Argument, dass C leichter portierbar sei, kann ich hier nicht nachvollziehen: In den C-Programmen, die ich so gesehen habe, werden z.B. Timer und Usart auch konfiguriert, indem Bits in Registern gesetzt werden, da gibt's auch keine Befehle wie "set Timer" o.ä. - also hat man da die selbe Arbeit wie in Assembler, dass man in's DB schauen muss, wie die Register nun heissen...


    Und wenn man z.B. ne SW hat, die 3 Timer braucht, dann läuft die auf nem Tiny mit 2 Timern halt nicht, egal ob ASM oder C... ;)


    gilt wie gesagt hier für die 8-Bit-AVRs, auf dem PC oder ARM würde ich wohl auch nicht Assembler benutzen... und ich will auch keinen C-Programmierer "überreden" auf Assembler "umzusteigen", nur wie gesagt, wenn jemand interessiert ist oder neu anfängt, würde es mich halt schon freuen, wenn ASM nicht sofort pauschal als "viel zu kompliziert" abgetan wird...


    viele Sachen (Bitoperationen z.B., Ports setzen, etc.) macht man in ASM praktisch genauso wie in C, klar, Schleifen etc. muss man sich selbst basteln, aber das sind auch nur drei Anweisungen, die man irgendwann blind hinschreibt...


    für mich persönlich ist es eben leichter nachzuvollziehen, wenn was Schritt für Schritt passiert, z.B. in C so was wie


    Foo = ~(Bar|(X&&Y) (keine Ahnung ob das richtig geschrieben ist, also X and-Verknüpft mit Y, das dann OR mit Bar, und das ganze invertiert)


    ist für mich Schritt für Schritt:


    and X,Y
    or Bar, X
    com Bar


    leichter/schneller durchschaubar...


    aber sorry, ich schweife ab... :D


    Die Encoder-Routine ist noch nicht drin, da reicht der Platz dann nun wirklich nicht mehr - die Routine selbst ist zwar auch nur "ein paar Byte" groß, aber dann muss ja noch ausgewertet werden, was passiert wann bei drehen und drücken, das sind dann insg. schon auch noch mal um die 200-250 Byte...


    das kommt dann wie gesagt bei der Portierung auf's neue SEDU, und da ist das Display dann auch standardmäßig vorgesehen, bzw. ich versuche das so hinzubekommen, dass man das nicht braucht wenn man die FB benutzt, wenn man dann am Gerät selbst was mit dem Encoder einstellt, dann hat man natürlich das Menue dazu...

    It's only light - but we like it!


    Da es sich in letzter Zeit häuft: Ich beantworte keine PNs mit Fragen, die sich auch im Forum beantworten lassen!
    Insbesondere solche von Mitgliedern mit 0 Beiträgen, die dann meist auch noch Sachen fragen, die bereits im entsprechenden Thread beantwortet wurden.
    Ich bin keine private Bastler-Hotline, technische Tipps etc. sollen möglichst vielen Lesern im Forum helfen!

  • Hi Dieter, vielen Dank! :)


    Ja, ich habe den Thread hier etwas vernachlässigt (sollte ja auch noch ne genaue Beschreibung der SW rein, wie man die selbst erweitern kann etc.), was wohl auch daran lag, dass das Interesse an diesem Teil nicht gerade soo berauschend ist...


    Wenn Du Dir trotzdem die Arbeit mit nem Layout machen willst, gerne! - Ich schau' dann mal, dass ich den Schaltplan gleich in Eagle zusammen klicken kann...


    ist dann im Prinzip genauso wie beim 3-Kanal-DMX-Receiver (wollte hier auch gleich wieder die Instructables-KSQ optional vorsehen), nur dass statt dem DIP eben das Display dran hängt... die Status-LED braucht man ja nicht, da könnte man dann an die übrigen 3 Pins noch nen Encoder anschließen... bzw. Display braucht ja nur 7 Pins, also noch einer frei...


    damit könnte man dann auch direkt am Gerät Programme einstellen, dimmen, etc. - dafür dann nen (ist ja das selbe Gehäuse) Tiny4313, damit wird's dann auch in DIP (zum besseren Nachbau für Bastler) immer noch recht kompakt...


    ich würde dann die Platine für die ganz kleine Version mit Tiny25/45/85 machen, als reiner IR-Controller...


    P.S.: Aus welchem Grund nimmst Du Software-PWM und nutzt nicht die Hardware-PWM-Kanäle?

    Hauptsächlich Gewohnheit... :D - man könnte natürlich auch die HW-PWM nehmen (Timer läuft ja ungestört durch), dann müsste man die Pins halt etwas anders verteilen, also nicht mehr Display "kompakt" an einem Port...


    SW-PWM nehme ich eben auch deswegen, weil ich mir frei aussuchen kann, wo die PWM raus kommt - und hier, mit 16 MHz Quarz sind's auch 244 Hz PWM-Frequenz, das reicht mir, auch bei 8 MHz hat man immer noch 122 Hz wie bei vielen China-Controllern o.ä.


    die Timer-ISR wird hier alle 256 Takte aufgerufen, die RC5-Routine zählt 100 Aufrufe für eine normale Pulslänge - man könnte also auch nen Prescaler von 8 nehmen (und die RC5-Timings dann anpassen), das gäbe dann fast 4 kHz bei Phase correct PWM, das wäre mir aber zu viel (EMV, Verschleifen von Flanken...)


    Prescaler von 64 wäre dann 488 Hz PWM, also ganz gut - dann haut's aber mit dem RC5-Timing nicht mehr hin...

    It's only light - but we like it!


    Da es sich in letzter Zeit häuft: Ich beantworte keine PNs mit Fragen, die sich auch im Forum beantworten lassen!
    Insbesondere solche von Mitgliedern mit 0 Beiträgen, die dann meist auch noch Sachen fragen, die bereits im entsprechenden Thread beantwortet wurden.
    Ich bin keine private Bastler-Hotline, technische Tipps etc. sollen möglichst vielen Lesern im Forum helfen!

    2 Mal editiert, zuletzt von Pesi ()

  • Sorry, hat etwas gedauert, und ich hab's wieder nicht in Eagle geschafft (trotzdem vielen Dank für den Tipp wg. neuer Version, schaue ich mir mal an), aber hier mal der Schaltplan:



    Wie gesagt, die 3 bisher noch freien Pins könnte man noch für nen Encoder auf ne Stiftleiste legen... Eigentlich hätte man dann mit dem Teil hier sowas, nach dem schon paar mal gefragt wurde (in dem anderen Thread mit dem DMX-Receiver), nämlich nen kleinen, billigen DMX-Receiver, der auch noch Standalone-Programme kann, hier sogar zusätzlich noch mit IR-Fernbedienung... ;)


    beim Display entweder ne 16er-WSL und dann Display über Flachbandkabel, so wie im Video - oder man macht ne einreihige 16er-Buchsenleiste, dann könnte man das Display auch "huckepack" auf den Controller stecken - wie's Dir lieber ist...


    "VWS" wäre der optionale Vorwiderstand für die Hintergrundbeleuchtung, mein Lieblings-Display braucht den nicht, geht da direkt mit 5 V...


    falls das mit den LED-Ausgängen anders besser geht vom Layout her, kann man da auch noch ganz leicht die Reihenfolge der Farben in der SW ändern - also da ggfs. lieber so machen, wie's vom Layout her besser passt, und dann passe ich das in der SW an...


    man könnte natürlich noch ne ISP direkt drauf machen, um den Tiny einfach mit neuer SW zu bespielen - brauchst Du dafür noch die Belegung...?


    bei Fragen einfach fragen... ;)

    It's only light - but we like it!


    Da es sich in letzter Zeit häuft: Ich beantworte keine PNs mit Fragen, die sich auch im Forum beantworten lassen!
    Insbesondere solche von Mitgliedern mit 0 Beiträgen, die dann meist auch noch Sachen fragen, die bereits im entsprechenden Thread beantwortet wurden.
    Ich bin keine private Bastler-Hotline, technische Tipps etc. sollen möglichst vielen Lesern im Forum helfen!

  • Ja, dann halt den... k.A., warum's da dauernd was neues gibt, zuerst TSOP1736, dann den nicht mehr und dafür SFH5110, nun den auch nicht mehr, dafür den anderen TSOP... ?(


    naja, Hauptsache, es gibt überhaupt irgendein Trumm das passt, ohne gleich wieder woanders bestellen zu müssen... ;)

    It's only light - but we like it!


    Da es sich in letzter Zeit häuft: Ich beantworte keine PNs mit Fragen, die sich auch im Forum beantworten lassen!
    Insbesondere solche von Mitgliedern mit 0 Beiträgen, die dann meist auch noch Sachen fragen, die bereits im entsprechenden Thread beantwortet wurden.
    Ich bin keine private Bastler-Hotline, technische Tipps etc. sollen möglichst vielen Lesern im Forum helfen!

  • Ja, da wird der neue bestimmt besser sein - ich hatte das auch so verstanden, dass die da zwischendurch mal die alten SFH5110 verkloppen, bevor sie gar nix anderes da haben... ;)


    SFH5110 hatte aber auch ganz gut funktioniert bei mir, ca. 8 m Entfernung mit der SEG-Glotzenfernbedienung, obwohl mein Wohnzimmer komplett mit ESL beleuchtet ist, da kann man eigentlich nicht meckern - da wird's mit dem neuen bestimmt noch besser... :)


    dazu muss man auch sagen, dass diese Empfangsroutine vom Danegger auch recht störfest gemacht ist, die unterdrückt auch ganz kurze Stör-Pulse, und steigt nicht gleich aus, wenn mal ein Puls ein bisschen länger oder kürzer ist, als er eigentlich sein sollte...

    It's only light - but we like it!


    Da es sich in letzter Zeit häuft: Ich beantworte keine PNs mit Fragen, die sich auch im Forum beantworten lassen!
    Insbesondere solche von Mitgliedern mit 0 Beiträgen, die dann meist auch noch Sachen fragen, die bereits im entsprechenden Thread beantwortet wurden.
    Ich bin keine private Bastler-Hotline, technische Tipps etc. sollen möglichst vielen Lesern im Forum helfen!

  • Ich habe auch eine Reihe anderer TSOPs verwendet, da immer eine Sorte nicht verfügbar war, u.a. den TSOP1236 und auch die neueren mit 5 Stellen. Aber für so eine kleine Platine wäre sicher auch ein kleinerer Empfänger wie der TSOP2236 nicht schlecht. Ich hab den hier schon mal verwendet: http://www.sedu-board.de/category/sedu-hardware/


    Für den LCD-Anschluss, gab es da nicht auch bei Roboternetz eine WSL-Belegung?

  • eine WSL-Belegung

    Da braucht man eigentlich nix Neues zu erfinden. Bei einer 2x8-Leiste ganz einfach die Belegung von der einreihigen 16poligen Leiste 1:1 übernehmen: 1 auf 1; 2 auf 2 ... 16 auf 16


    Hab' von Pollin mal LCDs, die hatten Anschluss-Pads für eine 2x8 Pin-Leiste auf der Platine vorgesehen, da ist das genau so gemacht.
    Passt dann prima für 16poliges Hosenträgerkabel im 1,27mm-Raster.

  • Hey, cool, habe ich ja noch gar nicht gesehen, die Addon-Boards... ?( :thumbup:


    schick' mir doch mal ne kleine "Doku" (also was wo belegt ist, Bilder etc.), dann stelle ich die hier rein... also in den Thread in der Lobby, meine ich...


    Für den LCD-Anschluss, gab es da nicht auch bei Roboternetz eine WSL-Belegung?

    Möglich, aber wen interessiert's...? :D - Nee, ernsthaft: die wird wohl nicht anders sein - das einzig sinnvolle ist hier eigentlich, die Pin-Nummern genauso zu belegen wie am Display selbst, sonst muss man ja am Flachbandkabel die Adern umsortieren, das ist ekelhaft...


    EDIT: Ja, Dieter, stimmt, gibt ja sogar Displays wo das schon auf 2x8 vorgesehen ist mit identischer Belegung...

    It's only light - but we like it!


    Da es sich in letzter Zeit häuft: Ich beantworte keine PNs mit Fragen, die sich auch im Forum beantworten lassen!
    Insbesondere solche von Mitgliedern mit 0 Beiträgen, die dann meist auch noch Sachen fragen, die bereits im entsprechenden Thread beantwortet wurden.
    Ich bin keine private Bastler-Hotline, technische Tipps etc. sollen möglichst vielen Lesern im Forum helfen!

  • Steht schon im Text:

    es ist auch eine Empfangsroutine für NEC-Protokoll in Arbeit, damit kann man das Teil dann über diese billige flache kleine Chinesen-Controller-FB steuern.

    ;)

    It's only light - but we like it!


    Da es sich in letzter Zeit häuft: Ich beantworte keine PNs mit Fragen, die sich auch im Forum beantworten lassen!
    Insbesondere solche von Mitgliedern mit 0 Beiträgen, die dann meist auch noch Sachen fragen, die bereits im entsprechenden Thread beantwortet wurden.
    Ich bin keine private Bastler-Hotline, technische Tipps etc. sollen möglichst vielen Lesern im Forum helfen!

  • Bzgl. IR-Empfänger ist mal wieder ein Pinbelegungsdurcheinander.
    Daher schlage ich folgende Lösung vor: Wir einigen uns auf eine Pinbelegung wie für SFH5110.
    Dazu kompatibel ist von VISHAY der TSOP34136.
    Kann man dann alternativ je nach Verfügbarkeit wählen.


    Oder hat jemand eine bessere Idee?


    gibt ja sogar Displays wo das schon auf 2x8 vorgesehen ist mit identischer Belegung

    Ja, das hatte ich ja geschrieben ...

  • Genau, und ich habe eben zugestimmt... ;)


    Ja, der andere Tsop sieht doch auch gut aus... Würde einfach pinbelegung für den nehmen, ggfs. Kann man ja stiftleiste rein machen, und Empfänger mit anderer belegung mit Litze anschliesen..

    It's only light - but we like it!


    Da es sich in letzter Zeit häuft: Ich beantworte keine PNs mit Fragen, die sich auch im Forum beantworten lassen!
    Insbesondere solche von Mitgliedern mit 0 Beiträgen, die dann meist auch noch Sachen fragen, die bereits im entsprechenden Thread beantwortet wurden.
    Ich bin keine private Bastler-Hotline, technische Tipps etc. sollen möglichst vielen Lesern im Forum helfen!

  • hallo ich bin im Internet auf dieses Projekt aufmerksam geworden, und würde es mir gerne nachbauen.
    Jetzt stellt sich noch die Frage wie die Fuses des Tiny gesetzt werden sollen. Oder bleibt alles auf default Werte stehen. ?(
    Werde dann auch noch ein Eagle Layout und Schematic erstellen.Zusätzlich werde ich noch ISP mit einbinden.


    Danke für die Hilfe :)