Arduino - Steuerung von 8 RGB-LEDs (Anfängerfrage)

Erstmals Poster hier. Ich habe ein Arduino Uno-Projekt, für das 8 RGB-LEDs gesteuert werden müssen. Sie werden mit Drucktasten ein- und ausgeschaltet, rot, dann grün, dann blau und dann ausgeschaltet. Manchmal müssen auch mehrere LEDs zusammen eingeschaltet bleiben. Es wird Teil eines elektronischen Schlosses sein, also im Grunde eine Tastatur, die anstelle von Tasten farbige LEDs als Passworteingabe hat. Ich verwende jedoch kein physisches Arduino, ich mache es in der 123D Circuits-Umgebung (hergestellt von AutoDesk), daher bin ich darauf beschränkt, welche Teile ich verwenden kann.

Als Möglichkeiten stieß ich auf Charlieplexing und Multiplexing sowie auf die Verwendung von Transistoren und Schieberegistern. Das Problem ist, dass ich noch keinen Elektronikunterricht hatte, daher habe ich keine Ahnung, was besser / geeigneter / sogar möglich ist, insbesondere in Bezug auf die Verkabelung der Teile und wie sie mit meinem Projekt kommunizieren schwer für mich zu verstehen oder gar mit dem Coden anzufangen.

Ich habe diese Anleitung befolgt , um zu versuchen, 4 RGB-LEDs zu verdrahten. Es sind jedoch LEDs mit gemeinsamer Anode und meine mit gemeinsamer Kathode, und wie gesagt, ich habe keine Ahnung, wie ich die Elektronik herausfinden soll (ich kann nicht einmal Schaltpläne lesen, ohne mich bei dem zu verlieren, was ich dort lesen soll ).

So habe ich versucht, es zu verkabeln: http://postimg.org/image/gu4cwdv0n/full/ gemäß den Anweisungen des Handbuchs. (Aufgrund der schrecklichen grafischen Oberfläche für Drahtbrücken auf der dortigen Plattform kann es absurd schwierig sein zu sehen, was passiert.)

Es hat mit dem bereitgestellten Code nicht funktioniert, also nahm ich an, dass meine Verkabelung das Problem ist.

BEARBEITEN - Ich habe 8 Pins, die für diese LEDs verwendet werden können. Wenn es keine Alternative zu Charlieplexing gibt, könnte jemand erklären oder vergleichen, wie es sich bei RGB-LEDs von normalen LEDs unterscheidet? Ich glaube, ich könnte es so besser verstehen, weil ich denke, das ist es, was mich beunruhigt: die gemeinsame Kathode im Gegensatz zu 3 Kathoden in 3 mehrfarbigen LEDs.

Vielen Dank im Voraus.

Mir scheint, Sie stürzen sich Hals über Kopf in ein Projekt, das für Ihre derzeitigen Fähigkeiten etwas zu komplex ist. Warum beginnst du nicht mit 1 RGB-LED und steuerst das. Lernen Sie Schaltpläne zu lesen, aber beginnen Sie mit den ganz einfachen. Sie können versuchen, was auch immer zu plexen, aber wenn Sie nicht verstehen, wie es funktioniert, werden Sie es nicht alleine zum Laufen bringen. Beginnen Sie also mit etwas Einfacherem und lernen Sie daraus. Wenn Sie die Grundlagen verstehen, wird es viel einfacher sein, das zu lösen, was Sie jetzt wollen.
Das kenne ich sehr gut, haha. Wenn nur mein Lehrer auch so denken würde. Es ist mein erster Informatikkurs an der Universität, aber er hat sich entschieden, mit Arduino zu arbeiten. Ich kann bereits eine RGB-LED ansteuern. Ich kann so viele RGB-LEDs steuern, wie ich Pins habe. Was ich nicht verstehe, sind genau die was auch immerplexings.
Ein paar Kommentare zu Ihrer Fritzing-Zeichnung: Die Kathoden der gemeinsamen Kathoden-LEDs sollten ohne Widerstand direkt an die Arduino-Masse gehen. Sie haben rote Drähte mit dem Arduino 5V und GND verbunden. Traditionell verwenden wir Schwarz für Masse und Rot für eine positive Stromversorgung - Sie werden sich und andere nicht verwirren, wenn Sie sich an diese Tradition halten.
@ PeterBennett Nun, ich habe es einfach so gemacht, wie die Person, die das von mir verlinkte Instructable geschrieben hat, es gesagt hat. Ich glaube, dass es etwas mit Charlieplexing zu tun hat und wie es mit der Tri-State-Logik funktioniert. Deshalb habe ich auf die übliche Farbcodierung verzichtet. Ich denke, ich sollte auch etwas zu meinem Beitrag hinzufügen ...
Das Charlieplexing von LEDs mit gemeinsamen Pins ist viel schwieriger als mit separaten Anoden und Kathoden. Möglicherweise möchten Sie stattdessen ein Schieberegister oder einen E/A-Expander verwenden.
@IgnacioVazquez-Abrams Das verfügbare Schieberegister (ich weiß nichts über E / A-Expander) ist der 74HC595. Ich gehe davon aus, dass jedes Schieberegister ausreicht, oder?
Push-Pull-Ausgänge funktionieren entweder mit CC- oder CA-LEDs. OC-Ausgänge funktionieren nur mit CA-LEDs.
@IgnacioVazquez-Abrams in Ordnung, dann wird meins gut funktionieren! Vielen Dank!

Antworten (2)

Der einfachste Weg, so viele RGB-LEDs zu steuern, besteht darin, einen LED-Streifen zu verwenden, der bereits einen eigenen Controller enthält, wie z. B. den WS2812B. Darüber hinaus gibt es bereits Bibliotheken für viele der Modelle von "adressierbaren" LEDs. Von dort aus müssen Sie nur noch ein Objekt für die richtige Anzahl von LEDs instanziieren, sie auf die gewünschten Farben einstellen und dann die richtige Methode aufrufen, um sie alle auf einmal zu konfigurieren.

NeoPixel-Stick

light_ws2812

Leider ist keines davon bei 123D Circuits verfügbar, und wie gesagt, ich muss in der virtuellen Umgebung arbeiten (meine Universität hat nicht genügend Arduino-Kits für alle Klassen und mein Lehrer sprang vor, um zu versuchen, uns "Grundlagen" beizubringen).
Ah, Sie bauen es also nicht wirklich, Sie simulieren es nur.

Sie verbinden alle LEDs mit einem Pin des Arduino? Das kann sehr schief gehen, da der Arduino max. Der Strom beträgt 40 mAh pro Pin. Verwenden Sie lieber einen Transistor, der wie ein digitaler Schalter funktioniert. Wenn die Basis ein Signal bekommt, schaltet sie um. Wenn Sie jede LED einzeln ansprechen möchten, können Sie eine LED mit integriertem Controller verwenden, z. B. den WS2812, oder ein Schieberegister verwenden (z. B. den 74hc595). Link . Die Seite enthält auch einen Schaltplan zur Verdrahtung des Schieberegisters und der LEDs. Persönlich sehe ich keinen Grund, die LEDs zu multiplexen, wenn Sie 8 oder weniger verwenden.

gemeinsame Kathode oder Anode sind nur der Einfachheit halber. Wenn Sie normale LEDs verwenden würden, haben Sie 6 Pins (3 mal Anode und 3 mal Kathode). Aber Sie würden nur einen Pin (entweder Kathode oder Anode) steuern, es wäre nicht notwendig, RGB-LEDs mit 6 Pins zu haben. Der Hersteller verbindet also entweder alle Kathoden oder Anoden miteinander, was ihnen ihren Namen gibt: gemeinsame Kathode oder Anode. Bei einer gemeinsamen Anode würden Sie den gemeinsamen Stift (oft den längsten Stift) mit einem Vorwiderstand an eine Spannungsquelle und die anderen Stifte an Masse anschließen, um sie zu beleuchten. Das heißt, wenn Sie digitalWrite (PIN, LOW) verwenden, leuchtet es auf. Bei einer gewöhnlichen Kathoden-LED verbinden Sie den langen Stift (Kathode) mit Masse und jede Anode (die anderen Stifte) erhält einen Vorwiderstand und Sie müssen sie hochziehen, um sie zu beleuchten (verbinden Sie sie mit einer Spannungsquelle). also mit digitalWrite (PIN,