Go Down

Topic: 4x7Seg-Anzeige über 4x ULN2803A und 4x 74HC595N mit Arduino Mega2560 ansteuern (Read 1 time) previous topic - next topic

mkl0815

Quote

Was aber passiert!!!
Es erscheint eine 4 (soll 3) auf der 7Seg von der 1er Stelle und nichts (soll 1) auf der 7Seg von der 10er Stelle.

Das auf der 10er Stelle nix ausgegeben wird, ist klar, das hatten wir schon erklärt. Du schickst eine 0 und damit wird keine LED eingeschaltet.
Das auf der 1er Stelle ein 4 ausgegeben wird, ist korrekt, denn laut Deinem Code ist Index 0 der Wert für die Zahl 0 und Index 4 der Wert für die Zahl 4:
Code: [Select]
shiftOut(datenPin, taktPin, MSBFIRST,zahlen[4]);
Quote
int zahlen[10]={63,6,91,79,102,109,125,7,127,111};  //Zahlen für 7Seg 0,1,2,3,4,5,6,7,8,9,

uwefed

Quote
Frage 2: Muss ich mir eine 16Bit Wahrheitstabelle (später 32Bit) anlegen und mir den Wert heraussuchen der für 13 auf zwei 7Seg steht? Das wären dann aber 89 Zahlen (später 9989) die ich mir neu suchen müsste.


Du brauchst nicht 9989 Zahlen. Du brauchst die eingeschaltenen Segmente nur einmal für jede Zahl also bei zahlen von 0 bis 9 nur 10 Werte. Diese können dann auf jeder Stelle ausgegeben werden. Um Zahlen zu schreiben hast Du ja auch nur 10 Zeichen und nicht 9999 verschiedenen Zeichen um eine 4-stellige Zahl zu schreiben. Das ist ja das funktionaelle an den arabischen Zahlen.

Ein MAX7219 würde mit weniger Aufwand bis zu 8 Stellen 7-Segmentanzeigen ansteuern.

Grüße Uwe

arduino-yoda

Danke für eure Hilfe ich hab den Fehler gefunden.
Ein Pin auf den Breadboard hatte sich gelöst und deswegen hat die eine 7Seg immer so komische Dinge angezeigt. Deswegen bin ich vermutlich auch vom richtigen Programmierweg abgekommen.   :smiley-roll-sweat:

@uwefed

Quote

Ein MAX7219 würde mit weniger Aufwand bis zu 8 Stellen 7-Segmentanzeigen ansteuern.


Welche Vorteile würde mir der MAX7219 bringen?
Würde der Programmieraufwand geringer bzw. die Verkabelung?
Ich würde doch die vier 74HC595 einsparen aber die vier ULN2803 bleiben doch?

Warum ich frage ist. Ich will einen analogen Sensor auswerten und dessen Werte darstellen. Der Sensor (US oder IR) soll einen Abstand messen und mir diesen dann in Zentimetern oder Millimetern auf der Anzeige ausgeben.

uwefed

http://playground.arduino.cc//Main/MAX72XXHardware



Der MAX7219 kann ohne weitere Bausteine außer eines Widerstandes bis zu 8 Stellen 7-Segment Display mit gemeinsamer Kathode ansteuern. Zur Steuerung braucht er 3 Pins.
Die Konversion Zahl-Segmente übernimmt der MAX7219. Du kannst aber auch im Matrix-Modus jedes einzelne Segment ansteuern.

Laut Deiner Zeichnung hast Du Displays mit gemeinsamer Anode.

Grüße Uwe

arduino-yoda

So richtig kann ich mich nicht mit deinem Vorschlag anfreunden. (Trotzdem Danke!)  ;)

Pro:
-Verkabelung wird einfacher und damit auch Platzbedarf

Kontra:
-Ich benötige trotzdem einen ULN weil ich meine 7Seg´s mit 8,4V bei 20mA betreibe und der Max das nicht verträgt.
http://www.reichelt.de/index.html?;ACTION=7;LA=3;OPEN=0;INDEX=0;FILENAME=A500%252FSA23-12RT.pdf

Neutral:
-Preis:
6,05€(MAX)+0,35€(ULN)=6,40€
4*0,31(74HC595)+4*0,35€=2,64€



Go Up