Hi Leuts habe vor drei 7-Segment Anzeigen mit einem Atmega8 in Assembler anzusteuern. Benutze ziemlich große 7-Segment LED's und multiplexe das ganze vom Mikrocontroller aus. Meine 7-Segment Anzeigen haben eine gemeinsame Anode.Funzt auch alles Softwaretechnisch : Problem: Welche Transistoren soll ich zum Multiplexen der gemeinsamen Anoden verwenden.Bis jetzt habe ich die einfach so an die Pins des Mikrocontroller gehängt.Das Problem dabei ist, dass die 7-Segment Anzeigen dann einfach zu dunkel sind.Weiß jmd.was ich da benutzen kann? Oder liegt es vielleicht daran, dass ich zu kurz und in falschen Zeitabständen die 7-Segmente ansteuere? Bis jetzt habe ich jede Mikrosekunde eine fuer eine mikrosekunde leuchten lassen. Wäre voll Super wenn mir jmd. eine Tip geben könnte!!!!!
Danke Hannes! Was meinst Du Hannes sollte ich besser den IC von Maxim benutzen habe die Nummer jetzt nicht im Kopf ist aber ziemlioch teuer das Ding! Ist es schwer mit I2C anzusteuern habe noch keine Erfahrung damit!!! Danke im vorraus fuer eine Antwort!!!
der heisst MAX7219 und lohnt sich für 3 Digits wirklich nicht. Wie gross sind "grosse Anzeigen"? Bei >20mm sind meist mehrere LEDs pro Segment verbaut, mit 5V kommt man dann nicht mehr hin. Und wird die Anzeige mit höherer Spannung als der AVR betrieben, wird die Ansteuerung der Anoden etwas aufwändiger. 1µs ist auch kein guter Wert, unnötig klein, Prozessorlast steigt, Schaltverluste auch. Nimm was in der Grössenordnung 1-5ms.
hi kleine idee 74 46 mein ich BCD zu 7Segment decoder der hat schon Treiber mit drin dann noch 3 Transistoren um jeweils das gerade anzusteuernde Segment auszuwaehlen da sollte dann auch ein kleiner BC irgendwas dicke reichen
Hallo Jens, habe gerade mal im Datenblatt geschaut der 74LS46 packt gerade mal 20mA am Ausgang ist gerade mal genug für eine LED im Dauerbetrieb. Ich würde lieber den ULN2003 bzw. ULN2803 nehmen und für die Anode jeweils einen Treibertransistor. Zur not tun es auch 7x BC547 in den Kathoden. Aber das muß jeder selbst wissen. Horst
Yap ich wuerde fuer mich 9 Transistoren nehmen, die ich mit dem 74 46 Ansteuer aber gut zu wissen, das mich mein Kopf nach 4 Jahren noch daran erinnert, wie der Decoder genau hiess =) Gruss Jens
Hi... - Es war vom Multiplexen der gemeinsamen Anoden die Rede. Das erfordert high-side-driver. - Das Display lief schon direkt, kommt also mit den 5V des AVRs und den Kathodenströmen zurecht, wobei die Anodenströme den AVR überlasten und auf Dauer schädigen. Also werden für die High-side Transistoren benötigt, einfache billige NPN-Transistoren, die mit (7*20) 140mA belastet werden. Die Auswahl ist groß, ich nahm BC327 weil die billig, robust und zuverlässig sind und etwas Leistungsreserve haben. Wiso man für diesen Zweck (3-Kanal-high-side-driver) einen 7-Segment-Decoder oder einen ULN2003/8003 (low-side-driver) einsetzen sollte, kann ich irgendwie nicht nachvollziehen. Guten Rutsch... ...HanneS...
Naja ganz einfach der Mega8 schafft laut Datenblatt auch nur 20mA und der Kathodenstrom der 3 Anzeigen, die gemuxt werden ist garantiert höher als 20mA. Es kann sein, das dies einige Stunden sogar Wochen gutgeht aber verlassen würde ich mich nicht darauf. Wenn die Port Pins knapp sind halt nen LS46 / LS47 + Transistoren oder wenn man 3 Leitungen zusätzlich frei hat kann man die Transistoren direkt auf die Ports schalten oder halt nen ULN2003 der packt soviel ich weiß 100mA pro Kanal (bin mir aber nicht sicher hab auch kein Datenblatt) Grüße Horst
@Horst: Auf der Low-Seite (einzelne Kathoden) fließt über je einen Kathodenwiderstand jeweils der Strom für ein Segment, also 20mA gegen GND. Dafür ist der Mega8 gebaut und das tut er. Auf der High-Seite sind die 3 zusammengefassten Anoden, in die jeweils der Strom von 0 bis 7 Segmenten, also 0...140mA fließen müssen. Dies ist zuviel für einen AVR-Port und wird ihn auf Dauer schädigen. Hier müssen also Treiber rein. Da es nur 3 Stellen sind, tun es einfache PNP-Transistoren. Sie sind weder durch ULN2x03 noch durch BCD-7-Segment-Decoder zu ersetzen. Wenn die Portpins knapp wären, dann wäre das sicher angesprochen worden, also kann ich davon ausgehen, dass die Portpins ausreichen. Würde das (große) LED-Display eine höhere Spannung als der AVR brauchen und noch einen höheren Strom als der AVR kann, dann würde ich auf der Low-Seite einen ULN2003 (2803, falls Dezimalpunkt benutzt wird) vorschlagen und für die High-Seite drei High-side-switch (Sense-HexFETs BTSxxx von Infineon, billig bei Pollin zu haben). Damit wären die Probleme erschlagen, denn der ULN2x03 kann 0,5A je Kanal, die BTSxxx mehrere A und Spannungen bis weit über 20V. Wennman die Multiplexfrequenz nicht unnötig hoch wählt, sind die BTSxxx auch schnell genug. Einen 7-Segment-Decoder würde ich nur einsetzen wenn es nicht anders geht. Denn er verkompliziert die Platine unnötig. Es ist schon traurig genug, dass oftmals die leere Platine teurer wird als die Teile, die dann draufgelötet werden... Guten Rutsch... ...HanneS...
Hallo Leuts Hannes hat geschrieben! Ich habe BC327 genommen (pnp 0,5A), allerdings am AT90S1200 mit 3 7-Segment-LED-Displays. Heißt (pnp 0,5A) Ic Max 0,5 Ampere? Hilfe und Danke für die vielen Antworten!
@ Hannes mit den Platinen muß ich Dir leider recht geben... War eben grad im Elektronkik Laden 5 für ein Stückchen Epoxydharz. Naja egal. Habe vor einigen Jahren auch mal was mit einer gemuxten Anzeige gemacht (8-Stellig) und festgestellt, wenn ich die Segmente mit ca. 15mA brennen lasse kaum was sehe. Die Segmente in unserem Beispiel bekommen den Strom ja auch nicht Permanent, sondern 3x pro Zeiteinheit und wenn ich 20mA/3 nehme, so würde jedes Segment bloß noch 7 mA bekommen. Also jagt man den Strom, der durch die einzelnen Segmente fließt nach oben, bis der Eindruck entsteht sie sind wieder gleich hell. Das wären in underem Fall 45-60mA. Im Datenblatt einiger 7-Segmentanzeigen ist sogar der Maximale Pulsstrom pro Segment angegeben (bis 100mA). Habe das schon bis 8 Stellen gemacht und hatte einen Strom von ca. 90mA pro Kathode und über 500mA auf der + Leitung, die die LED's versorgte. Viele Grüße Horst
Ein Datenblatt meint ICmax 0,5A, ein anderes Transistordatenbuch schreibt ICmax 1A. Du brauchst nicht über 200mA je Stelle, also bist du weit weg vom Limit. BC327 (PNP) und BC337 (NPN) sind meine Standard-Typen für kleinere Sachen. Mit ihnen hatte ich (seit vielen Jahren) noch keine Probleme. ...HanneS...
Ich hatte ein ähnliches Problem, und BC 547 (npn) verwendet (diese Spezies hatte in meiner Bastelkiste gerade die höchste Population). Kollektor an VCC, Basis über 1,2 kOhm an den AVR-Ausgang, Emitter an gemeinsame Anode, die einzelnen Segmente über 470 Ohm an weitere AVR-Ausgänge. Ist bei der pnp-Variante irgendwas besser? Die verringerte Spannung an den 7-Segment-Anzeigen ist ja nicht problematisch, die brauchen ja nur ca. 2 Volt um anzuspringen.
@Horst: - 4,8V (4 NiCd-Zellen), - AT90S1200, - 3-stelliges LED-Display mit gemeinsamer Anode je Stelle in grün (2V Spannungsabfall), - 3 BC327 mit Basiswiderstand 1k je Stelle (Anode) - 7 mal 220 Ohm Segmentwiderstand vom AVR-Pin zur Kathode - Multiplex mit 1/4 Zeit je Stelle, da im 4/4 noch eine Matrixtastatur 3x4 abgefragt wird Das Display bekommt also nur knapp 15mA bei 25% ED. Und das Display ist recht gut zu erkennen, obwohl ich noch lange nicht am Limit des AVR bin. Falls Deine Displays viel mehr Strom brauchen, dann hast du vielleicht einen Typ mit schlechtem Wirkungsgrad gekauft. Was Platinen betrifft, ich nehme nur Epoxyd, aber für meine kleinen Projekte reichen die Abfälle von Pollin, das Kilo zu 3,50. Ich fräse dann mit einer ganz einfachen rechnergesteuerten Fräse Isolierlinien, die ich mittels Eagle-Demo erstelle. Da ich einen 1mm-Speerbohrer zum Fräsen einsetze, muss ich mich an das Zehntelzollraster halten, feiner wird dann Murks. Und da achte ich nunmal panisch darauf, dass die Platine nicht komplizierter wird als unbedingt erforderlich. Nur so bleibt die Platine billiger als das was drauf kommt. Ich mach das aber nicht gewerblich sondern nur als Hobby. Und fast alle Platinen sind "Testplatinen" (Prototypen) und damit Einzelstücke. Guten Rutsch... ...HanneS...
@Zotteljedi: Kollektorschaltung geht natürlich auch, hat aber (wegen Ube) einen weiteren Spannungsabfall von etwa 0,5...0,8V am Transistor, der die am Segmentwiderstand abfallende Spannung reduziert. Damit kann man den Segmentstrom nicht mehr so genau mit dem Widerstand einstellen. Schwankungen der Betriebsspannung wirken sich stärker auf den Segmentstrom aus. Aber es geht, keine Frage (erspart sogar die Basiswiderstände)... Guten Rutsch... ...HanneS...
Hi Leute, tach zusammen, ich hab' da noch 'ne abgefahrene Idee. Besorge Dir bei ebay oder so ein CB-Funkgerät der Marke DNT SCANNER40. Der Vorgänger von der "Carat", glaube ich. Dort ist die Kanalanzeige mit einem I2C-Schaltkreis mit dem Hauptprozessor verbunden. Habe ich damals eine Platine extra besorgt, um ein abgesetztes Display im Handmikrofon zu bauen. Habe ich aber nicht mehr, ist ja auch 10Jahre lange her... (Kinder, wie die Zeit vergeht) Gruß Axel
@HanneS Ich möchte ja garnicht bestreiten, das man nix sieht, wenn man es so macht. Durch die 220Ohm R's kann der Strom ja auch nicht höher werden als 12mA. Also passiert dem AVR auch nix. Nur wenn die Lichtverhältnisse wirklich schlecht sind dann würd ich die LED's bis kurz vor die Grenze treiben. Denn dafür sind diese wiederum gebaut. Man muß halt manchmal abwägen und einen gesunden Mittelweg für sein Projekt finden. Bezüglich Platinen muß ich sagen: Einzelstücke mache ich meistens mit Teflondraht auf Epoxydharz bzw. wenn die Schaltung (Röhrenschaltungen) es zulässt die Freiverdrahtung und Lötstützpunkte. Vom Ätzen bin ich weggekommen der Ärger mit der Freundin war mir doch zu groß (Zerfressene Klamotten, Handtücher im Bad). Wenn eine Schaltung zu 100% Funzt und ich was ordentliches will, dann bezahl ich halt die 50 und geh zu PCP-Pool. Viele Grüße, Horst
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.