Abend zusammen,
ich steh vor dem kleinen Problem einen Strom messen(2-25mA) und dann das
ganze auf 2 7Segment Anzeigen ausgeben zu wollen.
Naja, Problem ist jetzt, ich find irgendwie nix passendes, um die beiden
7 Segment anzusteuern, für 1,4,8 Segmente gibts mehr als genug Treiber,
nur für 2(in Worten: ZWEI) lausige Stellen ist nix zu finden.
Verbaut werden sollen 2 TDSO5150.
Strommesung ist auch noch was, Gedankengang waren Shunt und
Anlog-Digital-Wandler, der dann das 7 Segment speist.
Wüsste da eventuell jemand was?
Nach gefühlten 1000017 erfolglos durchgesehenen Datenblättern, langen
Nächten geb ich auf und frag euch.
Wär ne tolle Sache, wenn jemand hier was passendes wüsste.
Schönen Abend noch,
Gregor
Nimm doch einen formalen 3,5 Stellen Treiber/Wandler und benutze nur 2
Stellen davon. Da musst Du nur aufpassen, dass Du beim Übersteuern
plötzlich einen niedrigeren Wert hast.
Du könntest das mit einem Atmega8 lösen. Miß die Spannung über dem
Shunt,
sie ist proportional zum Strom. Über einen AD-Wandler Kanal des
Kontrollers
kannst Du sie einlesen.
Die beiden 7-Segment-Anzeigen kann der Kontroller auch ansteuern.
Schalte dazu alle Segmente parallel und multiplexe die beiden Anoden.
So kommst Du mit einem Schaltkreis aus.
MfG Paul
Abend,
@Christian, was meinst du jetzt hiermit?
"Da musst Du nur aufpassen, dass Du beim Übersteuern
plötzlich einen niedrigeren Wert hast."
@Paul, naja, eben das wollte ich eigentlich umgehen ;-) Nochdazu wär der
Mega8 damit ja noch lange nicht ausgereizt.
Grüße
Gregor
GregorB. schrieb:> Abend,> @Christian, was meinst du jetzt hiermit?> "Da musst Du nur aufpassen, dass Du beim Übersteuern> plötzlich einen niedrigeren Wert hast."
geh die Zahlen von 50 bis 150 durch und stell dir vor du würdest die 3.
Stelle (die Hunderter) nicht sehen.
97, 98, 99, 00, 01, 02
ooops, nach 99 kommt 00.
Gut, deine Messung geht nur bis 25. Aber wenn es dann doch mal etwas
mehr sein sollte, kann das biss verwirrend sein, wenn die Anzeige 02
anzeigt, du auch 02 abliest und in Wirklichkeit sind es 102mA.
>Nochdazu wär der Mega8 damit ja noch lange nicht ausgereizt.
Was für einen Vorteil hast Du, wenn Du einen Prozessor "ganz ausreizt"?
Über so etwas muß man erst mal nachdenken. Die Dinger (Prozessoren)
kosten alle im einstelligen Euro-Bereich.
Tut er Dir persönlich leid, wenn er nicht an der Grenze seiner
Leistungsfähigkeit betrieben wird? Oder ist das unsportlich. Nach dem
Motto "kann ja jeder".
Nimm so ein Ding, etwas Hühnerfutter, etwas Programmieren und schon
klappts auch mit nur 2 Digits.
Man habt ihr Probleme. Oder sind Deine Probleme nicht richtig
beschrieben? Willst Du nix programmieren? Oder fehlt Wissen? So kauf
doch eine fertige Digitalvoltmeterplatine, der entsprechende
Shunt-Widerstand erzeugt auch gleich die richtige Anzeige.
Hi,
hier ist etwas Code zur Ansteuerung von zwei 7 Segmenten.
Der Code ist abgewandelt von Peter Dannegger in dem Thread
Beitrag "ADC mit Multiplexanzeige"
7Seg.h
1
typedefunsignedcharu8;
2
3
#define GA_Seg_Zehner PB0 // Gem. Anode für Zehner Segment
4
#define GA_Seg_Einer PB1 // Gem. Anode für Einer Segment
5
#define GA_PORT PORTB // Port für die Anode
6
7
#define SEG_PORT PORTD // Port für das 7 Segment
8
#define SEG_DDR DDRD // Daten-Richtungs-Register für die 7Segmente
9
10
#define _0A 0x80 // LED A im Segment
11
#define _0B 0x01 // LED B im Segment
12
#define _0C 0x08 // LED C im Segment
13
#define _0D 0x04 // LED D im Segment
14
#define _0E 0x20 // LED E im Segment
15
#define _0F 0x40 // LED F im Segment
16
#define _0G 0x10 // LED G im Segment
17
#define _DP PD1 // Dezimalpunkt 0x02
18
19
#define _00 (u8)~( _0A+_0B+_0C+_0D+_0E+_0F ) // Darstellung der Zahl mit den LED's, low active
20
#define _01 (u8)~( _0B+_0C )
21
#define _02 (u8)~( _0A+_0B+ _0D+_0E+ _0G )
22
#define _03 (u8)~( _0A+_0B+_0C+_0D+ _0G )
23
#define _04 (u8)~( _0B+_0C+ _0F+_0G )
24
#define _05 (u8)~( _0A+ _0C+_0D+ _0F+_0G )
25
#define _06 (u8)~( _0A+ _0C+_0D+_0E+_0F+_0G )
26
#define _07 (u8)~( _0A+_0B+_0C )
27
#define _08 (u8)~( _0A+_0B+_0C+_0D+_0E+_0F+_0G )
28
#define _09 (u8)~( _0A+_0B+_0C+_0D +_0F+_0G )
29
30
u8digi[2];// Arrays für die zwei 7Segmente
31
32
// Array in dem alle Zahlenwerte von 0-9 abgelegt sind
> hier ist etwas Code
Warum sollte man multiplexen ?
Der Atmega8 hat genügend Anschlüsse, um die 7-Segment-Anzeigen einzeln
statisch anzusteuern UND es bleiben noch A/D-Wandler-Eingänge übrig um
den Spannungsabfall am shunt zu messen.
char segmente[]={0x3F,0x06,0x5B,0x4F,0x6D,0x7D,0x07,0x7F,0x6F};
int wert;
int main(void)
{
DDRB=DDRD=0xFF;
while(1)
{
ADMUX=(1<<REFS1)|(1<<REFS0)|0; // Interne 2.5V Ref, ADC Eingang 0
ADCSRA=(1<<ADPS2)|(1<<ADPS0)|(1<<ADEN)|(1<<ADSC); // start
conversion
while(ADCSRA&(1<<ADSC)) ;
wert=ADCW; // 0=0V, 1023=2.56V, 99 = 0.25V
if(wert>99)
{
PORTD=PORTB=0x40; // -- in die Anzeige
}
else
{
PORTB=segmente[wert/10]; // 10er Stelle
PORTD=segmente[wert%10]; // 1er Stelle
}
}
}
Vielleicht funktioniert's sogar ungetestet
mit einen 2.5 Ohm shunt an A/D-Eingang 0.
MaWin schrieb:> Vielleicht funktioniert's sogar ungetestet> mit einen 2.5 Ohm shunt an A/D-Eingang 0.
Vielleicht sollte uns der TO mal sagen, ob es tatsaechlich um
Gleichstrom geht. Und bei einem Aufbau so ganz ohne Verstaerkerschaltung
waere auch die Spannung nicht uninteressant, bzw. der Spannungsabfall,
den die Last noch mit macht... ;)
Volker
GregorB. schrieb:> Wüsste da eventuell jemand was?
Früher hat man da einen CA3161 + CA3162 genommen.
(die 3. Stelle kannst Du ja leer lassen).
Eventuell gibt die noch irgendwo als Restposten.
Gruß Anja
Anja schrob:
>Eventuell gibt die noch irgendwo als Restposten.
Schüttelreim:
Kaufe keine Restposten
weil die mannchmal wie die Pest rosten!
Man könnte auch einen C520 benutzen, der ist kompatibel zum CA3162.
MfG Paul
Schönen Tag zusammen,
also
@ Volker, ja Gleichstrom, Spannungsfall naja, sagen wir mal wechselnd.
Mal genauer beschreiben. Versorgungsspannung der ganzen
Weltherrschaftsorgel werden 5V.
Das ganze soll mit einer KSQ auf Basis des LM 317 verheiratet werden.
Eingestellt werden sollder Strom per Poti, Regelbereich wären so
angedacht zwischen 2 und 25mA.
Da man ja wenns drauf ankommt wenig Lust hat, den für den gewünschten
Strom benötigten Widerstand zu berechnen und dann einzustellen, wollte
ich den Strom messen können.
Naja, wird jetzt vermutlich doch die Lösung mit Mega8.
Grüße
Gregor
GregorB. schrieb:> Das ganze soll mit einer KSQ auf Basis des LM 317 verheiratet werden.> Eingestellt werden sollder Strom per Poti, Regelbereich wären so> angedacht zwischen 2 und 25mA.
Du weißt aber schon was beim LM317 unter dem Parameter
"Minimum Load Current" steht?
Gruß Anja
Anja schrieb:> GregorB. schrieb:>> Das ganze soll mit einer KSQ auf Basis des LM 317 verheiratet werden.>> Eingestellt werden sollder Strom per Poti, Regelbereich wären so>> angedacht zwischen 2 und 25mA.>> Du weißt aber schon was beim LM317 unter dem Parameter> "Minimum Load Current" steht?>> Gruß Anja
Das ist aber nur bei 40V Vin, steht auch da.
Wenn du den von Farchild nimmst, da sind es 4mA minimum.
Beim 317 von National sind es 1.5mA bei 13V vin und steigt dann linear
bis zu max 3.8mA bei 40V, die 3.5mA sind nur typical values, 3.8mA wird
garantiert. Für 2mA kannst du bis 17V raufgehen, Vin.
Wenn du zwei hintereinandernimmst, damit du 1.25V als Vin hast, dann
kannst du bis zu µA runtergehen. Dies in Theorie, in der Praxis nimmt
man 3x LM317 hintereinander und dann kann man runter bis zu µA gehen
bei Spannungen von 2.5 - 37V, und die Led nach dem zweiten PSU nicht
vergessen mit mindestens 10mA damit nichts schwingt.
GregorB. schrieb:> Schönen Tag zusammen,> also> @ Volker, ja Gleichstrom, Spannungsfall naja, sagen wir mal wechselnd.> Mal genauer beschreiben. Versorgungsspannung der ganzen> Weltherrschaftsorgel werden 5V.
Ich meinte schon den Spannungsabfall am Messwiderstand. Der ist
proportional zum Strom. Bei dem vorgeschlagenen 2,5 Ohm Widerstand
waeren das 2,5 mV pro mA. Bei 25mA Last, stuenden somit an der Last nur
noch 4.9375 V zur Verfuegung. Klingt zwar nicht nach viel Verlust, aber
2,5 mV pro mA Spannungsabfall sind fuer den ADC viel zu wenig. Zumindest
bei 10 Bit und solange Vref=Vcc (=5 V) ist. Die kleinste zu messende
Groesse waeren dann knapp 5 mV und auf das LSB wuerde ich mich in diesem
Falle auch nicht unbedingt verlassen. Also Steigerung um mindestens
Faktor 4 noetig. Sofern der µC keinen internen Teiler fuer Vref hat und
Du keine zusaetzliche externe Spannungsreferenz basteln moechtest,
bleibt nur die Erhoehung des Widerstandswertes auf 10 Ohm. Das ergibt
dann einen Spannungsabfall von 10 mV pro mA am Messwiderstand. Bei 25mA
Last stuenden der Last aber dann nur noch 4,75 V zur Verfuegung.
Zusammenhaenge soweit klar?
Volker
MaWin schrieb:>> solange Vref=Vcc (=5 V) ist. Die kleinste zu messende>> Groesse waeren dann knapp 5 mV>> Vref war vorgesehen auf interne 2.56V zu stellen.
Wenn die Last den Drop-Out verschmerzen kann, wuerde ich dann auf
mindestens 5 Ohm setzen um ein "Flattern" zu minimieren. Wenn Vref unter
Vcc liegt, sollte man sich vielleicht noch ueber eine generelle
Strombegrenzung des Lastkreises Gedanken machen, damit der ADC-Eingang
keinesfalls ueber Vref rutschen kann...
In erster Linie ging es mit aber darum, dem TO das Ganze auch zu
erklaeren, da er schrieb:
>@ Volker, ja Gleichstrom, Spannungsfall naja, sagen wir mal wechselnd.
Volker