Hallo,
gleich zu Anfang muss ich sagen ich bin nicht grade fit in Elektronik aber möchte mir was kleines feines bauen
Und zwar habe ich hier 40 RGB LED die ich nun über ein I2C Kanal Steuern möchte. Geht das? Wenn ja wie?
Ich habe da ein vorstellung:
Ich habe für jedes LED ein kleinen Chip (damit der Kabelbaum nicht zu groß wird weill bei 40 LED á 3 Farben hätte 120 Leitungen und das wäre doof weill ich nicht viel platz habe) Also jeder LED hat ein Chip welcher 3 Ports hat, an jedem Port hängt eine Farbe des LED. Und nun sende ich ich über den I2C Bus ein Befehl
[CHIP_ID]:[PORT]:[ZUSTAND]
über welchen ich dann jede Farbe ein und ausschalten kann.
Geht das???
Klar, nur nicht mit fertig erhältlichen Chips, sondern mit Microcontrollern, in denen Du einen I2C-Slave softwaremäßig implementierst. Allerdings wäre dann zu überlegen, ob man nicht vielleicht einen Controller für ein paar mehr LEDs nimmt, zB 5. Dann hätte man 15 Leitungen plus zwei für I2C plus zwei mal Versorgung -> macht also 19, genau die richtige Anzahl für einen 20-poligen uC wie zB den ATtiny26. Das Ganze dann 8 mal und natürlich für jeden der I2C-Slaves eine eigene Adresse.
Die fertig kaufbaren Portexpander haben idR zwar auch eine aus 8 möglichen Adressen (3 Adressleitungen), aber nicht die dann benötigten 15 Ausgänge. Ausserdem sind die teurer als ein ATtiny.
Eigentlich ist man auch nicht auf I2C festgenagelt, man kann auch einen asynchronen Bus nutzen und käme dann mit einer Leitung aus. Dazu könnte man sogar den in einigen Controllern bereits vorhandenen UART benutzen und müsste nur noch ein Protokoll wie Du es bereits vorgeschlagen hast definieren.
Multiplexen halte ich übrigens für weniger geeignet, da durch die Zusammenfassung der 3 Chip-Kathoden innerhalb der LED das Zeitverhältnis recht ungünstig wird. Trotzdem ist es denkbar und wird in größeren LED-Matrizen auch gemacht. Möglich wäre zB, die LEDs in einer 4x10-Matrix anzuordnen, wodurch man wg. RGB 10 Spalten und 12 Zeilen hätte, die Spalten wären dann die gemeinsamen Kathoden, die Zeilen die Anoden. Ist aber nicht ganz einfach zu realisieren, da man höhere Ströme und damit Treiber braucht.
Also warum ich I2C gedachte habe ist weil ich hier ein FoxBoard (http://www.acmesystems.it/?id=4) Habe und das ein I2C Bus hat, dann könnte man das Später auch über Netzwerk das steuern.
Mit dem ATtiny26 wäre das schwer? Weill wie gesagt viel mit Elektronik habe ich nicht gemacht. Aber das soll ein kleiner lichstrahl werden welcher richtig in die wand soll.
Und was wäre die maximal Anzahl von ATtiny26 die ich über ein Bus steuern könnte?? Gibt es ein schönes einfach howto dazu? Weill wie gesagt viel dmait habe ich noch nicht damit gemacht.
Puh, hängt davon ab, wie schnell Du schalten willst - irgendwann machen Dir die Aufbaukapazitäten schlicht einen Strich durch die Rechnung. Prinzipiell kann es dafür kein Howto geben, weil viel zu viele Parameter reinspielen und das Ganze recht speziell ist. Wie gesagt: Du verwendest hier nicht "den" I2C-Bus, sondern Du nutzt die bereits gemachte Erfindung und implementierst die Realisierung selbst!
Lesezeichen