Hi,
ich scheitere an etwas, das zu einfach ist, um irgendwo genauer erklärt
zu werden.
Gegeben: ein Arduino Microcontroller, ein MAX7219, 3 LED (sollen dann am
Ende 14 werden).
Gesucht: Wie steure ich die LED einzeln an?
Wenn ich nicht alles komplett falsch verstanden habe, bedeutet "Common
Cathode", dass Pin 2 ("DIG0") mit den Kathoden aller drei LED verbunden
sein muss, und Pin 14 ("SEG A") mit der Anode der ersten, Pin 16 ("SEG
B") mit der Anode der zweiten und Pin 20 ("SEG C") mit der Anode der
dritten LED.
Die Kathode, also der "-" Pol, ist die kurze Seite. Der Code schaltet
per
lc.shutdown(0, false); // The MAX72XX is in power-saving mode on startup, we have to do a wakeup call
16
lc.setIntensity(0, 8); // Set the brightness of display between 0 and 15
17
lc.clearDisplay(0); // Clear the display
18
lc.setScanLimit(0,1);
19
}
20
21
int i=0;
22
int j=0;
23
int stat=1;
24
25
void loop() {
26
lc.setLed(0,i,j,stat);
27
j++;
28
if(j>7){
29
j=0;
30
i++;
31
delay(100);
32
}
33
if(i>7){
34
stat=1-stat;
35
i=0;
36
j=0;
37
}
38
delay(150);
39
40
}
Wenn ich die LED andersrum einstecke, leuchten sie, und ihre Helligkeit
verändert sich auch. Wenn ich die LED richtigrum reinstecke, bleiben sie
dunkel. Widerstand an ISET hab ich 10 kOhm eingestellt.
Umgekehrt eingesteckt leuchten die LED fleißig vor sich hin und ändern
auch ihre Helligkeit schön. Vermutlich ist das die Sperrspannung, von
der schon die Rede war?
Theoretisch müsste ich doch mit SPITransfer schauen können, ob der
Arduino und der MAX sich verstehen. Hab ich aber noch nicht wirklich
ausprobiert.
Hat irgendwer einen einfachen Tipp?
Danke!
MAX Pins:
Segmente A...G, DP >> Anode
Digits 0...7 >> Kathode
Edit:
Wenn du die Bsp. der Lib nimmst muss irgendwas passieren. Haste dich
damit schon näher befasst?
Übrigens gehört der Thread nach "µC & Elektronik", fällt mir gerade auf.
Ich denke es würde nicht schaden die Eigenschaften des MAX7219 nochmals
zu Gesichte führen.
Der MAX7219 ist optimiert um 64 einzelne LEDS mit jeweils acht
gemeinsamen Kathodenanschlüssen oder acht Common Anode 7-Segment
Anzeigen und Dezimalpunkt anzusteuern. Im Falle von einzelnen LEDS
müssen jeweils acht LEDS mit ihren Anoden zusammengeschaltet werden und
einen der Digit Treiber Ausgänge angeschlossen werden. Die Anoden kommen
in der Reihenfolge a-g und Dp dran. Da Acht Digittreiberausgänge
vorhanden sind kann min bis zu 64 einzelne LEDs oder acht Sieben Segment
Anzeigen mit gemeinsamer Anode ansteuern.
Intern unterscheidet der MAX7219 zwischen dekodiertem Modus und frei
ansteuerbaren Matrix Modus. Im Falle von einzelnen LEDs muß auf frei
ansteuerbarem Modus durch entsprechende Programmierung des Control
Registers umgeschaltet werden. Programmiertechnisch muß man dann acht
Bytes schreiben um alle LEDs mit ihrem Inhalt ansteuern zu können. Jedes
der acht Datenregister ist einem Digittreiberausgang zugeordnet. Aber
das steht ja alles im Datenblatt...
Es sind fünf Konfigurier Register vorhanden die anwendungsspezifisch
eingestellt werden müssen. Da mußt Du nun das Datenblatt dazu genau
studieren um alle Registereinstellungen richtig benützen zu können.
Shutdown register sollte bei Dir den Wert 0x01 haben
Decode Mode Register den Wert 0x00
Intensity register 0x0F
Scanlimit register den Wert 0x07
Displaymode Register sollte 0x00 sein
Schreib 0xFF in alle LED Register, dann sollten alle LEDs an sein.
Umgekehrt, bei 0x00 sollte nichts an sein.
Vorausgesetzt, der MAX7219 wurde richtig konfiguriert, liest er nun den
Inhalt der internen Datenregister in einer bestimmten Reihenfolge ab und
steuert selbständig im Multiplexbetrieb nacheinander alle acht LED
Gruppen nacheinander ab, begrenzt den individuellen LED Arbeitsstrom
durch den festgelegten Wert des externen Widerstands und macht das bis
neue Daten eingeschrieben werden. Nebenbei bemerkt ist es unbedingt
notwendig so nahe wie möglich zum MAX7219 an den Vdd und Vss Anschlüssen
einen Elko von 100-220uF zu legen um sicherzustellen, daß genügend
Spitzenstrom zur Verfügung steht. Der Spitzen Stromverbrauch ist durch
das Multiplexen viel höher als der Mittelwert. Ohne C verseucht das die
5V Stromversorgung durch hohen Ripple.
Jedenfalls, vorausgesetzt, daß die Arduino Bibliothek funktioniert, der
MAX7219 richtig angeschlossen ist, müßtest beim Schreiben von "Einsen"
und korrektem Controlregister Inhalt alle angeschlossenen LEDs zum
Leuchten bringen.
Bei den ControlRegistern muß man aufpassen, alle Bits richtig zu
verstehen und zu setzen, sonst macht der MAX etwas anderes was Du
willst.
Hoffe, es hilft Dir ein bischen.
Bei den Beispielen der Arduino- Lib tut sich leider nichts. :-(
Im Datenblatt steht "Common Cathode", nicht "Common Anode". Einen
7-Segment Baustein hab ich, aber der ist Common Anode. Er ergibt eine
Art inverses Verhalten. Vielleicht kann ich den aber trotzdem benutzen,
indem ich SEG A als common nehme und dann die einzelnen Digits
ansteuere.
Ich danke erst mal für die Hilfe und bastele weiter.
Marco G. schrieb:> Bei den Beispielen der Arduino- Lib tut sich leider nichts. :-(>> Im Datenblatt steht "Common Cathode", nicht "Common Anode". Einen> 7-Segment Baustein hab ich, aber der ist Common Anode. Er ergibt eine> Art inverses Verhalten. Vielleicht kann ich den aber trotzdem benutzen,> indem ich SEG A als common nehme und dann die einzelnen Digits> ansteuere.
Oh jeh! Da hast Du recht. Tut mir leid Dir was Falsches gesagt zu haben.
Das ändert nichts daran, als das die LEDs natürlich mit jeweils acht
Cathoden zusammen auf einen Digit Treiber gehören. Auf keinen Fall
umgekehrt. Der MAX steuert ja alle Common Cathode Gruppen sequenziell
an.
>> Ich danke erst mal für die Hilfe und bastele weiter.
Bezüglich der Library kann ich nichts sagen. Ich habe mir immer eigenen
Code geschrieben. Für Arduino habe ich nichts Eigenes weil ich da früher
nur mit PICs und 8051er gerarbeitet habe.
Generell funktionieren die publizierten Arduino Bibliotheken. Lies
nochmals die Doku und Beispielcode für die MAX7219 Bib genau durch um
etweige Abweichungen zu erkennen.
Wenn Du einen Oszi hast, lass Dein Programm wiederholt den MAX ansteuern
und monitore alle SPI Leitungen für Aktivität. Am DO Pin solle das vom
Arduino gesendete Datenpaket bei Anfang der nächsten Sendung von 16
Taktimpulsen wieder bitweise herauskommen.
Wenn das nicht der Fall ist, mußt Du das zuerst beseitigen.
Hallo,
immer schön wichtige Informationen Häppchenweise verteilen, so macht das
am meisten Spaß. :-(
Wenn dein "Display" Common Anode hat, dann musste je ein Segement zu
Common Anode machen und per Digits einzeln ansteuern. Sollte ja nun kein
Problem sein. Du machst nur die Segmente zu Digits und die Digits zu
Segmente - gedanklich.
Veit D. schrieb:> Hallo,>> immer schön wichtige Informationen Häppchenweise verteilen, so macht das> am meisten Spaß. :-(>> Wenn dein "Display" Common Anode hat, dann musste ein je Segement zu> Common Anode machen und per Digits einzeln ansteuern. Sollte ja nun kein> Problem sein. Du machst nur die Segmente zu Digits und die Digits zu> Segmente.
Das ist falsch weil ja die Digittreiberausgänge hart schalten und nur
die Segmentausgänge für konstanten Strom sorgen. Umgekehrt kann das
nicht richtig funktionieren.
CA LED Displays sind nicht machbar mit dem 7219.
Die Arduino publizierten Bibliotheken kann man als eine Art Referenz
Design betrachten die als eine Art Beispielslösung für Arduino und
spezifizierte externe HW dienen soll. Bei genauer Einhaltung der
publizierten Rahmenbedingungen machen sie was der Designer vorhatte und
verifizieren das Beispiel.
Erst wenn dieses Beispiel funktioniert sollte man eigene Änderungen wenn
notwendig anbringen.
Veit D. schrieb:> Hallo,>> immer schön wichtige Informationen Häppchenweise verteilen, so macht das> am meisten Spaß. :-(>> Wenn dein "Display" Common Anode hat, dann musste je ein Segement zu> Common Anode machen und per Digits einzeln ansteuern. Sollte ja nun kein> Problem sein. Du machst nur die Segmente zu Digits und die Digits zu> Segmente - gedanklich.
Vergiß meinen ersten Beitrag. Ich habe es falsch verstanden.
Hallo,
bist du dir da sicher das es nicht funktionieren soll?
Ich steuere mit einem MAX7221 31 einzelne LEDs an.
Dabei sind immer 4 Led Anoden an einem Segment verbunden.
Die Kathoden letztlich an den Digits.
Das heißt es gibt immer gemeinsame Anoden und gemeinsame Kathoden.
Man kann das so strickt nicht trennen. Die Leds müssen nur richtig herum
angeklemmt sein. Welche Led am Ende leuchten soll bestimmt man mit dem
Digit und Segment. Man hat keinerlei Einschränkung.
Veit D. schrieb:> Hallo,>> bist du dir da sicher das es nicht funktionieren soll?> Ich steuere mit einem MAX7221 31 einzelne LEDs an.> Dabei sind immer 4 Led Anoden an einem Segment verbunden.> Die Kathoden letztlich an den Digits.> Das heißt es gibt immer gemeinsame Anoden und gemeinsame Kathoden.> Man kann das so strickt nicht trennen. Die Leds müssen nur richtig herum> angeklemmt sein. Welche Led am Ende leuchten soll bestimmt man mit dem> Digit und Segment. Man hat keinerlei Einschränkung.
Das ist bei Dir schon in Ordnung. Es geht ja aber um die zeitliche
Steuerung der CC Leitungen.
Allerdings hat man die von mir erwähnte Einschränkung nur bei Displays
mit interner CC oder CA Verbindungen. Bei einzelnen LEDs spielt das ja
keine Rolle.
So wie ich das sehe ist ja jeweils immer nur ein DigitTreiber Ausgang
für eine bestimmte Zeitperiode aktiv. Das erlaubt jedem Segment den mit
dem Rset Widerstand bestimmten Strom für gleichmäßige Helligkeit nach
Masse hin über den O.D Treiber Ausgang zu sourcen. Die
DigitTreiberAusgänge sind einfache Open Drain Ausgänge ohne irgendwelche
LED spezifische Strombegrenzung für das einzelne gerade betriebene LED.
Siehst Du das nicht ähnlich?
P.S Jedenfalls sehe ich selber, daß ich mich da mit meinen Einwände in
eine falsche Strasse verrannt hatte;-)
Hallo,
um die Sache rund zu machen soll Marco seine 3 Leds richtig anklemmen
zwischen Segment A und Digits 0 bis 2 und folgende Code testen.
Zubeachten ist das man das Scanlimit anpassen muss! Bezieht sich auf die
Anzahl der benötigten Digits.
1
// Arduino Mega2560
2
3
#include<LedControl.h> // Library for LED control with MAX72XX
4
5
constbytepinMOSI=51;// is connected to DataIn (DIN)
6
constbytepinCLK=52;// is connected to CLK (CLK)
7
constbytepinCS=26;// is connected to LOAD (CS)
8
9
10
LedControllc=LedControl(pinMOSI,pinCLK,pinCS,1);// MOSI, CLK, CS, number of device
11
12
boolstate=true;
13
14
voidsetup()
15
{
16
lc.shutdown(0,false);// The MAX72XX is in power-saving mode on startup, we have to do a wakeup call
17
lc.setIntensity(0,8);// Set the brightness of display between 0 and 15
Hallo Gerhard,
es kann natürlich sein das ich auch etwas gedanklich verhaue. :-)
Ich sehe es jedoch wie du das die Digit Leitungen vom Max gemultiplext
werden. Ich sehe jedoch auch das mich das als Programmierer nur am Rande
interessiert. Bei programmieren meiner Lib. :-)
Bei Common Kathode Anzeigen werden alle Segmentleitungen zu allen
Displaysegmenten durchgeschliffen und nur die Digits gehen zu den
gemeinsamen Anzeige-Kathoden. Das wäre der Idealfall, wie im Datenblatt
gezeigt.
Hat man eine Common Anode Anzeige, dann kann man die Digits nicht
getrennt zuführen, man muss wie bei einzelnen Leds alles verbinden. Wie
bei mir ein komplettes Leitungsgitter machen. Segmente und Digits müssen
jeweils durchgeschliffen werden. Dann werden die Segmente gedanklich -
im Programm - zu Digits umfunktioniert und umgekehrt. Man baut sich am
Ende eine große Led Matrix. Nur eben mit fertigen CA Anzeigen. Wenn das
nicht funktionieren würde, so denke ich, würden meine einzelnen Leds
nicht funktionieren.
Soweit korrekt oder falsch verstanden?
@ Marco:
ich weiß nicht was du für Led Anzeigen hast, aber 10k für Rset sind
schon sehr sportlich in meinen Augen. Rset sollte den maximalen Strom
begrenzen bei maximaler Helligkeit in der Software. Ansonsten besteht
die Gefahr das du per Software übers Led Limit schießt.
Veit D. schrieb:> Hallo Gerhard,>> es kann natürlich sein das ich auch etwas gedanklich verhaue. :-)>> Ich sehe es jedoch wie du das die Digit Leitungen vom Max gemultiplext> werden. Ich sehe jedoch auch das mich das als Programmierer nur am Rande> interessiert. Bei programmieren meiner Lib. :-)>> Bei Common Kathode Anzeigen werden alle Segmentleitungen zu allen> Displaysegmenten durchgeschliffen und nur die Digits gehen zu den> gemeinsamen Anzeige-Kathoden. Das wäre der Idealfall, wie im Datenblatt> gezeigt.>> Hat man eine Common Anode Anzeige, dann kann man die Digits nicht> getrennt zuführen, man muss wie bei einzelnen Leds alles verbinden. Wie> bei mir ein komplettes Leitungsgitter machen. Segmente und Digits müssen> jeweils durchgeschliffen werden. Dann werden die Segmente gedanklich -> im Programm - zu Digits umfunktioniert und umgekehrt. Man baut sich am> Ende eine große Led Matrix. Nur eben mit fertigen CA Anzeigen. Wenn das> nicht funktionieren würde, so denke ich, würden meine einzelnen Leds> nicht funktionieren.>> Soweit korrekt oder falsch verstanden?
Hmm...
Wenn ich Dich richtig verstehe könnte man CA Displays verwenden solange
man die Zuordnung der Segmente der FW überläßt und im nicht dekodierten
Modus operiert. D.h. Anstatt dass jedes Display einzeln aktiviert wird,
sind dann die Digit Leitungen dann die "Segment Aktivierungs Busse". Das
Display wird als von a-dp reihenweise gescannt anstatt als Digit 1-n.
Wenn man das mit einer Zeitlupenkameta photographieren würde, könnte man
sehen, daß alle Displays ihre Segmente gleichzeitig von abis dp
sequenziell durchlaufen.
Das würde bedeuten, daß sich die Zuordnung der Datenregister um 90 Grad
dreht. Also, daß das erste Datenregister für alle "a" Segmente
verantwortlich wäre. Das zweite dann "b" u.s.w.
Das hätte übrigens den Vorteil, daß man bei einer schnellen seitlichen
Kopfbewegung keinen Stroboskop Effekt mehr sehen würde.
So gesehen verstehe ich Deinen Einwand. Sehe ich das richtig?
Offenbar hatte ich beim Reset des Arduino nicht den MAX7219 nicht
ordentlich resettet.
Jetzt läuft es jedenfalls, den ganzen Nachmittag ging nichts.
Die 6511BH (CA) hab ich testweise andersrum verwendet, "SEG A" bzw "SEG
B" sind jetzt die Common Anode, evtl kann man das in irgendeine FAQ mal
rein.
Natürlich kann man dann nicht die fertigen Buchstaben und Zahlen
verwenden, aber das ist ja per Software leicht lösbar.
Da bei einem 8-digit ja ohnehin an SEG X 8 LED hängen und an DIG Y auch,
kann ich mir beim besten Willen nicht vorstellen, dass es einen
qualitativen Unterschied macht. Beide sind ja "common".
Danke für die Hilfe beim Denken und alle detaillierten Hinweise!
Verschieben konnte ich den Thread nicht mehr, ich hatte aus der Suche
nach MAX7219 heraus einen neuen Post gemacht und nicht auf den richtigen
Bereich aufgepasst.
Ich vermute, ein Foto/Video vom entstandenen "Kabelsalat" ist eher nicht
so spannend. Falls doch jemand will, hier das vorläufige Resultat
(photos.app.goo . gl/892Thz1awFYSLpPTA). Die + und - Schiene am
Breadboard sind die "common cathode". j und i jetzt vertauscht.
Code
Hallo Gerhard,
ich würde sagen das siehst du richtig. Also du verstehst mich.
Ich habe in meinen beiden Bsp. für Marco auch nur Segment mit Digit
vertauscht. Einmal wurden 3 Leds senkrecht und das andere mal 3 Leds
waagerecht angesteuert. Wie du sagst um 90° verdreht.
Wenn man zum Bsp. Buchstaben mit 7-Segment Anzeigen darstellen möchte
muss man diese sowieso in seiner Software abbilden. Welche
Anzeigensegment-Leds für welche Buchstabendarstellung angesteuert werden
müssen. Diese Zuordnung kann man in Software machen wie man möchte.
Dadurch spielt common Anode/Kathode in der Hinsicht keine Rolle mehr.
Wenn man Common Kathode Anzeigen nimmt wirds vielleicht etwas leichter,
mag sein.
Ich habs für meine einzelnen Leds gemacht, andere machen Laufschriften
und bauen sich Buchstaben zusammen und rufen diese nur noch auf.
In der hier verwendeten LedControl Lib gibts zum Bsp. im Header ein
binäres charTable Array. Das müßten vordefinierte Zahlen und Buchstaben
sein. Was möglicherweise nur mit common Kathode funktioniert, falls die
vorhandenen Funktionen nicht noch eine 90° Drehung/Umsortierung
erlauben. So genau habe ich nun auch nicht reingeschaut. Ich hatte/habe
mir auch eine eigene Lib geschrieben.
Hallo Marco,
schön das es nun klappt. Hardreset muss man eigentlich nicht machen.
Richtig initialisieren reicht aus.
Veit D. schrieb:> Hallo Gerhard,>> ich würde sagen das siehst du richtig. Also du verstehst mich.>> Ich habe in meinen beiden Bsp. für Marco auch nur Segment mit Digit> vertauscht. Einmal wurden 3 Leds senkrecht und das andere mal 3 Leds> waagerecht angesteuert. Wie du sagst um 90° verdreht.>> Wenn man zum Bsp. Buchstaben mit 7-Segment Anzeigen darstellen möchte> muss man diese sowieso in seiner Software abbilden. Welche> Anzeigensegment-Leds für welche Buchstabendarstellung angesteuert werden> müssen. Diese Zuordnung kann man in Software machen wie man möchte.> Dadurch spielt common Anode/Kathode in der Hinsicht keine Rolle mehr.> Wenn man Common Kathode Anzeigen nimmt wirds vielleicht etwas leichter,> mag sein.>> Ich habs für meine einzelnen Leds gemacht, andere machen Laufschriften> und bauen sich Buchstaben zusammen und rufen diese nur noch auf.
Das hört sich interessant an. Mit Laufschrift Design habe ich noch keine
Erfahrungen.
>> In der hier verwendeten LedControl Lib gibts zum Bsp. im Header ein> binäres charTable Array. Das müßten vordefinierte Zahlen und Buchstaben> sein. Was möglicherweise nur mit common Kathode funktioniert, falls die> vorhandenen Funktionen nicht noch eine 90° Drehung/Umsortierung> erlauben. So genau habe ich nun auch nicht reingeschaut. Ich hatte/habe> mir auch eine eigene Lib geschrieben.>> Hallo Marco,>> schön das es nun klappt. Hardreset muss man eigentlich nicht machen.> Richtig initialisieren reicht aus.
Hallo Veit,
Vielen Dank für Deine zusätzlichen Ausführungen. Bischen komplizierter
wird die Ansteuerung natürlich schon weil nun jedes bit in den Digit
Registern nun ein Segment der vorhandenen Anzeigen representiert. Das
dürfte ein Bitgeschupse werden. Auch muß man dann notgedrungen den
8-Digit Modus wählen. Andrerseits, der uC ist schnell...
Ich werde es irgendwann ausprobieren weil ich einige sehr schöne
vierstelligen CA Anzeigen habe und ich den MAX7219 gern habe. An die
besprochenen Möglichkeiten dachte ich eigentlich nicht. Da sieht man
wieder, man darf NEIN nicht immer für die bare Münze nehmen.
wenn man keinen 7219 verwenden möchte funktionieren übrigens auch zwei
164er SR als LED Ansteuerung ganz gut. Ich machte das mal um 56 LEDs
(4-Dig Anzeige, Bargraph und 6 LEDs) mit einem Arduino anzusteuern. Im
T2 ISR CTC Betrieb mit 8Mb lief das ganze autonom und robust im
Hintergrund. Allerdings war eine Zeichentabelle notwendig. Eine Tastatur
mit 8 Tasten konnte übrigens transparent noch mitbetrieben werden.
Auch die alten MC14589B 5-stelligen SPI Treiber sind noch nützlich.
Ich finde LEDs in manchen Anwendungen visuell immer noch optimal wenn es
auf gute Sichtbarkeit mit weiten Ablesewinkel ankommt.
Hallo Gerhard,
komplizierter wird es, ja, muss ja eine Herausforderung sein. :-)
Für meine Led Animation merke ich mir für jedes Digit den alten
Segmentwert.
Zu diesem addiere oder subtrahiere ich den neuen Segmentwert der
gewünschten Led.
Danach schicke ich Digit- und Segmentwert zum IC.
Mein Grundaufbau sieht wie folgt aus - laut meinem Schaltplan.
Statt einzelner Segmente in "const Led LED[]", kann man sich zum Bsp.
durch Segmentwertaddierung alle benötigten Segmente für Buchstaben als
Summenwert vorkonfigurieren. Ähnlich wie die binäre charTable.
Wenn man alle Segmentwerte für jedes Digit hintereinander berechnet um
danach alles hintereinander zu übertragen, sollte das Auge nicht die
geringste Chance haben falsche Muster erkennen zu können, bedingt durch
den Digitübergang, falls fürs Auge überhaupt möglich.
https://youtu.be/IzfOqHBgZcg
Wenn du es irgendwann aufgebaut hast, kannste ja mal Erfolg vermelden.
:-)
Veit D. schrieb:> Hallo Gerhard,>> komplizierter wird es, ja, muss ja eine Herausforderung sein. :-)
Hallo Veit,
danke für Dein Beispiel. Sieht recht elegant aus.
Werde bei Gelegenheit damit spielen.
Habe jetzt aber leider keine Forum Zeit wegen Arbeit.
Gruß,
Gerhard
Crazy H. schrieb:> Sorry wenn ich das jetzt einwerfe, aber um nur 14 LEDs anzusteuern gibt> es besser geeignete Treiber (PCA9532, PCA9555,...). Wieso den MAX7219?
Ziemlich einfach: ich hatte mir irgendwann einen 10er Pack davon gekauft
und jetzt gab es einen Anwendungsfall dafür. Klar sind 43 Cent pro Stück
Overkill, aber ganz so knapp war es damals bei mir nicht.
Ich hoffe, jetzt konnte ich alle Vorurteile der echten MyCe- Veteranen
gegenüber den Arduinisten erfüllen. :-)
Hallo Gerhard,
drängelt ja nicht, hast alle Zeit der Welt.
Beim Code anschauen fiel mir auf das ich das damals mit enum gemacht
habe. Funktioniert zwar hier, nur leider kann man nicht sizeof anwenden.
Deswegen habe ich das etwas modernisiert und möchte das noch zeigen.
Dann kann man die Anzahl der Digits automatisch ermitteln lassen und
überall verwenden. Man darf nur nicht im struct die Datentypen mischen,
dann gehts wirklich schief. Man könnte beide struct der Matrix auch
einzeln definieren. Wie einem beliebt.
Veit D. schrieb:> Hallo Gerhard,>> komplizierter wird es, ja, muss ja eine Herausforderung sein. :-)
Bei mir mit der Lib war es einfach nur ein Aufruf von setLed. Dahinter
steckt
(LedControl.cpp)
Veit D. schrieb:> Hallo Gerhard,>> drängelt ja nicht, hast alle Zeit der Welt.>> Beim Code anschauen fiel mir auf das ich das damals...
Hallo Veit,
ich werde mich bei Gelegenheit aus Neugier damit befassen. Wie gesagt,
Dein Lösungsansatz gefällt mir und dürfte auch ziemlich schnell laufen.
Einen Nachteil hat diese Art der Verwendung: Der 7219 muss immer für
alle 8 Stellen konfiguriert sein. Auch wenn man z.B. nur 4 Stellen
benötigt. Aber das macht nicht zu viel aus. Schade, daß es nicht eine
Art 7219 mit CA Ausgängen gibt.
Und nun, die Arbeit ruft:-)
Gruß,
Gerhard
Hallo Gerhard,
bin gerade am grübeln ob meine Theorie noch stimmt.
Bin nachdenklich gewurden bei den Common Anode Anzeigen.
Durch die CA Pins fließt der Summenstrom der Segmente.
Ebenso sind die Digit Pins vom MAX dafür gedacht diesen Summenstrom zu
liefern bzw. zu schalten.
Wenn man das jetzt rumdreht wie oben gedacht, dann müssen die Segment
Pins vom MAX den Summenstrom der Segmente vertragen/liefern.
Allerdings regeln diese ja intern auf den eingestellten Segmentstrom ein
der mittels Rset bzw. Register vorgegeben wird. Mein Gedanke ist derzeit
der das es zwar bestimmt funktioniert, nur die Segmenthelligkeit total
unterschiedlich sein wird. Weil sich je nachdem wieviel Segmente aktuell
aktiv sind diese den Rset Segmentstrom teilen müssen.
Bist du der gleichen Ansicht?
Oder bringe ich mich selbst durcheinander? :-)
Edit:
habs nochmal aufgemalt, sollte doch funktionieren, werde das bei
Gelegenheit auch ausprobieren, Forscherdrang ist geweckt.
Veit D. schrieb:> Hallo Gerhard,>> bin gerade am grübeln ob meine Theorie noch stimmt.> Bin nachdenklich gewurden bei den Common Anode Anzeigen.>> Durch die CA Pins fließt der Summenstrom der Segmente.> Ebenso sind die Digit Pins vom MAX dafür gedacht diesen Summenstrom zu> liefern bzw. zu schalten.> Wenn man das jetzt rumdreht wie oben gedacht, dann müssen die Segment> Pins vom MAX den Summenstrom der Segmente vertragen/liefern.> Allerdings regeln diese ja intern auf den eingestellten Segmentstrom ein> der mittels Rset bzw. Register vorgegeben wird. Mein Gedanke ist derzeit> der das es zwar bestimmt funktioniert, nur die Segmenthelligkeit total> unterschiedlich sein wird. Weil sich je nachdem wieviel Segmente aktuell> aktiv sind diese den Rset Segmentstrom teilen müssen.>> Bist du der gleichen Ansicht?
Hallo Veit,
P.S.: Bitte zuerst am Ende lesen.
Auf Grund Deines Einwands habe ich mir es noch mal durchgedacht. Es kann
aber überhaupt nicht funktionieren. Es ist richtig, dass D1-D8 die
Segmente sequenziell abgescannt. Es kann aber doch nicht richtig
funktionieren so wie mir das jetzt vorkommt.
OK. Wir haben 8 LED Anzeigen mit ihren CA Anschlüssen an
Segmentausgängen a-g+dp angeschlossen. Die Segment Sinking Treiber sind
nun Display Digit Treiber. Jeder Open Drain Digit Ausgang ist an einen
Segment aller LED Displays angeschlossen (D1-8 wird a-g+dp). Damit nun
jedes Display einzeln aufleuchten kann müssten die Datenregister einmal
so fest eingestellt werden:
00000001
00000010
00000100
.
.
10000000
Es passiert nur, dass von den Digitausgaengen die Segmente a-dp
sequenziell angesteuert werden solange das jeweilige Bit im
Datenregister gesetzt wird. Davon werden aber alle Displays gleichzeitig
betroffen weil die übrigen Datenregister auch sequenziell programmiert
werden müssen.
Aber dann müssten ja die Digit Treiber Ausgänge den Dateninhalt
bereitstellen, was sie aber nicht können weil die ja nur sequenziell von
D1-D8 durchschalten können. Also werden die Segmente nicht so wie
gewünscht angesteuert. Ein individuelle Display Bit/Segment Zuordnung
ist offensichtlich nicht mehr wirklich möglich da ja da interne Logik im
7219 den Scan autonom intern bewerkstelligt.
Dein Einwand bezüglich der Helligkeit ist übrigens auch nicht zutreffend
weil ja immer nur ein LED wegen der sequenziellen Arbeitsweise der
Digitausgänge angesteuert werden kann.
So wie es aussieht, ist das Konzept leider ein "Glorious Failure" und
kann überhaupt nicht funktionieren. Tut mir leid.
Es sei denn ich stehe jetzt gerade wirklich satt auf dem Schlauch und
missverstehe etwas Grundlegendes...
Gruss,
Gerhard
P.S. Nach weiterem Überlegen stellte ich doch fest, daß ich etwas
übersehen hatte und tatsächlich auf dem Schlauch stehe. Peinlich so
etwas. Ich nehme vorerst das vorher gesagte offiziell zurück...
Das von Dir erwähnte Problem mit der Helligkeit dürfte zutreffen da ja
jedes LED das eine "1" Zuordnung im Datenregister hat, eingeschaltet
sein wird. Im Extremfall halt alle 8 gleiche Segmente
bei allen Stellen.
Hallo Gerhard,
kann ich nachvollziehen. Je mehr man überlegt umso mehr Gedanken
schießen einem durch den Kopf. Das letzte Promille Zweifel kann nur ein
praktischer Test widerlegen oder bestätigen. :-) Mal sehen was die
Bastelkiste hergibt.
Veit D. schrieb:> Hallo Gerhard,>> kann ich nachvollziehen. Je mehr man überlegt umso mehr Gedanken> schießen einem durch den Kopf. Das letzte Promille Zweifel kann nur ein> praktischer Test widerlegen oder bestätigen. :-) Mal sehen was die> Bastelkiste hergibt.
Hallo Veit,
Ja, das würde mich auch sehr interessieren wenn Du das mal aufbauen
könntest. Bin zur Zeit mit Arbeit eingedeckt und da bin ich daheim für
Hobby weniger motiviert.
Schade übrigens, daß Maxim nicht eine 7219 Version für CA Displays
konzipierte. Ich habe da ein paar sehr schöne Multi-Digit CA LED
Displays in der Bastelkiste.
In meinem UV Belichter verwendete ich CA Multi-Digit Displays und eine
Bargraph Anzeige neben einigen diskreten LEDs als 56 LED Matrix mit
Hilfe von SPI und 164er SR von einem AVR betrieben. Das funktionierte
als ISR wirklich gut. Alle LEDs ließen sich dann transparent ansteuern
weil die ISR den Refresh bewerkstelligte. War mit dem Ergebnis sehr
zufrieden. Im aktuellen Betrieb war es dann so auch nicht viel anders
als mit dem MAX7219. Interessant war, wenn man den Kopf seitlich schnell
bewegte, daß man dann einen Stroboskop Effekt beobachten konnte obwohl
der Refresh rund 60 Mal/s war.
Bin mal gespannt was Dein Experiment erbringen wird.
Gerhard
Ich verstehe den Unterschied nicht, ob in einem 1x CC Display alle 8
Segmente von D0 an sind oder in einem 8x CA Display alle "SEG A".
Letzlich steuert der Chip 8x8 Dioden an. Die gemeinsamen Kathoden hängen
an D0-D7, die gemeinsamen Anoden an SEG_A bis SEG_G.
Da man in einem 8x8 Feld ganze Zeilen oder ganze Spalten anschalten
kann, kann das für ein CA 7-Seg nicht anders sein.
In einem 8x 7-Seg kann ich ja auch alle F-Seg anschalten.
Es ist nur Vertauschung von Spalten und Zeilen.
Oder steckt in einem 7-Seg mehr als nur die gemeinsame Anode bzw
Kathode?
Hallo Gerhard,
habe 4 Stück VQE24 gefunden. Ich würde jetzt ungern Eine davon auf
Lochraster nur zum testen "verschandeln", deswegen fertige ich eine
Leiterplatte für alle 4 an usw.. Bitte Zeitmäßig um Geduld. Bin kein
echter Freund von Lochrasteraufbau.
Laut Internetrecherche sind wir mir Common Anode nicht die Ersten. :-)
https://marco-difeo.de/2013/02/21/drive-max7219max7221-with-common-anode-displays/
Deswegen bin ich guter Dinge das es klappt.
Hallo Marco,
muss ich dir wirklich den Unterschied zwischen Common Anode vs. Kathode
erklären? Ich denke nicht. Der Rest wurde schon ausführlich diskutiert
denke ich.
Veit D. schrieb:> Hallo Gerhard,>> habe 4 Stück VQE24 gefunden. Ich würde jetzt ungern Eine davon auf> Lochraster nur zum testen "verschandeln", deswegen fertige ich eine> Leiterplatte für alle 4 an usw.. Bitte Zeitmäßig um Geduld. Bin kein> echter Freund von Lochrasteraufbau.>> Laut Internetrecherche sind wir mir Common Anode nicht die Ersten. :-)> https://marco-difeo.de/2013/02/21/drive-max7219max7221-with-common-anode-displays/> Deswegen bin ich guter Dinge das es klappt.>> Hallo Marco,>> muss ich dir wirklich den Unterschied zwischen Common Anode vs. Kathode> erklären? Ich denke nicht. Der Rest wurde schon ausführlich diskutiert> denke ich.
Guten Morgen!
Faszinierend! Würde Spock entgegnet haben.
Dann bin ich mal auf Deine Ergebnisse schon gespannt. Mit dem Beispiel
Code ist die meiste Arbeit die Verdrahtung der Displays. Da hatte ich
mich mit meinen Gedanken ganz schön verfahren und anfänglich nur
Pferdefüsse gesehen.
Der Code dazu ist natürlich relativ aufwendig.
Ein Leser hat da übrigens auch Bedenken wegen der Stromaufteilung und
möglichen Überlastung. Ich denke andrerseits, daß die Strombegrenzung
der Segmenttreiber das verhindert. Es würde nur ungleiche Helligkeit zur
Folge haben. In seinem Bild sehen die Segmente aber doch nicht zu
ungleich aus.
Was mir auffällt: Es ist in dieser unsrigen Welt schwer der Erste zu
sein;-)
Zeit zu Frühstück...
Veit D. schrieb:> muss ich dir wirklich den Unterschied zwischen Common Anode vs. Kathode> erklären? Ich denke nicht. Der Rest wurde schon ausführlich diskutiert> denke ich.
In einem 8x8 Feld aus einzelnen LED ist SEG_A eine von acht Common
Anoden und DIG_0 eine von acht Common Cathoden.
In einem aus 8 7-Segment-Anzeigen bestehenden Display ist SEG_A eine
Common Anode (Aller A-Segmente) und DIG_0 eine Common Cathode (der
letzten Stelle).
Wenn deine aus 8 Stellen bestehende Anzeige 8.8.8.8.8.8.8.8. ausgeben
kann, sind alle SEG_A (nacheinander) aktiv.
Der wichtigste Unterschied, wenn ich ein Common Anode auf SEG_A als
Anode und DIG_0 bis DIG_7 als Kathoden laufen lasse, ist die genaue
Reihenfolge der mit 500(?) MHz durchlaufenden Anzeigen.
Mit einem extrem schnellen Filmverfahren würde man den Unterschied
erkennen können. Ein extrem schnelles Filmverfahren würde ja auch
erkennen, was in einem 8x8 Diodenfeld die "Zeilen" und was die Spalten
sind.
Aber wenn der MAX7219 alle 2^64 Muster aus 8x8 LED anzeigen kann, kann
er auch (mit SEG_A ... SEG_F als Common Anode) alle 8-stelligen Zahlen
auf einem CA Display darstellen. Natürlich nur mit einer ziemlich
nervigen transponierten Matrix, das streite ich ja nicht ab.
Die "8." auf einer einzelnen Common Anode unterscheidet sich nicht von
der Anzeige von 8 Oberstrichen auf einem achtfach Common Cathode.
Hallo,
kurzes Lebenszeichen von mir.
Platine habe ich bei elecrow in Auftrag gegeben, jetzt heißt es warten.
In der Zwischenzeit fummel ich am Code rum. Dabei habe ich mir eine
zusätzliche Hürde eingebaut. Da ich den MAX IC zwischen die Beinchen
eines Digit gequetscht habe, musste ich die quasi 1:1 Hardware
Segment-Digit Zuordnung aufgeben. Das muss ich zusätzlich im Code
korrigieren. Wäre sonst zu einfach. :-) Geht aber bis jetzt ganz gut
voran. Ich melde mich wieder wenn es läuft bzw. nicht läuft. Das muss
und wird laufen. :-)
Hallo Gerhard,
habe es heute nicht lassen können mein Steckbrett mit einer Anzeige zu
bestücken und den Datalogger anzuklemmen für erste praktische Tests.
Klappt. Mit juckte es in den Finger. :-)
Ausgegeben wird der Wert -8301. Das '-' wandert mit je nach
Stellenanzahl. Wenn ich mit dem Jumperkabel von Common Anode an die
entsprechenden Segmente vom MAX7221 gehe, werden alle "Ziffern" korrekt
dargestellt. Habs in die Screenshots eingezeichnet. Die Zuordnungen sind
bei mir nicht nach Reihenfolge, weil das Layout optimiert ist. Links
Beschriftung laut VQE Anzeige und in Klammern die Beschriftung laut
MAX7221.
Die Digits vom MAX7221 (im Bild die Treppenstufen) ackern mit 727Hz bei
voller Helligkeit mit 12,1% Duty Cycle.
Jetzt bleibt mir wirklich nur noch warten fürs große Ganze ... :-)
Veit D. schrieb:> Hallo Gerhard,>> habe es heute nicht lassen können mein Steckbrett mit einer Anzeige zu> bestücken und den Datalogger anzuklemmen für erste praktische Tests.> Klappt. Mit juckte es in den Finger. :-)>> Ausgegeben wird der Wert -8301. Das '-' wandert mit je nach> Stellenanzahl. Wenn ich mit dem Jumperkabel von Common Anode an die> entsprechenden Segmente vom MAX7221 gehe, werden alle "Ziffern" korrekt> dargestellt. Habs in die Screenshots eingezeichnet. Die Zuordnungen sind> bei mir nicht nach Reihenfolge, weil das Layout optimiert ist. Links> Beschriftung laut VQE Anzeige und in Klammern die Beschriftung laut> MAX7221.>> Die Digits vom MAX7221 (im Bild die Treppenstufen) ackern mit 727Hz bei> voller Helligkeit mit 12,1% Duty Cycle.>> Jetzt bleibt mir wirklich nur noch warten fürs große Ganze ... :-)
Hallo Veit,
Habe Deine Nachricht erst jetzt bemerkt. Das ist ja toller Fortschritt.
Glückwunsch! Hoffe, daß die LP bald ankommen. Wenn das mal alles
funktioniert kann man den Treiber abkapseln und nur übers API
ansprechen. Der Rest geschieht dann im Hintergrund. Ich werde das auch
ausprobieren. Ich habe da einige schöne 4-Digit CA Anzeigen die ich auch
gerne mit dem MAX7219 betreiben wollte. Bis jetzt betrieb ich diese
Anzeigen mittels 74HC164 SR und Timer ISR wie ich es im UV Belichter
gemacht hatte wo ich 56 LEDs im MUX Betrieb ansteuern mußte. Mit dem
7219 ist das bequemer.
Bin schon gespannt auf weitere Erfolgsnachrichten...
Gruß,
Gerhard
Hallo,
Schaltplan für Jörg falls er hier vorbeischaut.
Für andere natürlich auch.
elecrow muss wohl erst den Neujahrsfestferienbestellrückstand abarbeiten
bevor ich dran bin. ;-) Habe noch keine Produktionsbestätigung.
Veit D. schrieb:> Schaltplan für Jörg falls er hier vorbeischaut.
Ja;-)
Hat die Schaltung nicht den Nachteil das der Strom für ein Digit (bei
einer 8 sind es 7 Segmente) vom Chip von einem Segmentanschluss
geliefert werden muss? Die Segmentausgänge liefern doch vermutlich
Konstantstrom. Ich vermute dass die Segmente daher nicht gleich hell
leuchten, je nachdem welche Ziffer dargestellt wird. Verständlich
beschrieben?
Hallo,
mit diesem Gedankenfehler bist du nicht alleine. Hatte ich auch - aber
nur ganz kurz. :-)
Kannst dir ja noch die Post weiter oben durchlesen. Ich handel das im
Übrigen nicht nur theoretisch ab, ein Steckbrettaufbau mit Doppeldigit
läuft schon. Nur wie soll ich das mit Worten erklären?
Es ist im Grunde doch so, egal was man an den MAX anschließt, es muss
elektrisch richtig herum angeschlossen werden. Der Segmentport ist und
bleibt (+) und der Digitport ist und bleibt (-).
Wir stellen uns einen vollbeschaltenen MAX vor mit einer großen LED
Matrix bestehend aus Einzel-LEDs. Nichts anderes sind die
7-Segmentanzeigen elektrisch gesehen, egal ob CK oder CA. Der
Zusammenhang bzw. der Unterschied zwischen CK und CA besteht praktisch
nur darin ob man die Ziffer zugehörigen Segmente einer 7-Segmentanzeige
senkrecht oder waagerecht betrachtet. Nur das macht den Unterschied
zwischen CK und CA aus.
Entweder werden alle benötigten Segmente einer Ziffer Position für
Position mittels Digitmultiplexing durchgeschalten. CK! Oder wird
Segment für Segment per Multiplexing auf allen Positionen
durchgeschalten wo dieses Segment benötigt wird. Egal wie man das dreht.
Pro MAX Segmentleitung ist immer nur eine Led aktiv und die MAX
Digitleitung muss den Summenstrom schalten. Nur das bei CA die
Digitleitungen die Segmente darstellen und umgedreht.
Anders formuliert. Wir wollen auf allen Stellen eine 1 darstellen. Dazu
wird Segment B + C benötigt. Jetzt leuchten mit CA Anzeigen immer im
Wechsel wegen Multiplexing alle "B" Segmente auf allen Stellen und
danach alle "C" Segmente auf allen Stellen. Es bleibt jedoch dabei, dass
immer nur eine LED am MAX pro Segmentleitung leuchtet. Man muss das
versuchen im Kopf zu trennen oder sich das Schaltbild anschauen.
Für das Auge ist es egal wie herum das Multiplexing stattfindet.
Hauptsache es wechselt schnell genug damit es flimmerfrei erscheint. Es
ist im Grunde nur eine andere Verteilung der Segmente auf der Anzeige wo
was gleichzeitig leuchtet.
Der zweite Trick den man bei der Programmierung machen muss ist, man
kann und darf nicht mehr Segmentweise pro Einzelziffer pro Digitadresse
denken. Man darf nicht mehr einfach pro Ziffer die Segmentwertigkeiten
addieren und der einen Digitadresse zuordnen. Man muss den Bedarf eines
Segmentes über alle darzustellenden Ziffern ermitteln und damit die
benötigten Segmentwertigkeiten addieren und einer "Digitadresse"
zuordnen. Die Digitadresse stellt ja jetzt ein Segment dar und nicht
mehr eine Position. Diesen 2. Knoten muss man gedanklich lösen bevor man
anfängt. Bedeutet man muss immer alle Digitadressen in einem Rutsch
beackern wenn man auf der Anzeige irgendwas ändern möchte. Ändert sich
die Anzeige nicht muss man nichts übertragen.
Ich hoffe das ist verständlich formuliert. Am besten parallel den
Schaltplan betrachten und immer daran denken das der MAX immer seine
Digits weiterschaltet, egal was wie dranhängt.
Veit D. schrieb:> Ich hoffe das ist verständlich formuliert.
Es ist das erste mal dass ich mir einen Kommentar nebst Bildern
ausgedruckt habe. Das muss ich mir mal in Ruhe ansehen;-) Vermutlich
kommt dann noch die ein oder andere Frage.
Hallo,
vielleicht hilft dir eine andere Erklärung vorweg.
CK Anzeige.
Man möchte alle 8 Segmente inkl. Punkt des ersten Digits einschalten.
Dann schreibt man in das erste Digitregister den Wert 255. Fertig.
CA Anzeige.
Alles ist in der Matrix um 90° verdreht. Siehe Bilder.
Die erste Anzeige, ist meinetwegen der Segmentleitung A zugehörig. CA
Pin.
Die MAX Digitleitungen stellen die Segmente A-G-DP dar und führen zu den
Segmentpins der Anzeige. Um jetzt alle Segmente dieser ersten Anzeige
einzuschalten muss man in jede Digitadresse den Wert 64 schreiben. Der
Wert für das Segment A aus Sicht des MAX. Seine Digitleitungen pulst der
MAX alleine durch. Fertig.
Belässt man das Progamm so und wechselt von CA zurück auf CK, würde auf
allen Anzeigen/Digits nur das Segment A leuchten. Statt auf einer
Anzeige alle Segmente.
Veit D. schrieb:> mit diesem Gedankenfehler bist du nicht alleine. Hatte ich auch - aber> nur ganz kurz. :-)
Mein Gedankenfehler war anzunehmen das ein Segmentanschluss ein
komplettes Display treiben muss. Als Maximum also eine 8...bzw. 7
Segmente. Das ist bei Deiner Umsetzung natürlich nicht so.
> Kannst dir ja noch die Post weiter oben durchlesen.
Das habe ich, es hat etwas gedauert bis der Groschen gefallen ist.
Manchmal hat man aber auch ein Brett vor dem Kopf.
Vielen Dank für die Erklärungen und den Aufwand den Du betrieben hast;-)
Hallo,
gern geschehen.
Meine Leiterplatte ist übrigens bei elecrow aktuell in der Fertigung,
dauert also noch etwas ... man muss derzeit Geduld haben. :-)
Hallo,
die Hoffnung die heute gelieferten Platinen zu retten sind gescheitert,
habe einen Fehler in der IC Pad-Layerebene gemacht und muss neu
bestellen. Pads sind statt im Layer 2 im Layer 7 gelandet. Wo kein
Kupfer kein löten. :-)
Veit D. schrieb:> Hallo,>> Platine ist da und gleich bestückt ... funktioniert. :-)> Werde bei Gelegenheit noch ein kleines Video machen.
Sieht sehr gut gelungen aus! Glückwunsch.
Veit D. schrieb:> Hallo,>> Danke. :-) Hier 3 Videos. Der "Counter" zeigt kein flimmern oder> ähnliches. Die anderen Videos sind Effektspielereien mit etwas Fading> in/out.>> Youtube-Video "VQE24 Counter cut"> Youtube-Video "VQE24 SegmentFading schnell cut"> Youtube-Video "VQE24 SegmentFading langsam cut"
Das sind sehr schöne Anzeigen. Jedenfalls scheinen alle Segmente sehr
gleichmäßig hell zu sein. Das funktioniert wirklich einwandfrei. Welcher
uC steuert den 7221er?
OT:
Ich bin versucht mich auch irgendwann damit zu befassen. Aber zur Zeit
muß erst das LNG302 ganz fertig werden...
Habe bei der LCD Anzeige im LNG302 das greuliche blaue Backlight gegen
ein gelbgrünes LED ausgetauscht. Sieht jetzt viel schöner aus. Da wurde
intern eine 0603 LD verwendet das leicht austauschbar ist. Man muß wegen
der kleineren Spannung den Vorwiderstand vergrößern damit die LED im
Vergleich zur blauen LD nicht zu viel Strom zieht.
I hate blue LEDs;-)
Hallo,
blaue Leds sind wirklich gewöhnungsbedürftig, vorallendingen dürfen sie
einem nicht zu hell und nicht direkt anstrahlen, da wird man sonst
blöde. Wenn ich in eine helle blaue Led zu lange "reinschaue" wird mir
immer schlecht. Irgendwas passiert da. :-)
Der µC ist ein ATmega2560 mittels Arduino IDE programmiert.
Falls du mehr verraten darfst, was ist ein "LNG302"? Irgendeine
Baugruppe die mit Erdgas zu tun hat?
Veit D. schrieb:> Falls du mehr verraten darfst, was ist ein "LNG302"? Irgendeine> Baugruppe die mit Erdgas zu tun hat?
Ich vermute ein Labornetzgerät Typ 302;-)
Jörg R. schrieb:> Veit D. schrieb:>> Falls du mehr verraten darfst, was ist ein "LNG302"? Irgendeine>> Baugruppe die mit Erdgas zu tun hat?>> Ich vermute ein Labornetzgerät Typ 302;-)
Ja. Siehe Kunstwerk Thread 2020...
Ich habe schon gehofft blaue LEDs brennen sich langsam in den Reihen der
Vermarkter aus. Falsch gehofft, denn blau scheint immer noch die "Color
of Choice" zu sein..
Hallo,
Gerhard O. schrieb:> Jedenfalls scheinen alle Segmente sehr gleichmäßig hell zu sein.> Das funktioniert wirklich einwandfrei.
Ja, tut es. Egal wie viel Segmente (oder einzelne LEDs) angezeigt
werden, die Helligkeit (ohne jedes Geflimmer) ist immer die Gleiche. Und
das bei minimalem Schaltungsaufwand und großer Flexibilität.
> I hate blue LEDs;-)
Ich nicht, wie Veit schon gesagt hat, ist das Problem, das die meisten
blauen LEDs viel zu hell eingestellt sind. Wenn man das richtige Maß
findet kann das sehr gut aussehen.
rhf
Hallo,
keine Sorge, ich musste schmunzeln wegen der Mehrfachbedeutung von LNG.
Flüssigerdgas vs. Labornetzgerät :-)
Du hast gut geraten. :)
Meine Kiste gibt noch folgendes her.
9x VQB28F, gA
5x VQB27E, gK
3x VQE23F, gK
1x VQE23E, gK
1x VQE21F, gK
und noch einen kleinen Schatz von VQB71.
Weiß jemand was 'F' für einen µcd Bereich hat?