Forum: Mikrocontroller und Digitale Elektronik 8x8 LED-Matrix mit Arduino UNO Rev3


von Schmitt T. (schmitt-triggerin)


Angehängte Dateien:

Lesenswert?

Hallo,

im Rahmen eines Eigenprojekts möchte ICH - Azubine im 2. Lehrjahr EGS - 
eine konventionelle 8x8 LED Matrix (Low-Current-LEDs) mit einem Arduino 
UNO Rev 3 ansteuern, welcher mit einer einfachen 9V Blockbatterie 
versorgt werden soll.

Da ich mich noch mehr oder weniger in den Kinderschuhen einer richtigen 
Elektronikerin befinde und noch nie die Chance hatte, eine solche Matrix 
einmal selbst aufzubauen, habe ich mir ein wenig Hilfe unter Arduino.cc 
(https://www.arduino.cc/en/Tutorial/RowColumnScanning) geholt und - wie 
wahrscheinlich unschwer an meinem Schaltplan zu erkennen ist - mich in 
den hier befindlichen Artikel über LED-Matrizen 
(https://www.mikrocontroller.net/articles/LED-Matrix) eingelesen.

Bevor ich nun anfange, die Platine zu layouten und das Ätzbad 
auszulasten wollte ich nachfragen, ob die Ansteuerung der LEDs mit dem 
bereits erwähnten Schaltplan funktionieren kann oder ob ich mich 
eventuell mit den Pins des Arduinos, Konzeption der Vorwiderstände, 
etc. vertan habe - um dies selbst beurteilen zu können, fehlt mir wohl 
noch ein bisschen Erfahrung. Desweiteren: Ist eine 9V-Blockbatterie für 
den Betrieb geeignet oder sollte ich lieber ein 12V-Netzteil o.ä. 
verwenden? Ich möchte natürlich nicht, dass das Multiplexen schon nach 
zehn Minuten den Geist aufgibt. :D

Da man die Anschlusspins von bereits gezeichneten Bauteilen ja nicht 
umbenennen kann (???) habe ich außerdem ein Bild des Arduinos angeheftet 
- Pinbelegung sollte von links nach rechts identisch sein.

Über die Programmierung kann ich mir später noch eigene Sorgen machen. 
:D


Viele Grüße

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Schmitt T. schrieb:
> Ist eine 9V-Blockbatterie für
> den Betrieb geeignet

Ein paar Minuten wird das schon laufen, aber der Spannungsregler des Uno 
verbrät 4/9 der Batterieleistung in Wärme - ist also nicht besonders 
effektiv. Besser wäre tatsächlich entweder eine 5V Quelle (wie eine USB 
Wandwarze) oder 2 LiIon Akkus mit 7,4V. Die LiIon Akkus müssten wieder 
an VIN, die USB Wandwarze könnte direkt an die 5V des Arduino.
Wie du schon gemerkt hast, hat der Uno viel zu wenig Pins für eine 
anständige Matrix, so das du auf der Software Seite ganz schön was zu 
tun kriegst mit der Schieberei zwischen verschiedenen Ports. Die Frage 
wäre, ob es nicht einfacher ist, zumindest die Spaltentreiber T9-T16 
durch ein Schieberegister anzusteuern:
https://www.mikrocontroller.net/articles/AVR-Tutorial:_Schieberegister
Das braucht nur 3 Pins am Controller und macht die Bitshifterei deutlich 
einfacher.

von T0m (werwolf92)


Lesenswert?

9V Block würde nicht lange halten.

Kannst aber auch einfach eine Powerbank anschließen als Stromversorgung.
Oder halt ein Netzteil.

Wenn es rote LED's sind, passt deine Schaltung auch.

von Markus S. (acepilot)


Lesenswert?

Ich wäre mit der obigen Schaltung gerade wenn du neu in das Thema 
einsteigst etwas vorsichtig. Ich weiß ja nicht genau was für LED's bzw. 
welche Matrix es ist, aber unter der Annahme das deine LED's rot sind 
und eine Flussspanung von ca. 2 Volt haben fallen an dem Vorwiderstand 3 
Volt ab. Du schreibst weiter von Low Current LED's. Unter der Annahme 
das diese 5mA benötigen kannst du errechne, welcher Strom bei einem 
Widerstand von 100Ohm möglich ist.

3V / 100Ohm = 30mA

Solltest du in deinem Programm testen und nur eine LED ansteuern wird 
über diese genau der errechnete Strom fließen, was die Lebenserwartung 
der LED deutlich verkürzen dürfte. Im korrekten Multiplexingbetrieb ist 
es dagegen natürlich kein Problem und unter Umständen sogar notwendig um 
die komplette Helligkeit der LED zu erreichen.

von Jay (Gast)


Lesenswert?

Schmitt T. schrieb:
> Bevor ich nun anfange, die Platine zu layouten und das Ätzbad
> auszulasten wollte ich nachfragen, ob die Ansteuerung der LEDs mit dem
> bereits erwähnten Schaltplan funktionieren kann oder ob ich mich
> eventuell mit den Pins des Arduinos, Konzeption der Vorwiderstände,
> etc. vertan habe

Irgendwelchen Arduion-Krempel kopieren kann jeder. Da lernst du wenig. 
Damit du mehr lernst, baue doch mal einen Teilstrang mit acht LEDs, 
Widerständen und Transistoren auf. Dann nimmst du dein Multimeter, 
siehst dir Ströme und Spannungen an und kontrollierst ob die mit deinen 
vorher ausgerechneten Werten in einem Strang übereinstimmen.

> Ist eine 9V-Blockbatterie für
> den Betrieb geeignet oder sollte ich lieber ein 12V-Netzteil o.ä.
> verwenden?

Wurde schon gesagt, aber wenn du schon misst, nimm deine Messwerte, 
überlege dir wie der Verbrauch der kompletten Matrix im Durchschnitt im 
Betrieb aussieht (ans Multiplexen denken), addieren den Verbrauch des 
Arduino dazu und vergleiche das mit der typischen Kapazität einer 9V 
Batterie (grob 600 mAh).

Auf welche Werte kommst du? Wenn du mal alles komplett aufgebaut hat, 
miss wieder. Wie gut war deine überschlägige Rechnung?

von MaWin (Gast)


Lesenswert?

Markus S. schrieb:
> Unter der Annahme das diese 5mA benötigen

Du solltzest nicht so viel annehmen.

Die Schaltung ist passend ausgelegt für 2mA LEDs und arbeitet mit 15mA 
Spitzenstrom im 1:8 Multiplex, die Spaltentransistoren können die 120mA 
auch problemlos mit 10mA Basisstrom schalten. Die Schaltung ist ok  und 
150mA liefert auch ein 9V Block länger als 1 Stunde.

von Schmitt T. (schmitt-triggerin)


Lesenswert?

Markus S. schrieb:

> 3V / 100Ohm = 30mA

Wie nun mein Vorposter bereits erkannt hat (Sorry, hätte ich vielleicht 
von Anfang an dazu schreiben sollen), verwende ich für die Matrix rote 
Low-Current-LEDs mit einer Flussspannung von 2V und einem Durchlassstrom 
von 2mA, weshalb ich für den Spitzenstrom einer LED maximal 20mA annahm.

VCC - UBE  - UCE  - ULED = URV
5V  - 0,7V - 0,3V - 2V = 2V

Für einen Spitzenstrom von 20mA habe ich also 100Ohm berechnet. :)


~~Gernell hier schon mal ein großes Danke für alle Antworten - werde 
wohl meine Spannungsversorgung noch einmal überdenken und mich in das 
Thema Schieberegister einlesen. :D

von Schmitt T. (schmitt-triggerin)


Lesenswert?

Jay schrieb:
> Irgendwelchen Arduion-Krempel kopieren kann jeder. Da lernst du wenig.
> Damit du mehr lernst, baue doch mal einen Teilstrang mit acht LEDs,
> Widerständen und Transistoren auf. Dann nimmst du dein Multimeter,
> siehst dir Ströme und Spannungen an und kontrollierst ob die mit deinen
> vorher ausgerechneten Werten in einem Strang übereinstimmen.

Das ist eine super Idee, auf die ich - warum auch immer - niemals selbst 
gekommen wäre. /o\ Danke!


> Wurde schon gesagt, aber wenn du schon misst, nimm deine Messwerte,
> überlege dir wie der Verbrauch der kompletten Matrix im Durchschnitt im
> Betrieb aussieht (ans Multiplexen denken), addieren den Verbrauch des
> Arduino dazu und vergleiche das mit der typischen Kapazität einer 9V
> Batterie (grob 600 mAh).

Auch das klingt super. Werde ich mal ausprobieren und mich ggf. hier 
nochmal melden. :)

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Markus S. schrieb:
> Unter der Annahme
> das diese 5mA benötigen kannst du errechne, welcher Strom bei einem
> Widerstand von 100Ohm möglich ist.
>
> 3V / 100Ohm = 30mA

Ist natürlich Quak - der Poster hat vergessen, das auch am besten 
Transistor im durchgeschalteten Zustand Spannung verloren geht als 
Sättigungsspannung.
Die Matrix selber wird so prima funktionieren, wenn du nicht aus 
Versehen Spalten und Zeilen verwechselst, denn dann würden sich mehrere 
LED einen Vorwiderstand teilen und heller und dunkler werden.

Ausserdem nehmen selbst sogen. LowCurrent LEDs es nicht übel, wenn da 
mal 15-20mA fliessen und das nicht stundenlang durchgehalten wird. Ich 
programmiere gerade einen Controller für das Bedienpanel eines alten 
Mutlitrackers und da benutzt Fostex gar keine Vorwiderstände, sondern 
lediglich PNP Transistoren als Zeilentreiber und einen TD62381 für die 
Spalten (der gut deinen NPN Transistoren entspricht). Wie bei dir läuft 
das alles mit 5V - allerdings eben mit bis zu 0-300mA je nach Display 
und stark schwankend. Ein Reservoir Elko, um die LED Versorgung zu 
sieben, kann also nicht schaden. Den kannst du da oben vom Emitter der 
PNP gegen Masse schalten.

von G. H. (schufti)


Lesenswert?

allesammt nicht genügend, setzen!

Wie bitte sollen die T1-T8 (NPN!!!) jemals durchschalten???

N.B.: das mit einem Vorwiderstand pro Zeile setzt voraus, dass jeweils 
nur eine LED pro Zeile aktiv sein darf (bei Programmentwurf beachten). 
Bei mehreren teilt sich der Strom dann auf 1-8 auf und die Helligkeit 
wird entsprechend uneinheitlich.

: Bearbeitet durch User
von Schmitt T. (schmitt-triggerin)


Lesenswert?

G. H. schrieb:
> allesammt nicht genügend, setzen!
>
> Wie bitte sollen die T1-T8 (NPN!!!) jemals durchschalten???


Meinst du wegen der 5V Spannungsversorgung am Kollektor?
Ich seh's nicht wirklich, warum die nicht durchschalten sollten. :(

von T0m (werwolf92)


Lesenswert?

G. H. schrieb:
> allesammt nicht genügend, setzen!
>
> Wie bitte sollen die T1-T8 (NPN!!!) jemals durchschalten???

Ich glaub das nennt man dann Emitterfolger...

von MaWin (Gast)


Lesenswert?

G. H. schrieb:
> allesammt nicht genügend, setzen!
>
> Wie bitte sollen die T1-T8 (NPN!!!) jemals durchschalten???
>
> N.B.: das mit einem Vorwiderstand pro Zeile setzt voraus, dass jeweils
> nur eine LED pro Zeile aktiv sein darf (bei Programmentwurf beachten).
> Bei mehreren teilt sich der Strom dann auf 1-8 auf und die Helligkeit
> wird entsprechend uneinheitlich.

Das ist jetzt aber ein Beitrag, der maximales Unwissen offenbart.

Der einzige, der hier eine 6 setzen bekommt, bist du.

von G. H. (schufti)


Lesenswert?

Tim W. schrieb:
>> Wie bitte sollen die T1-T8 (NPN!!!) jemals durchschalten???
>
> Ich glaub das nennt man dann Emitterfolger...

und das ist auch ganz sicher die hier übliche und gewünschte Einsatzart 
???

@MaWin (Gast): Laberkopp

von MaWin (Gast)


Lesenswert?

G. H. schrieb:
> und das ist auch ganz sicher die hier übliche und gewünschte Einsatzart

Das ist eine durchaus praktikable: Es gibt (in diesem Fall) genug 
Spannung um den ca. 1V Spannungsabfall akzeptieren zu könenn, man spart 
die Basisvorwiderstände und kann die ganze Stromverstärkung des 
Transistors nutzen.

Nur die Dummen erkennen die Vorteile nicht, glauben gar, daß es nicht 
funktioniert, weil sie mit festgefahrenem Gehirn keine von der Norm 
abweichenden Schaltungen verstehen, mangels Grundwissen über 
elektronische Bauelemente.

von G. H. (schufti)


Lesenswert?

bla bla bla, das ist wieder so eine Ausrede um den eigenen Fehler nicht 
eingestehen zu müssen.
Die TOin ist Anfängerin und braucht keine Schaltung die (ohne Erklärung 
zufällig) genau in diesem Fall funktioniert.

Es ist nett, wie du dir anmaßt meine Ausbildung zu beurteilen.
Schließt wohl vorschnell von dir auf andere ...

: Bearbeitet durch User
von Arduinoquäler (Gast)


Angehängte Dateien:

Lesenswert?

Tim W. schrieb:
> 9V Block würde nicht lange halten.

Versteh ich nicht!

Also meine 9V Blocks die halten ewig .....  ;-)

Als "Stromabschwächer" noch einen Schaltregler dazu ...

von MaWin (Gast)


Lesenswert?

G. H. schrieb:
> bla bla bla, das ist wieder so eine Ausrede um den eigenen Fehler
> nicht eingestehen zu müssen.

Es geht hier um DEINE Fehler, zu behaupten, die Schaltung funktioniere 
so nicht, bloss weil DU nicht weisst wie ein Emitterfolger arbeitet.

Deine Fehler und Deine Unkenntnis sind hier schon hinreichend 
dukumentiert.

> Die TOin ist Anfängerin und braucht keine Schaltung die (ohne Erklärung
> zufällig) genau in diesem Fall funktioniert.

Jedenfalls braucht die TO absolut gar nicht deine vor Unkenntnis nur so 
strotzenden Einwürfe, weil DU nicht mal die Grundlagen verstanden hast.

Die verschiedenen Ansteuermethoden von Multiplexanzeigen habe ich 
jedenfalls schon ausreichend erklärt
http://www.dse-faq.elektronik-kompendium.de/dse-faq.htm#F.8.1

> Es ist nett, wie du dir anmaßt meine Ausbildung zu beurteilen.

Ausbildung ? Welche Ausbildung ? Zum Dummschwätzer ?

G. H. schrieb:
> Schließt wohl vorschnell von dir auf andere ...

Sagt der, der gerade versucht, anderen Leuten angebliche Fehler zu 
unterstellen, nach dem er selbst den dicksten Bock geschossen hat ?

G.H., dein Auftritt hier geht gar nicht. Du reitest dich mit jedem 
Beitrag immer weiter rein.

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
Noch kein Account? Hier anmelden.