Forum: Mikrocontroller und Digitale Elektronik 7-Segmentanzeige


von Oliver N. (oli13)


Lesenswert?

Hallo zusammen,

ich brauche Hilfe bei den Experten.

Ich suche einen konkreten Schaltplan (oder noch besser einen Bausatz) 
für die Ansteuerung von 3 großen 7-Segmentanzeigen (Bauhöhe >50mm, grün) 
mit gemeinsamer Kathode. Mein Vorhaben ist, mit 8 Schaltern eine 
Dualzahl darzustellen und in eine entsprechende Dezimalzahl (0 bis 255) 
umzuwandeln.

Mir ist die Theorie des Vorhabens klar (ich kann Löten, beherrsche 
Mathematik und kann einen Mikrocontroller flashen), kann mich aber aus 
Zeitmangel NICHT in elektronische Details vertiefen.

Ich brauche das Gerät für Kinder, die zählen lernen sollen.

Für Hilfe wäre ich dankbar.

Beste Grüße,
Oliver.

von bitte löschen (Gast)


Lesenswert?

Dass bisher keiner geantwortet hat, könnte daran liegen, dass die Leute 
hier im Forum es nicht gerne haben, wenn sie das Gefühl haben, dass 
jemand sie benutzen will, um sich Zeit und Arbeit zu ersparen.

Nicht dass ich Dir das unterstellen möchte, aber die eine oder andere 
Formulierung fühlt sich ein bisschen so an.

Ein wenig Arbeit sollte man schon vor-investieren, wie z.B. dass man 
sich schon mal Bauteile auswählt, über die man dann sprechen kann.
Interessant wäre da ein Link auf die 7-Segment Anzeige, damit man z.B. 
herausfinden kann, ob man evtl eine bestimmte Mindestspannung oberhalb 
der 5V braucht, um mehrere LEDs in Reihe betreiben zu können, wie bei 
http://www.reichelt.de/?ACTION=3;ARTICLE=31577;PROVID=2402 (nur halt 
"dasselbe in grün"), und wie viel Strom die LEDs brauchen.

Oder dass man vorher schon mal etwas zum Problem recherchiert hat, z.B. 
auf dieser Website. Hast Du den hier schon gelesen?
http://www.mikrocontroller.net/articles/AVR-Tutorial:_7-Segment-Anzeige

Wie weit Du Mathe beherrscht, ist hier wenig relevant. Dass Du durch 10 
teilen kannst, kann man auch so voraussetzen. Hilfreich wäre hier die 
Information gewesen, ob Du schon mal programmiert hast, und wenn ja, in 
welchen Sprachen.

Welchen uC kannst Du denn am besten flashen?
Wie soll das Teil mit Spannung versorgt werden?

Etwas ganz anderes: (Sorry, aber die Fragen musst Du Dir gefallen 
lassen.)
Was ist das für ein pädagogisches Konzept? Sollen die Kinder Zählen oder 
Zahlen aus Ziffern lernen? Wie alt sind die Kinder? Machst Du das 
beruflich? - Ich frage ja nur. Meine Tochter wird im August 2, und fängt 
gerade an, "ja" und "nein" halbwegs korrekt einzusetzen. In der 
Krabbelgruppe werden Zählreime gesungen und bei allen möglichen 
Gelegenheiten wird gezählt. Kinder lernen Zahlen und Zählen nebenbei 
oder spätestens in der Schule. Und da lernen sie auch, den Zahlen 
Ziffern zuzuordnen, falls sich das vorher vermeiden ließ. Und diese 
Ziffern bestehen dann aus Tinte auf Papier und sehen aus wie Ziffern und 
nicht wie die der Ästhetik der Schrift beraubten Karikaturen von 
Ziffern, die sich (noch) in der technischen Welt in 7 Segmenten 
wiederfinden. Hat das einen bestimmten Hintergrund, und welchen?
Wozu die Bedienung über 8 Schalter? Hat das etwas mit einem Lernkonzept 
zu tun, bei dem Kinder nebenbei das Binärsystem lernen sollen, oder ist 
das nur das Eingabemedium, das Deiner Meinung nach am einfachsten zu 
realisieren ist? Ich bin mir relativ sicher, dass es aufgrund dieses 
"Features" schwer sein wird, einen Bausatz zu finden.

Letzte Frage:
Was hindert Dich daran, dass ganze mit einem Notebook und einem kleinen 
Programm in einer beliebigen Programmiersprache zu realisieren?

Ich hoffe, das kam jetzt nicht zu kritisch 'rüber, aber die Antworten 
interessieren mich ehrlich.

von quadral (Gast)


Lesenswert?

Philipp Klostermann schrieb:
> Dass bisher keiner geantwortet hat, könnte daran liegen, dass die Leute
> hier im Forum es nicht gerne haben, wenn sie das Gefühl haben, dass
> jemand sie benutzen will, um sich Zeit und Arbeit zu ersparen.

Oder es liegt daran, das es mitten in der Nacht ist und die meisten 
Leute wohl im Bett liegen.

Philipp Klostermann schrieb:
> Wozu die Bedienung über 8 Schalter? Hat das etwas mit einem Lernkonzept
> zu tun, bei dem Kinder nebenbei das Binärsystem lernen sollen, oder ist
> das nur das Eingabemedium, das Deiner Meinung nach am einfachsten zu
> realisieren ist?

Verstehe ich auch nicht so ganz. Sollen die Kinder den jetzt zählen im 
Dualsystem lernen?
Denn dann würden die 8 Schalter, wie Phillipp es schon gesagt hat, einen 
Sinn ergeben. Für alles andere reicht eine normale Zählschaltung, die es 
beim Reichelt oder sonstwo gibt.

Nun kann man sich als nächstes fragen, ob die Nutzung der 10 Finger 
(oder von Süßigkeiten, Spielzeug etc.) nicht doch effektiver ist (Mit 
den Fingern kann man auch im Binärsystem zählen...). Dabei lernen die 
Kids nicht nur das Zählen, sondern auch gleichzieitg das Gefühl für 
Mengen. Außerdem bin ich der Meinung, das es für sie, im wahrsten Sinne, 
"begreifbarer" ist.

von oldmax (Gast)


Lesenswert?

Hi
Es macht immer wieder Spass: "Ich will was machen, kann eigentlich schon 
alles, aber will mich nicht in Details einarbeiten..... hab ich keine 
Zeit für".
So in etwa kurz zusammengefasst. Was glaubst du, wie es mit  unserer 
Zeit aussieht ? Meinst du, hier sitzen Leute vo den PC's, die es kaum 
erwarten können, sofort die Arbeit zu machen ? Also, es macht sich halt 
immer wieder gut, wenn man vorschiebt, etwas für Kinder zu tun.... so 
ganz selbstlos....
Ok, hier meine Meinung: Wenn du einen µC flashen kannst, setze ich mal 
voraus, das du auch in der Lage bist, ein kleines Programm zu schreiben. 
Wenn du in der Lage bist, zu löten, kannst du auch eine Schaltung 
aufbauen. So, nun brauchst du einen Controller. Am besten nimm einen mit 
vielen IO's. Für die Anzeige brauchst du 7 Ausgänge für die Segmente und 
jeweils einen für die Ziffer. Dann die (8?) Eingänge. Nun hinterlegst du 
in einer Matrix die Codes für die Zahlen 0 - 9 , bereitest die 
eingestellte Zahl durch die Eingänge auf und gibst diese Zahl aus. 
Fertig. Ach ja, elektronische Details, da gibt's noch was, die 
Vorwiderstände für die Segmente nicht vergessen....
Gruß oldmax

von tt4u (Gast)


Lesenswert?

http://sprut.de/electronic/pic/programm/index.htm
da gibt es jede Menge Beispiele mit 7-Segemnt-Anzeigen

von Klaus D. (kolisson)


Lesenswert?

mir fielen sofort die alten Kombinationen aus 74ls90 und 74ls47 ein.

klaus

von Peter D. (peda)


Lesenswert?

Große Anzeigen brauchen oft mehr als 5V.
Ein Schaltungsbeispiel:

Beitrag "Jumbo-LED Uhr"


Peter

von FranzoseausdemVinschgau (Gast)


Lesenswert?

Für die süßen Kleinen will er so´n Aufwand!
Kopfschüttel.
"Die Universalgeschichte der Zahlen" von Georges Ifrah ist da angesagt.

von Oliver N. (oli13)


Lesenswert?

Hallo zusammen,

erstmal vielen Dank für die Antworten.

@Philipp: ein schlichtes NEIN hätte völlig genügt. Ich habe meine 
Anfrage bewusst so formuliert um klarzustellen, dass mir die Zeit fehlt 
(daher Bausatz). Natürlich habe ich im AVR-Tutorial gelesen und Google 
bemüht und mir liegt es fern, jemandem die Zeit zu stehlen! Ich besitze 
noch 5 Siebensegmentanzeigen (mit gemeinsamer Kathode) aus grauer 
Vorzeit von denen ich sonst nichts weiß und einen ATMega8 zum flashen 
(d.h. ich habe das Equipment dazu, kann programmieren 
(assembler,c#,c,c++,php,aspx,...))
und dachte, daraus ließe sich etwas machen (daher konkreter Schaltplan).
Die Altersgruppe sind 10 bis 12jährige, die die Umrechnung verschiedener 
Zahlensysteme (hier Binär -> Dezimal) auch auf haptische Weise erleben 
können sollen, sprich Gerät zum probieren mit 8 Schaltern dran 
(1Byte=8Bit=8Schalter), einer Anzeige und einer Batterie, aus.

@quadral: ich habe weder bei Reichelt, noch bei Pollin, noch bei ELV, 
noch bei Conrad, ... einen solchen Bausatz gesehen, sonst hätte ich hier 
nicht gepostet.

@oldmax: die Theorie ist klar, der Algorithmus auch (siehe oben), ist 
halt keine Antort auf meine Fragen...

@tt4u: vielen Dank, das hilft weiter.

@Klaus De lisson: danke für den Hinweis, auch der hilft mir weiter.

@Peter Dannegger: herzlichen dank, das hilft mir auch weiter, ich nehme 
an der TPIC6B595 wird wohl reichen für diesen Zweck.

@FranzoseausdemVinschgau: all primes are odd except 2 which is the 
oddest of all.

Kurzes Résumé: Ich bin neu in diesem Forum und war über die Art und 
Umfang der Antworten etwas überrascht, denn schließlich habe ich 
lediglich nach einem KONKRETEN SCHALTPLAN oder einem BAUSATZ gefragt 
(und zwar nachdem ich vorher ausgiebig recherchiert habe).

Nochmals vielen Dank an alle

Oliver.

von FranzoseausdemVinschgau (Gast)


Lesenswert?

Hallo,  Oliver N.
Du musst keine Angst vor Fremdsprachen haben, das genannte Buch ist 
übersetzt ins Deutsche und gabs bei Zweitausendeins für 9,95.
Bestell einfach Nr. 200 236, in einer der Filialen gibts bestimmt noch 
ein Exemplar.
Kannst auch auf französisch antworten.

von Oliver N. (oli13)


Lesenswert?

Hallo FranzoseausdemVinschgau (ist das der Vor- oder Nachname?),

ich brauche kein Buch, sonder einen Beitrag zur elektronischen Lösung 
hauptsächlich des Rechtsterms des folgenden Problems:

Die Fragen bzw. Anmerkungen eines Elektroniknovizen - der ich nun mal 
bin - sind dazu folgende:

Links: die 8 Schalter habe ich. (Frage: muss/kann/soll man die hard- 
und/oder softwaremäßig entprellen (ich denke mir, irgendwann ist der 
endgültige Schaltzustand erreicht und wenn die Anzeige ein paar ms 
flackert macht das nichts, oder liege ich da falsch, zerstört das den 
uC?))

Mitte: Möchte ich mit einem ATMega8 realisieren.

Rechts: das eigentliche Problem für mich (und hier hoffte ich in diesem 
Forum auf kompetente Hilfe), welche Bauteile sind am vorteilhaftesten 
zwischen dem ATMega8 und den drei 7-Segmentanzeigen auf welche Weise zu 
verdrahten. Ich weiß auch, dass ich in der Mitte beim Programm gleich 
die Codierung der Ziffern, welche mit 7 Segmenten zusammengesetzt 
werden, erledigen kann, aber hier genau setzt meine (Anfänger)Frage nach 
einem konkreten Schaltplan an. Wenn ich nicht multiplexen will, welche 
Bausteine nehme ich dann am schlauesten, welche bringen für große 
Anzeigen genügend Leistung, Anzeigen mit gemeinsamer Kathode, Fragen, 
Fragen, Fragen.

Ich bin nicht zum Elektroniker geboren und will auch keiner werden. In 
Deiner nächsten Buchempfehlung hoffe ich für mein Problem SCHALTPLÄNE zu 
finden.

Grüße,

Oliver.

von D. J. (basteldag)


Lesenswert?

Hallo,

Ich kenne auch nur zu gut das Zeitproblem, will jedoch helfen und hoffe 
das das Ergebnis (Prog.-Code) allen zu Verfügung steht.
Es wär von Nutzen zu erfahren was für Anzeigen das sind.
Ich teste LED und ihre Anzeigen mit einem konstanten Strom von 10 mA und 
messe die Spannung dazu, weil es für jede Farbe unterschiedlich ist, bei 
welcher Spannung 10mA fließen.
Es besteht auch die Variante Binär-Code aus dem MC in Treiber-IC in
7-Segm.-Code umzuwandeln.

von bitte löschen (Gast)


Lesenswert?

Oliver N. schrieb:
> @Philipp: ein schlichtes NEIN hätte völlig genügt.

Wäre aber nicht das gewesen, was ich sagen wollte. Ich hoffe, Du hast 
bei Deinen Schülern ein dickeres Fell, als Du es hier an den Tag gelegt 
hast.
Ich helfe grundsätzlich gern, nur möchte ich wissen, wozu.
Du wirst mir zustimmen, dass es ein Unterschied ist, ob man Kindern das 
Zählen oder das Binärsystem beibringen möchte. Lies nochmal Dein 
Eingangsposting, und versetze Dich dabei in jemanden, der Dich nicht 
kennt. Was würdest Du denken?

Meine Fragen sind ja nun beantwortet. Du kannst C und Assembler und 
andere Sprachen, die wir hier und jetzt nicht brauchen, Du hast den 
Artikel gelesen und Du hast einen plausiblen Grund, warum Du das Teil 
brauchen kannst.

Das Problem ist ja eigentlich (selbst für mich als Anfänger) trivial.
Ich könnte jetzt einen Schaltplan zeichnen und Dir sagen, wie der uC 
darin zu programmieren ist, aber sobald ich den gepostet habe, wird ein 
Link zu einem passenden Bausatz gepostet werden. ;-) :-D
Dazu kommt, dass ich Schaltpläne und Layouts mit gEDA (gschem und pcb) 
entwerfe, und damit inkompatibel zur hier vorwiegend vertretenen 
Gemeinde der Eagle-User bin. Die Wahrscheinlichkeit, dass ich in diesen 
Thread einen Schaltplan stelle, und der auch benutzt wird, ist 
jedenfalls gering.

Deshalb stelle ich einfach mal ein paar Punkte und ein grobes Konzept in 
den Raum. Andere Forumsteilnehmer werden darin bestimmt einiges finden, 
was verbessert werden kann, was ein weiterer Grund ist, nicht jetzt 
schon mit einem Schaltplan anzufangen.

1. Um das Entprellen brauchst Du Dich nicht zu kümmern. Das Flackern 
dürfte Harmlos sein, und einen Schaden am uC kann man ausschließen.

2. Du schreibst, Deine 7-Segment Anzeigen haben gemeinsame Kathode. Der 
TPIC6B595 hat einen sogenannten Open Drain, was bedeutet, dass (in 
technischer Stromrichtung von + nach - gesprochen) der Strom nur in die 
Ausgänge hinein fließen kann. Er eignet sich also nicht, die einzelnen 
Segmente anzusteuern, sondern höchstens, um festzulegen, aus welcher der 
3 gemeinsamen Kathoden Strom fließen darf, also welche der 3 Anzeigen 
gerade im Multiplex-Betrieb angesteuert wird, wobei da nur 3 von 8 
Ausgängen genutzt würden, was schade, aber nicht weiter schlimm ist. ;-) 
Da wir für die Ansteuerung des TPIC6B595 mindestens 2 Leitungen 
benötigen, und es auf den einen Pin nicht ankommt, können wir hier auch 
3 Pins vom ATmega8 nehmen und einfach nur durch 3 Transistoren 
verstärken. Hier würden mich andere Meinungen interessieren.

3. Apropos MUX. Das Multiplexen bedeutet keine schwächere Lichtausbeute. 
Die LEDs vertragen deutlich höheren Strom in Impulsform als im 
Dauerbetrieb. Das gleicht sich aus. Wenn es sich als sinnvoll 
herausstellen sollte Multiplexing einzusetzen, solltest Du dann auch 
darauf zugreifen. Wegen dem Flackerlicht mache ich mir in diesem Fall 
keine Sorgen, und das wo ich, aufgrund eigener Empfindlichkeit gegenüber 
diesem Autobahn-Disco-Strobo, für ein Verbot von gepulsten 
LED-Autoheckleuchten bin. - Wir können schneller pulsen, als die 
Mangelwesen von Autobauern es für nötig halten.

4. Ansteuerung: Du musst irgendwie den Pegel den Outputs vom ATmega8 
(5V) auf schätzungsweise 4 * 2.2V + etwas Spannung am Vorwiderstand, 
also rund 10V verstärken. Dafür drängt sich ein Pegelwandler auf. Da 
kämen z.B. zwei 4104 oder zwei 4504 in Frage, die dann noch strommäßig 
verstärkt werden müssten, außer jemand kennt einen Baustein, der beides 
gleichzeitig macht.
Hier spielt auch die Verfügbarkeit eine Rolle. Beide gibt es weder bei 
Reichelt, noch bei Conrad oder Pollin. Ich habe folgende gefunden:

4104 in DIP und SMD:
https://www.distrelec.de/logic-ic-quad-lv-hv-trans-dil-16/nxp/hef4104bp/648869 
(1,6065 für HEF4104BP DIP-16)
https://www.distrelec.de/logic-ic-quad-lv-hv-trans-so-16/nxp/hef4104bt/648870 
(1,6898 für HEF4104BT SO-16)
http://de.rs-online.com/web/search/searchBrowseAction.html?method=getProduct&R=3687896 
(1 Stange mit 25 Stück 23,6572€ (0,946288€ HEF4104BP DIP-16)
https://www.buerklin.com/default.asp?event=ShowArtikel(61S4300)&l=d&jump=ArtNr_61S4300 
(1,25€ 10+: 1,00€ HEF4104BP DIP-16)
https://www.buerklin.com/default.asp?event=ShowArtikel(61S4310)&l=d&jump=ArtNr_61S4310 
(1,31€ 10+: 1,05€ HEF4104BT SO-16)

4504 in DIP und SMD:
http://www.elpro.org/shop/shop.php?p=4504 (0,476 DIP)
https://www.buerklin.com/default.asp?event=ShowArtikel(62S1950)&l=d&jump=ArtNr_62S1950 
(0,70€ 10+: 0,55€ DIP-16)
http://www.kessler-electronic.de/ (0,79€ DIP-16)
http://de.farnell.com/on-semiconductor/mc14504bcpg/4000-cmos-4504-dip16-15v/dp/9665064 
(1,09242€ 10+: 0,82229€ DIP-16)
http://de.farnell.com/on-semiconductor/mc14504bdg/4000-cmos-smd-4504-soic16-15v/dp/9665218 
(1,2495€ 10+: 0,94248€ SMD SO-16)

Wie man am bequemsten aus dem höheren Signalpegel einen passenden Strom 
macht, ohne 8 Transistoren zu verbauen, weiß ich nicht. Vielleicht ist 
es tatsächlich am einfachsten, einfach 8 2N7002 (N-Kanal FET) oder BC846 
(Universal-NPN) zu verbauen. Andere Meinungen würde mich auch hier 
interessieren, bevor ich einen Schaltplan mache.

5. Der ATmega8 hat den Port B (PB0 - PB7), den Port C (PC0 - PC6) und 
den Port D (PD0 - PD7). 8 Bits frei haben die Ports B und D, wenn Du 
keinen externen Oszillator verwendest. Das heißt, Du kannst die 8 
Schalter direkt ohne Schieberegister einlesen, und 8 Ausgänge direkt in 
die Eingänge des Pegelwandlers laufen lassen, und hast immer noch auf 
Port C 6 Pins frei. Davon brauchst Du 3, um die jeweils aktive 
7-Segment-Anzeige anzusteuern.

Ich hoffe auf reges Feedback zu diesen Punkten, so dass wir schnell zu 
einem einfachen Schaltplan und etwas Code kommen.

von Thorsten S. (Gast)


Lesenswert?


von Thorsten S. (Gast)


Lesenswert?


von Thorsten S. (Gast)


Lesenswert?


von Thorsten S. (Gast)


Lesenswert?


von Achim M. (minifloat)


Angehängte Dateien:

Lesenswert?

Oliver N. schrieb:
> einen Beitrag zur elektronischen Lösung
> hauptsächlich des Rechtsterms des folgenden Problems

Oliver N. schrieb:
> Mitte: Möchte ich mit einem ATMega8 realisieren.

Hab da zwei Schnipsel für dich angehängt.
Die müsstest du für deine Zwecke u.U. auf high-aktiv umschreiben und für 
drei Stellen eben dreimal schreiben. es sei denn du machst aus
void sevenseg_out();
eine Konvertier-Funktion mit dem Namen
uint8_t digit_to_seven();
sofern deine Anzeigen alle dasselbe Pinout besitzen und gleich 
angeschlissen sind(nur eine Übersetzungstabelle nötig).
Das kann man dann ja per SPI in Schieberegister ballern oder drei Ports 
benutzen oder Multiplexen oder oder oder...

mfg mf

von bitte löschen (Gast)


Lesenswert?

Mini Float schrieb:
> .. nur eine Übersetzungstabelle nötig ..

Warum hast Du dann nicht direkt eine Übersetzungstabelle gemacht? Wozu 
der Umweg?

Ungeprüft und ungetestet, aber so in etwa würde ich das machen.
1
Siebensegemente:
2
 .db (0<<SEG_A)|(0<<SEG_B)|(0<<SEG_C)|(0<<SEG_D)|(0<<SEG_E)|(0<<SEG_F)(1<<SEG_G), \
3
 (1<<SEG_A)|(0<<SEG_B)|(0<<SEG_C)|(1<<SEG_D)|(1<<SEG_E)|(1<<SEG_F)|(1<<SEG_G), \
4
(0<<SEG_A)|(0<<SEG_B)|(1<<SEG_C)|(0<<SEG_D)|(0<<SEG_E)|(1<<SEG_F)|(0<<SEG_G), \
5
(0<<SEG_A)|(0<<SEG_B)|(0<<SEG_C)|(0<<SEG_D)|(1<<SEG_E)|(1<<SEG_F)|(0<<SEG_G), \
6
(1<<SEG_A)|(0<<SEG_B)|(0<<SEG_C)|(1<<SEG_D)|(1<<SEG_E)|(0<<SEG_F)|(0<<SEG_G), \
7
(0<<SEG_A)|(1<<SEG_B)|(0<<SEG_C)|(0<<SEG_D)|(1<<SEG_E)|(0<<SEG_F)|(0<<SEG_G), \
8
(0<<SEG_A)|(1<<SEG_B)|(0<<SEG_C)|(0<<SEG_D)|(0<<SEG_E)|(0<<SEG_F)|(0<<SEG_G), \
9
(0<<SEG_A)|(0<<SEG_B)|(0<<SEG_C)|(1<<SEG_D)|(1<<SEG_E)|(0<<SEG_F)|(1<<SEG_G), \
10
(0<<SEG_A)|(0<<SEG_B)|(0<<SEG_C)|(0<<SEG_D)|(0<<SEG_E)|(0<<SEG_F)|(0<<SEG_G), \
11
(0<<SEG_A)|(0<<SEG_B)|(0<<SEG_C)|(0<<SEG_D)|(1<<SEG_E)|(0<<SEG_F)|(0<<SEG_G) \
12
.ifdef SIEBENSEG_HEX
13
,(0<<SEG_A)|(0<<SEG_B)|(0<<SEG_C)|(1<<SEG_D)|(0<<SEG_E)|(0<<SEG_F)|(0<<SEG_G), \
14
(1<<SEG_A)|(1<<SEG_B)|(0<<SEG_C)|(0<<SEG_D)|(0<<SEG_E)|(0<<SEG_F)|(0<<SEG_G), \
15
(0<<SEG_A)|(1<<SEG_B)|(1<<SEG_C)|(0<<SEG_D)|(0<<SEG_E)|(0<<SEG_F)|(0<<SEG_G), \
16
(1<<SEG_A)|(0<<SEG_B)|(0<<SEG_C)|(0<<SEG_D)|(0<<SEG_E)|(1<<SEG_F)|(0<<SEG_G), \
17
(0<<SEG_A)|(1<<SEG_B)|(1<<SEG_C)|(0<<SEG_D)|(0<<SEG_E)|(0<<SEG_F)|(0<<SEG_G), \
18
(0<<SEG_A)|(1<<SEG_B)|(1<<SEG_C)|(1<<SEG_D)|(0<<SEG_E)|(0<<SEG_F)|(0<<SEG_G)
19
.endif
20
21
sevenseg_out:
22
; Parameter: r16 = number
23
             r17 = point (bit 0)
24
 push ZH
25
 push ZL
26
 push r18
27
 ldi r18, 0
28
 ldi ZL, LOW(Siebensegemente * 2)
29
 ldi ZH, HIGH(Siebensegemente * 2)
30
 add ZL, r16
31
 adc ZH, r17
32
 lpm r18, Z
33
 lsr r17
34
 ror r17
35
 or r18,r17
36
 out SEVENSEG_PORT, r18
37
 pop r18
38
 pop ZL
39
 pop ZH
40
 ret

@Thorsten S.:
Danke für den Beitrag "Re: Große 7-Segment Anzeige" !
Hier finden sich der UDN2981 und sein Gegenstück der ULN2803, was schon 
mal ein toller Tip ist. So einen Hinweis habe ich gesucht. Das spart 7 + 
3 Transistoren. (Schade nur, dass der UDN2981 mit 1,10€ und der ULN2803 
mit 0,35€, also zusammen mit 1,45€ zu Buche schlagen, während der 2N7002 
0,06€ kostet, was bei 10 Stück nur 0,60€ sind.

von Achim M. (minifloat)


Lesenswert?

Philipp Klostermann schrieb:
> direkt eine Übersetzungstabelle gemacht

stell dir vor: der Compiler ist so schlau, dass er meine Sprungtabelle 
umsetzen kann. Eigentlich ist es auch wurst, wie man es macht.
Ein if oder sonst ein Sprung ist mindestens drin, wie verhinderst du 
Hieroglyphen?

mfg mf

von bitte löschen (Gast)


Angehängte Dateien:

Lesenswert?

Mini Float schrieb:
> wie verhinderst du
> Hieroglyphen?

Meinst Du, wie ich verhindere, dass ich der Funktione einen Wert > 15 
übergebe? Indem ich das beim Aufruf sicher stelle. :-D

Aber eigentlich wollte der TE den softwaremäßigen Teil ja selber machen 
und ursprünglich einen Schaltplan haben. Hier mein 1. Entwurf, noch ohne 
Versorgung etc..

von Johannes F. (emitterfolger)


Angehängte Dateien:

Lesenswert?

Hallo,

hier ist mein Schaltungsvorschlag. Noch nicht vollständig, aber der 
relevante Teil.
Wie man sieht, bevorzuge ich eher diskrete Halbleiter. ;)
Die Widerstandswerte sind geschätzt und müssen evtl. in Abhängigkeit vom 
gewünschten Pulsstrom angepasst werden.

Sorry wegen dem Bildformat, TARGET kann leider nur TIFF exportieren. 
Aber die Dateigröße hält sich ja noch in Grenzen.

@ Oliver N.:
Schreib bitte mal, von welchem Typ deine 7-Segment-Anzeigen sind (müsste 
eigentlich draufstehen). Nur bei Kenntnis der elektrischen Parameter 
kann man die Schaltung optimal dimensionieren.

Grüße

EDIT: Um den Schaltplan richtig erkennen zu können, muss man auf den 
Link darunter klicken und dann im Browser vergrößern, oder man lädt sich 
die Datei runter und öffnet sie mit einem ordentlichen Viewer.

EDIT_2:
Sehe gerade, dass die Website das TIFF automatisch in PNG konvertiert 
hat. ;)

von Oliver N. (oli13)


Lesenswert?

Hallo zusammen,

vielen Dank für eure Mühen!!!

@D. Jäschke: Ich habe den Rat befolgt und wollte mich vorsichtig an die 
Betriebswerte der Anzeige herantasten, musste dabei aber leider 
feststellen, dass manche Segmente gar nicht mehr funktionieren. Damit 
auch Antwort an

@Johannes F.: Jetzt habe ich mir neue bestellt (Kingbright SC 23-12 RT):

http://www.reichelt.de/?ACTION=3;ARTICLE=31578;GROUPID=;SID=10TYibyX8AAAIAAGjO9gM60ed9d95bbc25c927d72c514f1e501ed

Damit gibt es jetzt wenigstens ein definiertes Bauteil uber das sich 
sprechen lässt. Ich werde aber eher statt so vieler Transistoren 
Bausteine benutzen, damit das Ganze übersichtlicher bleibt.

@Philipp Klostermann: Philipp, perfekt, so etwas war meine 
usrsprüngliche Intension. Was meinst Du, soll ich noch warten, bis der 
Schaltplan gegen eine endgültige Fassung konvergiert? Ich habe anfangs 
wirklich geglaubt, dass es für so ein ("triviales") Problem fertige 
Lösungen gibt. Wenn ich gewusst hätte, dass dem nicht so ist, hätte ich 
hier nicht die "Lavine" losgetreten. Ich bin Dir wirklich dankbar für 
Deine Arbeit.

@Thorsten S.: Du hast natürlich z.T. recht mit der Bemerkung über den 
See, aber bei mir ist das Problem eher das Ertrinken. Die Links sind 
absolut treffend.

@Mini Float: Danke vielmals, langsam glaube ich, dass ich gar nichts 
mehr zu tun haben werde, wenn das so weiter geht;-)

Nochmals an alle ein kollektives DANKE!

Grüße,

Oliver.

von bitte löschen (Gast)


Lesenswert?

Oliver N. schrieb:
> Was meinst Du, soll ich noch warten, bis der
> Schaltplan gegen eine endgültige Fassung konvergiert?

Ja. Wie lange, hängt davon ab, wann hier endlich mal jemand los moppert 
und mir Anfänger sagt, was falsch ist und was noch verbessert werden 
muss. Mir ist auch schon einiges aufgefallen, wie z.B., dass man D1:8 
mit U3:15 etc.. und U3:1 mit U3:4 etc.. verbinden sollte, aber das habe 
ich noch nicht im Schaltplan umgesetzt.

Ein Punkt ist außerdem noch nicht geklärt, nämlich die Versorgung. Wir 
brauchen +5V mit etwa 20 mA (3,6 mA für den ATmega8, die Eingänge vom 
ULN290X bekommen 3 * 0,45 mA also etwa 1,5 mA, die Eingänge vom UDN2981 
bekommen 8*0,5 mA, also etwa 4 mA, das ganze doppelt, um auf der 
sicheren Seite zu sein), und +X Volt mit 2* 7 * 60 mA (Datenblatt der 
Kingbright SC 23-12 RT 20 mA mal 3 Impulsstrom mal 2 gem. Kathoden) = 
840m A für die LEDs, also 1 A, um da auf der sicheren Seite zu sein.
Jetzt stellt sich die Frage nach den X Volt, und damit kommen wir zu 
Details, an denen ich noch arbeite.

von oldmax (Gast)


Lesenswert?

Hi
Wieso soviel Aufwand ? Du schreibst, du kannst programmieren, dann 
solltest du wissen, das, egal, welches binäre Bitmuster du einer CPU ins 
Register schreibst, diese das auch als Dezimalzahl bewerten kann. Also, 
eine Variable als Byte, in die du aus der Peripherie deine 8 Schalter 
einliest, bzw. die Bits den eingängen entsprechend zuweist, ist auch 
eine Zahl zwischen 0 und 255. Dann teilst du diese Zahl durch 10, der 
Rest ist die erste Stelle. Nun, jetzt die Frage, hat der Atmega genug 
IO. 8 für die Eingabe, 7 für die Segmente und 3 für die Stelle. 
(Multiplexen)
sind zusammen 18, das dürfte reichen.
Zuerst baust du dir eine Schaltung. Alle Segmente parallel über einen 
Widerstand von ca. 100 Ohm. Mußt evtl etwas anpassen wegen der 
Helligkeit. Die Gemeinsamen schaltest du mit 3 Ausgängen über 
Transistoren.
Ich programmiere sowas in Assembler. Eigentlich einfach, mit einem Timer 
einen Interrupt im msek. Takt aufrufen und die Ziffern ansteuern. Dazu 
werden erst alle Ansteuerungen ausgeschaltet, die nächste Ziffer 
selektiert ( Bit schieben), der Code der entsprechenden Zahl gebildet 
und auf die Ausgänge geschaltet und dann die Ziffer wieder zugeschaltet. 
Die Segmente hälst du in einer Variablen, um eine Zahl daraus zu 
konvertieren. MAtrix_0 bis Matrix_9 macht sich in Assembler ganz gut und 
du kannst über das Doppelregister uber einen Zahlenwert einen Zeiger auf 
den entsprechenden Code bilden. Noch mal zum Thema Zeit. Du bist nicht 
der Einzige auf dieser Welt, der Zeit für seine Idee benötigt und ich 
find es immer wieder interessant, wenn dann diese Theads entstehen. Wenn 
mir erklärt wird, er kann programmieren und auch Schaltungen 
zusammenbauen gehe ich davon aus, das er in der Lage ist, eine solch 
simple Aufgabe auch lösen zu können.
Solltest du  dennoch Probleme mit der Umsetzung haben, vielleicht pack 
ich demnächst mal einen Codeschnipsel zu. Nur prinzipiel tu ich mich 
schwer, wie gesagt, bei Mitmenschen, die etwas vorführen wollen, aber 
für das Projekt als solches keine Zeit investieren wollen und glauben, 
der Rest der Welt wartet nur darauf beschäftigt zu werden. Darfst du mir 
nicht übel nehmen, aber für meinen Job steh ich früh um 4 auf, hab am 
eigenen Haus ne Menge Renovierung, 3 Kinder, mittlerweile auch mit 
eigenen Häuschen, allerdings uralt und mit sehr viel offenen Baustellen, 
5 Enkel die sehr gern in Opas Abenteuerland (Büro) spielen und obendrein 
noch eine liebe Frau, die jetzt auch schon wieder drängelt. Also erzähl 
mir nichts von Zeit....
Gruß oldmax

von Daniel M. (erfolgstyp)


Lesenswert?

ich misch mich mal eben ein
am einfachsten wäre es doch mit nem lcd display

man müsste nur die 8 taster einlesen und das byte ins lcd ausgeben das 
fände ich persönlich einfacher

dafür würds sicher auch bausätze geben

von Johannes F. (emitterfolger)


Lesenswert?

Oliver N. schrieb:
> Jetzt habe ich mir neue bestellt (Kingbright SC 23-12 RT)

Das war etwas vorschnell. Ich hätte hier eher SA 23-12 RT genommen, d. 
h. mit gemeinsamer Anode.
Damit wäre die Ansteuerung etwas einfacher. Man könnte dann sogar auf 
Multiplexing verzichten und die Segmente mit drei 74HC164 
SIPO-Schieberegistern direkt treiben. Denn die LED-Anzeigen sind SRWA = 
superrot, ohne Multiplexing reicht hier schon ein Strom von 5 mA pro 
Segment zum hellen Leuchten.
Mit gemeinsamer Kathode müsste man dagegen zusätzlich wieder NPNs->PNPs 
oder eben UDN2981 als HighSide-Treiber nachschalten.

Oliver N. schrieb:
> Ich werde aber eher statt so vieler Transistoren
> Bausteine benutzen, damit das Ganze übersichtlicher bleibt.

Ja okay, habe ich mir schon gedacht. ;)
Man würde mit diskreten Transistoren auch nicht billiger kommen, wie ich 
es ursprünglich dachte.
Aber ich wollte mal zeigen, dass es auch ohne ICs geht.

oldmax schrieb:
> Alle Segmente parallel über einen
> Widerstand von ca. 100 Ohm.

Würde ich nicht machen.
Damit schwankt die Helligkeit je nachdem, wie viele Segmente 
gleichzeitig eingeschaltet sind.
Jedes Segment braucht seinen eigenen Vorwiderstand.

Daniel Münzi schrieb:
> am einfachsten wäre es doch mit nem lcd display

Aber 7-Segment-Anzeigen haben doch ein ganz besonderes Flair... ;)

Grüße

von Michael Waldheim (Gast)


Lesenswert?

Immer wieder interessant, wie eigentlich völlig triviale Sachen zu 
wahren Monsterprojekten aufgebauscht werden.

Oliver N. schrieb:
> kann mich aber aus
> Zeitmangel NICHT in elektronische Details vertiefen.

Du meinst wohl: Du willst nicht mal einen Nachmittag investieren. 
Großartige Beschäftigung mit "elektronischen Details" ist für so ein 
simples Projekt nämlich gar nicht nötig. Hier in der Artikelsammlung 
findest du nämlich schon alles an Wissen, was dafür nötig ist. Und mit 
dem zusammenfügen dürftest du ja keine Probleme haben, da

Oliver N. schrieb:
> ich kann Löten, beherrsche
> Mathematik und kann einen Mikrocontroller flashen

du ja löten kannst. Es ist also ganz klar keine Frage des nicht können, 
sondern des nicht wollen.

von Johannes F. (emitterfolger)


Angehängte Dateien:

Lesenswert?

Hallo,

hier mal ein Entwurf mit Schieberegistern.
Vorteile:
- einfache Ansteuerung
- kein Flackern, EMV-Störungen etc.

Deine 7-Segment-Anzeigen haben je Segment 4 in Reihe geschaltete LEDs, 
d.h. man kann mit etwa 8V Vorwärtsspannung rechnen.
Ich habe den Dezimalpunkt der Einfachheit wegen auch mit angeschlossen, 
damit es mit den 8 Bit aufgeht. Dieser hat nur 2 LEDs in Reihe, deshalb 
die 820 Ohm.
Mit den angegebenen Widerstandswerten erzielt man bei 12V 
Betriebsspannung etwa 10 mA Vorwärtsstrom je Segment, das ist bei den 
"super bright" LEDs mehr als ausreichend.

Johannes F. schrieb:
> und die Segmente mit drei 74HC164 SIPO-Schieberegistern direkt treiben

Sorry, das muss ich zurücknehmen. Die ICs haben ja Push/Pull-Ausgänge 
und keine OpenCollector, damit wird das natürlich nichts.
Aber etwas besser wären die SA 23-12 trotzdem gewesen, da man dann statt 
der UDN2981 die wesentlich billigeren Darlington-Arrays ULN2803 nehmen 
könnte.

Und wenn man so etwas schon macht, würde ich noch eine 
Binär->Hexadezimal-Funktion mit einbauen. Die Buchstaben kann man ja mit 
den 7 Segmenten auch noch einigermaßen darstellen (A, b, C, d, E, F).

Grüße

von Johannes F. (emitterfolger)


Lesenswert?

Philipp Klostermann schrieb:
> und +X Volt mit 2* 7 * 60 mA (Datenblatt der
> Kingbright SC 23-12 RT 20 mA mal 3 Impulsstrom mal 2 gem. Kathoden) =

??? Die Kathoden der LEDs sind verbunden und an 2 Pins herausgeführt. 
Das heißt aber nicht, dass deshalb doppelt so viel Strom nötig ist. ;)
Außerdem sind 60mA Impulsstrom etwas viel. Die LEDs sind "super 
bright"-Typen, also sollten ca. 30 mA genügen.
Ich habe ein Alphanumeric PSA08-11SRWA herumliegen, das leuchtet schon 
bei 5 mA (!) wie eine normale LED bei 20 mA.

> 840m A für die LEDs, also 1 A, um da auf der sicheren Seite zu sein.
> Jetzt stellt sich die Frage nach den X Volt, und damit kommen wir zu
> Details, an denen ich noch arbeite.

Pro Segment sind 4 LEDs in Reihe geschaltet -> ca. 8V Uf, also sollten 
bspw. 12V passen.

Grüße

von bitte löschen (Gast)


Angehängte Dateien:

Lesenswert?

Daniel Münzi schrieb:
> das
> fände ich persönlich einfacher

Schön. :-) Hat zwar nichts mit der Aufgabenstellung zu tun, macht aber 
bestimmt auch Spaß. Man könnte auch einfach die Zahl binär auf einem 
entsprechenden Taschenrechner eingeben, und die "dec"-Taste drücken.

Johannes F. schrieb:
> Deine 7-Segment-Anzeigen haben je Segment 4 in Reihe geschaltete LEDs,
> d.h. man kann mit etwa 8V Vorwärtsspannung rechnen.

Und, wenn die LEDs gerade schlecht gelaunt sind, mit 10V (siehe 
Datenblatt).
Im Datenblatt sind 20mA der Referenzwert. Als DC Foreward Current sind 
maximal 25 mA angegeben, als Peak Forward Current (1/10 Duty Cycle, 
0.1ms Pulse Width) sind 150 mA angegeben. Wenn wir die LED im 1/3 Duty 
Cycle betreiben, können wir also locker 60 mA nehmen, um 20 mA 
Durchschnitt zu erhalten. Wir haben 2 LED-Stränge pro Segment, können 
den Strom also auf 120 mA verdoppeln.

> ...
> Mit den angegebenen Widerstandswerten erzielt man bei 12V
> Betriebsspannung etwa 10 mA Vorwärtsstrom je Segment, das ist bei den
> "super bright" LEDs mehr als ausreichend.

Als Betriebsspannung brauchen wir 8 .. 10V plus das, was im UDN2981, am 
Vorwiderstand um am ULN2801 hängen bleibt. Im Datenblatt vom UDN2981 
habe ich eine Vce von 1,6V (Minimalwert bei 100mA) gefunden. Da wir 120 
mA pro Ausgang haben, nehmen wir das mal als realistischen Wert. Die 
Ausgänge vom ULN2801 haben mehr zu schlucken, nämlich die 420 mA von 7 
Strängen, wobei laut Datenblatt bei 350mA eine Vce von etwa 1,6V 
abfällt, was auf 420 mA extrapoliert geschätzte 1,8V ergibt. Das macht 
insgesamt 3,4V in den Treibern. Wir sind jetzt bei 11,6 .. 13,4V + 
Spannung am Vorwiderstand. Dieser darf nicht zu gering dimensioniert 
werden, weil sonst sein Anteil an der Strombegrenzung zu gering wird, 
und diese zu stark abhängig von den Vorwärtsspannungen der LEDs wird, 
die sich mit zunehmender Temperatur verringern, was bei zu niedrigem 
Vorwiderstand zu mehr Strom und wiederum zu mehr Erwärmung führt. Im 
Datenblatt ist als minimale Vorwärtsspannung 2,0V angegeben, als 
maximale 2,5V. Wir haben es also mit Schwankungen von maximal 2V zu tun, 
in denen wir weder den Vorwiderstand, noch die LEDs überlasten wollen.
Bei 120 mA darf an einem 0,25W-Widerstand maximal 2V anliegen, was einen 
Widerstand von etwa 17 Ohm entspricht. Dass muss also das sein, was bei 
warmen LEDs maximal anliegen darf, was zu einer Versorgungsspannung von 
13,6V führt. Wenn die LEDs einen schlechten Tag haben, haben wir aber 
nur noch 0,2V übrig, was kanpp 12 mA bedeuten würde. Die 1W-Widerstände 
kosten bei Reichelt 15 Cent, und das dürfte nicht zu viel verlangt sein. 
Damit können wir einen plausiblen Wert wie 33 Ohm nehmen, kommen auf 4V 
Spannung am Vorwiderstand bei 120mA, was bei 2 V Schwankung mindestens 
60 mA liefert und heizen (im worst Case) mit 1/2 Watt pro Widerstand. 
Die Versorgungsspannung wäre dann 15,6 also 15 V.

Anbei der korrigiere Schaltplan, noch ohne Werte und 
Spannungsversorgung.

von Johannes F. (emitterfolger)


Angehängte Dateien:

Lesenswert?

Philipp Klostermann schrieb:
> Im Datenblatt sind 20mA der Referenzwert.

Im Datenblatt steht unter Features auch "LOW CURRENT OPERATION".
Man kann sie natürlich auch mit 20 mA betreiben, aber es ist unnötig und 
verkürzt die Lebensdauer gegenüber dem Betrieb mit 10 mA.

Philipp Klostermann schrieb:
> Wir haben 2 LED-Stränge pro Segment

Haben wir nicht. Siehe Datenblatt-Ausschnitt im Anhang.
Die Pins 3 und 8 sind miteinander und mit den Kathoden aller Segmente 
verbunden, nichts weiter.
Du hast dich sicher durch den Innenschaltplan des SBC23-11 im Datenblatt 
verwirren lassen, das ist die zweifarbige Version mit 2 Strängen pro 
Segment.

Grüße

von bitte löschen (Gast)


Lesenswert?

Johannes F. schrieb:
> m Datenblatt steht unter Features auch "LOW CURRENT OPERATION".
> Man kann sie natürlich auch mit 20 mA betreiben, aber es ist unnötig und
> verkürzt die Lebensdauer gegenüber dem Betrieb mit 10 mA.

Guter Hinweis. Heißt dass, dass die Lichtausbeute ab einem bestimmten 
Strom, der innerhalb der Spezifikationen liegt, nicht mehr ansteigt?

Johannes F. schrieb:
> Haben wir nicht. Siehe Datenblatt-Ausschnitt im Anhang.
> Die Pins 3 und 8 sind miteinander und mit den Kathoden aller Segmente
> verbunden, nichts weiter.
> Du hast dich sicher durch den Innenschaltplan des SBC23-11 im Datenblatt
> verwirren lassen, das ist die zweifarbige Version mit 2 Strängen pro
> Segment.

Dann reichen halt 30 mA pro Segment. Umso besser! :-)
Bei 30 mA darf an einem 0,25 W Widerstand 8,3 V anliegen, womit satte 
Reserve zur Dimensionierung vorhanden ist. 4V reichen locker. Das macht 
dann 133 also 120 Ohm und die wiederum bei 30 mA 3,6V. Das ergibt eine 
Betriebsspannung von 3,6 + 11,6 = 15,2 also 15V.

von Johannes F. (emitterfolger)


Lesenswert?

Philipp Klostermann schrieb:
>> m Datenblatt steht unter Features auch "LOW CURRENT OPERATION".
>> Man kann sie natürlich auch mit 20 mA betreiben, aber es ist unnötig und
>> verkürzt die Lebensdauer gegenüber dem Betrieb mit 10 mA.
>
> Guter Hinweis. Heißt dass, dass die Lichtausbeute ab einem bestimmten
> Strom, der innerhalb der Spezifikationen liegt, nicht mehr ansteigt?

Nicht direkt, siehe Datenblatt S. 6 "Luminous Intensity Vs. Forward 
Current". Die Lichtintensität steigt schon mit dem Strom an (mehr als 
ich gedacht hätte).
Ich habe mal, wie bereits geschrieben, zum Ausprobieren eine 
Alphanumeric-Anzeige PSA08-11SRWA (16-Segment) bestellt und die hat im 
Versuchsaufbau schon bei ca. 3 mA hell geleuchtet (1kOhm an 5V). Die 
Technologie ist sicher ähnlich wie die von 2mA-LowCurrent-LEDs. Und die 
Reichelt "SC 23-12 RT" ist auch vom Typ SRWA, siehe Hersteller-Nr. unten 
auf der Produktseite, sie sollte also dasselbe Verhalten wie mein 
Exemplar zeigen.
Und es hängt eben auch immer davon ab, welche Lichtintensität man 
wirklich benötigt. Die internen LEDs der Anzeige sollen eine möglichst 
gut erkennbare rote Verfärbung der Segmente verursachen, aber nicht die 
Umgebung beleuchten. ;-)
Und normale LEDs betreibt man ja i.d.R. auch nicht mit 20 mA, sondern 
mit 10..15 mA. Nicht zuletzt auch deshalb, weil LEDs mit höherem 
Vorwärtsstrom schneller altern, d.h. an "Leuchtkraft" verlieren.
Und da sind 10 mA (-> 30 mA bei 1/3 duty cycle), denke ich, ein 
vernünftiger Kompromiss, auch in Bezug auf den nicht zu 
vernachlässigenden Strombedarf.

Philipp Klostermann schrieb:
> Dann reichen halt 30 mA pro Segment. Umso besser! :-)
> Bei 30 mA darf an einem 0,25 W Widerstand 8,3 V anliegen, womit satte
> Reserve zur Dimensionierung vorhanden ist. 4V reichen locker. Das macht
> dann 133 also 120 Ohm und die wiederum bei 30 mA 3,6V. Das ergibt eine
> Betriebsspannung von 3,6 + 11,6 = 15,2 also 15V.

All right. ;-)

Übrigens, der LowSide-Treiber muss ein ULN2803 sein. Der ULN2801 braucht 
externe Basiswiderstände.

Grüße

von bitte löschen (Gast)


Lesenswert?

Johannes F. schrieb:
> Übrigens, der LowSide-Treiber muss ein ULN2803 sein. Der ULN2801 braucht
> externe Basiswiderstände.

Noch ein wichtiger Hinweis. Danke. :-) - Vor allen Dingen auch wegen 
"each driver for 5 V, TTL/CMOS" ..

Jetzt müsste ich nur noch wissen, ob Batterien oder Trafo bevorzugt 
werden, und ich kann einen vollständigen Schaltplan mit Werten machen, 
und vielleicht, wenn ich noch die Zeit finde, ein Layout..

Dazu eine Frage an den TE: Kannst Du auch Platinen ätzen? Wie sieht es 
mit doppelseitigen Platinen aus? Hast Du damit Erfahrung?

von Johannes F. (emitterfolger)


Lesenswert?

Philipp Klostermann schrieb:
> und vielleicht, wenn ich noch die Zeit finde, ein Layout..

Ich glaube, die Schaltung kann man recht einfach auf einer Lochraster- / 
Streifenrasterplatine aufbauen.

Als Spannungsquelle würde ich ein 15V Steckernetzteil entsprechender 
Leistung nehmen, Batterien würden sicher nicht lange halten.
Dahinter noch ein 78(L)05 für die 5 Volt.

von Johannes F. (emitterfolger)


Angehängte Dateien:

Lesenswert?

Ich habe mal den kompletten Schaltplan gezeichnet.

Als LowSide-Treiber habe ich den ULN2003 gefunden, dieser hat nur 7 
Treiber - hier ausreichend, ist aber sonst mit dem ULN2803 identisch.

Die Zuordnung der Ports habe ich etwas anders gewählt, um eine zweifache 
Nutzung der ISP-Signale zu vermeiden. Bei versehentlich geschlossenem 
Schalter würden die Programmierimpulse sonst gegen Masse kurzgeschlossen 
werden.

Grüße

von bitte löschen (Gast)


Lesenswert?

Du meinst:
1
  in r16,PINC
2
  andi r16,0b00111111
3
  in r17,PINB
4
  andi r17,0b11000000
5
  or r16,r17
statt:
1
  in r16,PINB
?

Na, da achte ich doch lieber auf die Schalter. ;-)

Sag mal, wollen wir die 15V nicht lieber auch stabilisieren?

von bitte löschen (Gast)


Lesenswert?

Am Rande:
Habe mal bei Reichelt nach Steckernetzteilen mit 15V geschaut.
Das billigste mit 15V ist ein Universalnetzteil, das bis 15 V / 36 W 
geht, für 12,95€:
http://www.reichelt.de/?ACTION=3;ARTICLE=89789
Plus 0,12€ für die 6,3mm/2mm Einbaubuchse, die mit etwas Glück zum 
5,5mm/2,1mm Adapterstecker passt 
(http://www.reichelt.de/?ACTION=3;ARTICLE=35273;PROVID=2402), macht 
13,07€

Ein Printtrafo (15 V / 4,8 VA / 320 mA) kostet 3,20€:
http://www.reichelt.de/?ACTION=3;ARTICLE=2465
oder 3,35€ für die Luxusvariante (2 x 7,5 V / 4,8 VA) für weniger 
Dropout bei der 5 V-Versorgung, die jetzt schon bei 20mA 200mW in einem 
TO-92 Gehäuse verbrennt:
http://www.reichelt.de/?ACTION=3;ARTICLE=2466
Das passende Netzkabel mit Kabeldurchführung kostet 1,04€:
http://www.reichelt.de/?ACTION=3;ARTICLE=13478 und
http://www.reichelt.de/?ACTION=3;ARTICLE=9245
4 1N400X-Dioden kosten zusammen 0,08€ (8 Stück bei Verwendung des 
Luxustrafos würden also 0,16€ kosten.):
http://www.reichelt.de/?ACTION=3;ARTICLE=1729
Ein 7815 kostet 0,20€:
http://www.reichelt.de/?ACTION=3;ARTICLE=23458
Und zwei 470uF-Elkos kosten zusammen 0,12€ (4 Stück bei blah.. würden 
0,24€ kosten)

Das macht zusammen 4,64€ bzw. 4,99, also etwa ein Drittel, und 
außerdem im Preisbereich des billigsten 9V-Akku bei Reichelt, wovon auch 
noch 2 nötig wären.

Abgesehen vom Preis und der Möglichkeit der weniger grenzwertigen 
5V-Versorgung hat man alles in einem Gerät, und der Trafo im Gerätefuß 
würde durch sein Gewicht auch noch für eine verbesserte Standfestigkeit 
bei Schalter-Betätigung sorgen.

von Johannes F. (emitterfolger)


Lesenswert?

Philipp Klostermann schrieb:
> Du meinst:  in r16,PINC
>   andi r16,0b00111111
>   in r17,PINB
>   andi r17,0b11000000
>   or r16,r17
> statt:  in r16,PINB
> ?
>
> Na, da achte ich doch lieber auf die Schalter. ;-)

Naja, soo schlimm ist das doch nicht. Ich finde es jedenfalls besser, 
die Portpins (nahezu) vollständig auszunutzen und Doppelbelegungen zu 
vermeiden.
Wenn man den Code möglichst übersichtlich halten will, kann man es 
natürlich auch anders machen, ist eben Geschmackssache.
Aber wir wissen ja auch gar nicht, wie der TE den Controller flashen 
möchte. Vielleicht hat er einen HV-Parallel-Programmer und nimmt den 
Controller zum Flashen sowieso raus, dann kann man sich die ISP-Buchse 
sparen und die Sache wird einfacher.
Eigentlich ist die ISP-Buchse sowieso nicht unbedingt nötig, da bei 
dieser recht trivialen Anwendung eigentlich nicht viele oder auch gar 
keine "Firmware updates" notwendig sein sollten, und für die paar Fälle 
kann man den Controler auch rausnehmen und extern flashen.

Philipp Klostermann schrieb:
> Sag mal, wollen wir die 15V nicht lieber auch stabilisieren?

Nein, das wäre überflüssig. Siehe hier:
http://www.elv-downloads.de/service/manuals/DCM7001/DCM7001_KM_G_080205.pdf
Da wird für die Anzeige auch einfach die geglättete Spannung nach dem 
Gleichrichter genommen (+UNSTAB) und mir sind bei dem Gerät noch nie 
Helligkeitsschwankungen oder ähnliches aufgefallen.
Die "Kennlinie" des menschlichen Auges hat logarithmischen Charakter, 
siehe LED-Fading, also sind Helligkeitsschwankungen von vielleicht 
10% im Bereich hoher Helligkeit fast nicht mehr wahrnehmbar.

Philipp Klostermann schrieb:
> Am Rande:
> Habe mal bei Reichelt nach Steckernetzteilen mit 15V geschaut.
> Das billigste mit 15V ist ein Universalnetzteil, das bis 15 V / 36 W
> geht, für 12,95€:
> http://www.reichelt.de/?ACTION=3;ARTICLE=89789

Okay, mit 15V ist es bei unstabilisierten Trafo-Steckernetzteilen wohl 
schwierig...
Und 13€ sind ziemlich viel, zumal 36 W hier auch reichlich 
überdimensioniert sind.

Philipp Klostermann schrieb:
> Ein Printtrafo (15 V / 4,8 VA / 320 mA) kostet 3,20€:
> http://www.reichelt.de/?ACTION=3;ARTICLE=2465
> ...
> Das macht zusammen 4,64€ bzw. 4,99, also etwa ein Drittel

Da fehlen noch Platine, Sicherungen, Sicherungshalter, aber das sind nur 
1..2€.

Philipp Klostermann schrieb:
> für weniger
> Dropout bei der 5 V-Versorgung, die jetzt schon bei 20mA 200mW in einem
> TO-92 Gehäuse verbrennt:

Der BC547 im TO92 verträgt 500mW, es sollte also bei ca. 100mW mit dem 
2x7,5V-Trafo gehen. Sonst kann man ja auch einen 7805 nehmen.

Zur Betrachtung der Stromaufnahme:

Die 15V(eff) vom Trafo ergeben nach dem Gleichrichter etwa
U(gleichricht) = 15V * 1,414 - 2V = 19,2V
bei einem maximal entnehmbaren Strom von
I(max) = 320mA / sqrt(2) = 226mA.

Die etwas höhere Spannung ist günstig, da dann der Anteil der 
Widerstände an der Strombegrenzung aufgrund des höheren Spannungsabfalls 
steigt, wie du bereits schriebst.
In der Praxis wird nie "888" angezeigt, die meisten Segmente sind bei 
"188" an, also 16. Davon sind nur 1/3 gleichzeitig eingeschaltet, also 
durchschnittlich 16/3.
Das heißt, wir können den Impulsstrom durch die LEDs etwas erhöhen:
I(LED) = 200mA / (16/3) = 37,5mA
Damit ergibt sich dann ein Widerstand von
R = (19,2V-11V) / 0,0375A = 218,7 also 220 Ohm
An den Widerständen entsteht eine Verlustleistung von
P = (19,2V-11V)^2 / 220 Ohm = 306 mW
Es sind also 0,6W-Metallschichtwiderstände erforderlich.

Es bleibt nur die Frage, ob der TE sich an Netzspannung heranwagt bzw. 
die nötigen Kenntnisse dazu hat. Da ist das mit dem fertigen Netzteil 
eben einfacher.

Grüße

von Maddin (Gast)


Lesenswert?


von bitte löschen (Gast)


Lesenswert?

Maddin schrieb:
> Beitrag "Re: Was wird Entwicklung einer Platine mit uC, Display, USB kosten?"

Auch ein schönes Projekt. Was willst Du damit in Bezug auf dieses 
Projekt sagen?

Johannes F. schrieb:
> Es bleibt nur die Frage, ob der TE sich an Netzspannung heranwagt bzw.
> die nötigen Kenntnisse dazu hat. Da ist das mit dem fertigen Netzteil
> eben einfacher.

Mit einem Print-Trafo ist das doch ausreichend unkritisch. So etwas habe 
ich schon als Kind mit Edding-gemalten Platinen gemacht. Wenn das ganze 
in ein Kunststoffgehäuse kommt, das Kabel mit einer 
http://www.reichelt.de/?ACTION=3;ARTICLE=72159 an der Platine befestigt 
wird, und irgendwie im Gehäuse zugentlastet wird, wobei ich dafür noch 
nicht das richtige Bauteil gefunden habe, ist es auch sicher.

Ich vermisse Feedback vom TE. Z.B. ist noch die Frage offen, ob 
Lochraster oder Platinenlayout.

von Maddin (Gast)


Lesenswert?

Hi,

schweifte gerade so über Eure Entwicklung und dachte das diese Projekte 
sich ja sehr ähnlen.

Vielleicht könnt Ihr ja etwas davon gebrauchen.

M.

von Johannes F. (emitterfolger)


Lesenswert?


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.