Anbei mal ne Ansteuerung für Jumbo-LED Anzeigen. Da je 4 LEDs in Reihe geschaltet sind, werden mindestens 8V benötigt. Daher habe ich die Betriebsspannung für die Anzeige auf 12V festgelegt. Als Treiber für die Segmente dient ein TPIC6B595 (max 50V). Die Anoden werden durch einen CMOS-Pegelwandler CD4504 mit nachgeschaltetem Stromverstärker angesteuert. Das Multiplexen macht dann der ATTiny26 nebenbei im Timerinterrupt. Es werden die Segmente gemultiplext, d.h. je nach ausgewähltem Segment die Digits eingeschaltet. Durch die hohe Multiplexfrequenz (5,4kHz) ist praktisch kein Flimmern sichtbar. Als Beispiel wurde eine Uhr programmiert mit 2 Tasten zum Setzen der Uhrzeit. Außerdem läßt sich die Helligkeit dimmen. Dazu wird im Kompareinterrupt die Anzeige wieder ausgeschaltet (PWM). Das Dimmen erfolgt in 11 logarithmischen Stufen. Peter
Wer sich fragt, wo bekommt man den TPIC6B595, hier eine Antwort: Segor (1,20/bei 10 Stk. 0,95) Reichelt, Conrad und CSD scheinen ihn nicht zu haben. Ich habe das Teil auch gerade gesucht, um eine andere Schaltung zu verkleinern. Gruß Elektrikser
MBI5016 ist sonst noch eine Alternative, aber auch nicht besser zu bekommen... Maddin
Hallo, ich habe soetwas mal ohne externen IC gemacht, nur Transistoren verwendet. Anbei die Schaltungsidee als Schaltplan. Meine Schaltung arbeitet mit einem Tiny2313/90S2313, empfängt die DCF77-Zeit und regelt die Helligkeit der Anzeige über die Umgebungshelligkeit. Damit ist die Anzeige bei Dunkelheit gerade noch sichtbar, im Hellen aber trozdem gut lesbar. Schöne Grüße, Clemens
@Clemens Ist das nur eine Schaltungsidee oder hast Du das auch in die Tat umgesetzt? Was mich wundert, ist die Ansteuerung der Anoden. Wenn die Transistoren mit dem Emitter an einer höheren Spannung (V+ bei Dir) liegen, werden sie sowohl bei L, als auch bei H-Pegel aufgesteuert sein, da 5V an der Basis immer noch "negativer" als +12V am Emitter sind. (Kopf kratz) :-) MfG Paul
P.S. Wenn der nichtbeschriftete Regler links oben auch ein 7805 ist, würde es gehen. Aber: Dann würde es wieder nicht für Jumbo-Anzeigen reichen. MfG Paul
Hallo Paul, du hast die schönen Z-Dioden übersehen... Ich hab 8 oder 9 V für die LEDs, der rest auf 5V, dann sind die Dioden 4.7V und es geht. Hier läuft die Anzeige seit dem Entwurf einwandfrei. Einziges Problem ist der etwas magere Strom durch den AVR, dieser macht wirklich nicht deutlich mehr als 200mA gesamt, auf jeden Fall schafft er die 800mA (die ja bei "alles an" fließen müssten) definitiv nicht. Das schadet allerdings nich so viel, der Unterschied in der Helligkeit ist nicht so stark wie der Unterschied im Strom. Clemens
@Clemens, man kann die Pegelwandler natürlich auch diskret aufbauen. Mir ging es aber darum, den Schaltungsaufwand möglichst zu minimieren. Auch wollte ich dem MC strommäßig nicht zuviel zumuten. Die Widerstände 47R sind etwas groß, aber bei mir ausreichend. Der TPIC6B595 kann ja bis zu 500mA Spitzenstrom, also kann man die Widerstände ruhig noch verringern oder die Spannung auf 15..18V erhöhen. Peter
Noch ne Anmerkung zum Compare-Interrupt. Der Comparewert 0 kann nicht benutzt werden bei Software-PWM ! Der Grund ist, daß ein Compareinterrupt erst einen Zyklus später erkannt wird: Overflowinterrupt: Zähler von FF->00 Compareinterrupt: Zähler = Comparewert + 1 CPU-Zyklus Abhängig davon, ob im Main gerade ein 1-Zyklusbefehl oder ein Mehrzyklusbefehl nicht im letzten Zyklus ausgeführt wird, wird mal der Compare- und mal der Overflowinterrupt zuerst ausgeführt. Das Ergebnis ist ein zufälliges Flackern der PWM. Deshalb habe ich für maximale Helligkeit 255 benutzen müssen. Peter
@Clemens Oh, oh! Das habe ich als "normale" Dioden genommen. Entschuldige meine Unachtsamkeit. Anbei mal die Lösung bei meiner Uhr. Ich arbeite mit geschalteten Konstantstromquellen, weil bie mir die Segmente "hochkant" 5 LED´s haben und die quer nur 4. Allerdings brauche ich außer dem Prozessor (Attiny2313) keine weiteren Schaltkreise. Der Strom durch die LED´s ist: 0.6 Volt / Emitterwiderstand. MfG Paul
Poste den Plan doch bitte (noch) in einem bldbetrachter-kompatiblen-Format (png, gif, notfalls auch jpeg). Vielen Dank!
Hallo Paul, sehe ich das richtig, dass bei Dir die Anzeige immer gleich hell leuchtet? Also dass bei einem eingeschaltetn Segment genausoviel Strom (=Licht, was rauskommt) fließt als wenn alle 8 an sind? Eignetlich ist das ja ein unerwünschter effekt, ist die Anzeigehelligkeit dann deutlich von der angezeigten Zahl abhängig. Vielleicht musst du eine ähnliche Konstruktion für jedes einzelne Segment machen? Also die Dioden und den Emitterwiderstand in die Kathodenleitung integrieren, oben wird er dann nicht mehr benötigt. Schöne Grüße, Clemens
Das ist richtig. Es fließen immer ca. 17mA, egal wie viele Segmente an sind. Ich kann gerne ein Foto machen, damit Du siehst, daß das funktioniert. MfG Paul
Ach so, ich muß vielleicht noch dazu sagen, daß sowohl die Digits gemultiplext als auch die Segmente, wenn das jeweilige Digit "dran" ist gemultiplext werden. Somit ist immer nur ein Segment im Gange, entweder mit 4 oder mit 5 roten LED´s in Reihe. Die Bilder werden leider zu groß. (als jpeg ca. 1,6 MB)
Heisst das, dass du "anders rum muliplexet"? Also 1. Segment an und alle Stellen die dieses Segment an haben auch an, danach 2. Segment und alle Stellen die das zweite Segment an haben, etc? Ist auch eine Idee, ich kann mir vorstellen, dass der "Character generator" dann etwas umfangreicher ist, oder? schließlich muss man sich bei jeder Multiplexstufe die richtigen Stellen raussuchen... Bei der anderen Methode ist es einfach ein Memoryzugriff auf ein Array in dem der Wert für eine Stelle steht und das anschließende Einschalten der Stelle. Clemens
@Clemens So ist es. Ich habe eine ziemlich lange SELECT CASE Anweisung drin. Ist alles in BASCOM. Gute Nacht. Paul
>>So ist es. Ich habe eine ziemlich lange SELECT CASE Anweisung drin.
Ist alles in BASCOM.
Das ist doch die Perfekte Anwendung für eine Lookup-Table (im Flash).
Aber sowas geht in BASCOM sicher nicht oder?
Das "anders herum" Multiplexen ist aber nur wegen deiner Wahl der Anzeige nötig, oder? Der Look-Up-Table braucht ja auch nur 7-8 Einträge bei einer Datenbreite von 4 Bit.
@Clemens "Ist auch eine Idee, ich kann mir vorstellen, dass der "Character generator" dann etwas umfangreicher ist" Nö, damit hat das überhaupt nichts zu tun. Schau mal in mein Programm, ich mache es genau so. Im Interrupt werden einfach die 4 Digits für das aktuelle Segment zusammen gesammelt und ausgegeben. Dazu wird eine Maske rotiert, die dann auch ein 1-Bit in das Schieberegister füttert, wenn sie einmal rum ist. Peter
@Rahul Ja, das ist nur wegen meiner Anzeige so. Dieses Ding hat 12cm hohe Ziffern und leider bei den "Quersegmenten" nur 4 LED drin. Deshalb die Stromquellen. Außerdem war das eine böse Denkaufgabe und das Pro- gramm ging gerade klemmend in den Prozessor. :-) Ich wollte aber unbedingt diese Anzeigen nehmen, weil die Uhr auch aus größerer Entfernung abzulesen sein sollte.
17mA ist aber nicht besonders viel im Multiplex-Betrieb. @Bildgrösse: Kennst du irfanview? Damit kann man Bilder wunderbar verkleinern, und kosten tut's auch nix...
@Rahul ...kenne ich. Aber auch damit wird das zu groß. Wenn ich das per Modem übertragen will, muß ich mich 2 mal rasieren, bevor es fertig ist. MfG Paul
Ein vernünftig heruntergerechnetes Jpg hat ca 50 bis 60 KByte. 1600*1200 Pixel sind super um sie daheim anzuschauen, fürs I-Net tuts auch 640*480. Dazu eine erträgliche Kompressionsstufe und die 60 KB lassen sich ohne Probleme erreichen. Meine Mavice machte auf eine normale 1,44 MB Diskette 25 bis 30 Bilder drauf. Deine Uhr würde mich auch interessieren. Vieleicht überlegst du dir das mit den Bilder ja noch mal.
Ich finde es übrigens sehr interessant, dass andere Leute (in diesem Fall Peter) die gleiche Lötmethode anwenden, wie ich: Nicht erst lange Drähte biegen, sondern gleich in Lötzinn auslegen.
>1622.4kB
Das gibt Mecker von Andreas!
Und dann auch noch unscharf...
Aber wirklich chic. Zuhause schieb ich das Bild mal durch irfanview...
Falls der Betreiber mitliest: Entschuldige die großen Dateien, ich habe sie zu komprimieren versucht, aber si waren nachher nicht zu öffnen. In der Not lösche sie bitte. Schuldbewußt: Paul
@Paul, womit bearbeitest Du denn die Bilder ? Ich hab sie mit 50% Qualität gespeichert und dann sind sie nur 68..141kB groß und man kann trotzdem noch alles erkennen. Peter
Das war irgend so ein Shareware-Programm, was ich auf die Schnelle hergeladen habe. :-( Das ist hier nur mein "Werkstattrechner" und auf dem ist nur das Nötigste. Ich habe absolut keine Ahnung von Bildbearbeitung und brauchte das bis jetzt auch nicht. MfG Paul
@Karl-Heinz Womit hast Du das komprimiert? Oder sieht Deine Uhr genau so aus wie meine? duck und weg MfG Paul
Photoshop Spielt aber wirklich keine Rolle. Das kann wirklich jedes schwindligste Bildbearbeitungsprogramm das du finden kannst. Korektur: Ausser dem das du benutzt.
Irfanview ist gut geeignet und kostenlos (wurde aber glaub ich sogar schon hier genannt)
Auf Deinem Bild ist sehr schön zu sehen, welchen Wust an diskreten Bauteilen ich mir mit den 2 ICs eingespart habe. Allerdings sind die ausgeschalteten LEDs sehr hell zu sehen. Hast Du keine Kontrastfolie davor oder sind die leuchtenden LEDs so dunkel ? Ich suche noch ne rote Folie, bei Sonnenlicht sind die nackten Jumboanzeigen ziemlich kontrastarm. Peter P.S.: Ich benutze auch das Programm, welches bei der Kamera dabei war und das fragt beim Abspeichern als JPEG nach der Qualität (0..100).
@Karl-Heinz Jetzt habe ich Photoshop auf der CD zur Kamera gefunden. Geht. Hätte schon eher mal danach gucken sollen. @Peter Ich habe diskrete BE en Masse hier liegen, weil ich gerne "Schlachtfeste" mit alten Geräten veranstalte. Hier gibt es keinen Laden mehr für Elektronikkram. :-( Da nehme ich das, was da ist. Auf den Platz kam es nicht an, da die Uhr ja groß genug ist. Folie ist nicht davor, sondern 1mm "Bastlerglas" (Polystyrol) Ich suche auch noch nach roter Folie, um nur die leuchtenden LED´s sichtbar zu machen. Die LED´s sind VQA13/1 aus DDR-Produktion. Ich traue mich nicht, den Strom zu erhöhen. Ursprünglich wollte ich die Anzeige nach 20 Uhr dimmen, aber das Stück Programm passt nicht mehr in den Prozessor. (Attiny2313) :-( MfG Paul
@Paul, "Hier gibt es keinen Laden mehr für Elektronikkram. :-(" Ja hier in Berlin hat sichs auch schon ausgedünnt. Die Ostläden (Kastanienallee, Warschauer Straße, Bastlerquelle) gibts wohl alle nicht mehr, aber Segor ist ganz gut. "Ursprünglich wollte ich die Anzeige nach 20 Uhr dimmen, aber das Stück Programm passt nicht mehr in den Prozessor. (Attiny2313) :-(" Stells doch mal rein, da ist bestimmt noch Optimierungspotential. In C würde es jedenfalls garantiert reinpassen. Peter
>>>Ich suche noch ne rote Folie, bei Sonnenlicht sind die nackten Jumboanzeigen ziemlich kontrastarm. <<<< http://www.modulor.de/shop/oxid.php/sid/x/shp/oxbaseshop/cl/mod_xtlist/cnid/AAX In Berlin gibts sowas bei denen, Gneisenaustr. Cheers Detlef
...läuft mit einem Pic 16F84.. bin gerade dabei einen kalender zu implementieren. alles in pic asm.. 7 Helligkeitsstufen sind möglich... 4 tasten zur bedienung wochentag soll selbstständig errechnet werden.. maddin
Maddin, wie machst du die Wochentagsanzeige für Mo und Mi? Wie sieht denn das aus? Das ist doch schwer möglich mit den 7-Segment-Anzeigen. Sieht das dann so aus? _ | | | |_|
@Armin K. also ich mache das so:
1 | | | _ |
2 | | | |_| |
3 | |
4 | |
5 | _| |
6 | |_| | |
7 | |
8 | |
9 | _ |
10 | | | |
11 | | | | |
12 | |
13 | |
14 | _| _ |
15 | |_| |_| |
16 | |
17 | _ |
18 | |_ _ |
19 | | | |
20 | |
21 | _ _ |
22 | |_ |_| |
23 | _| | | |
24 | |
25 | _ |
26 | |_ _ |
27 | _| |_| |
auch wenn das M nicht ganz der Norm entspricht, kann man es sehr gut erkenen.. Dennis
:
Bearbeitet durch User
Hallo, in einem anderen Thread wurde nach einem HEX File für den attiny26 gefragt, ich hänge ihn hier noch an..
Nun dann ist vielleicht die Hardware nicht funktionsfähig ? Das Programm, muss nachdem die Fuse-Bits gesetzt sind, per ISP auf den atTiny26. Ist auch ein 11.0592MHz Quarz installiert ?
an der hardwear kans nicht ligen. wenn ich die datei lade sehe ich nur ‹ sonst nichts. Ein 11.0592Mhz quarz wurde eingebaut.
Ich kann das natürlich nicht überprüfen, von Peda weiss ich, sein Code funktioniert. Wie sieht's mit den FuseBits aus, welche hast du eingestellt, bzw. programmiert ? Wenn wir hier nichts finden, bitte ich dich eine Nacht darüber zu schlafen und alles nochmals zu überprüfen. Evtl. sind auch noch Tasten zu drücken ?
also hardwear ist kein problem was ich nicht hinkriege ist das er kompiliert. Die datei die du hast geht eben auch nicht und wenn ich es kompiliere dan kommt eine fehlermeldung die mir sagt das alles nicht gefunden wurde. Ich arbeite mit dem myavr-workpad-plus Könnte es sein as du das falsche dokument geschickt hast? den an der endung heist es .gz aber es müsste .hex heisen oder?
aha ! die Datei ist ge-tart und gezip !!! tar.gz ist so etwas wie zip. hier im Anhang nun als HEX- und ZIP-Datei.
danke ich konnte es entlich laden. funkzionierte auch bis ich die fuses gesezt habe dan nicht mehr welche hast du den gesezt?
Hallo, wie geschrieben, habe ich das nicht aufgebaut. Aber als Hilfe für die Fuse-Bits nehme ich immer: http://www.engbedded.com/fusecalc/ diese Parameter sind für avrdude: -U lfuse:w:0xcf:m -U hfuse:w:0xf4:m Je nach verwendetem Quarz, kann man die 'Wartezeit +64ms' noch verkürzen.
eine frage hab ich noch ich hab nochmals alles durchkontroliert und angeschaut und habe von der verdratung her keinen fehler gefunde. Die bauteile sind auch ganz und genau die wie im plan. Mein Problem ist das ich die Uhrzeit mit den Tastern nicht ändern kann und der Punkt blinkt nicht. Wo kann da der fehler sein?
Anbei mein altes Hex-File. Kann sein, daß bei neuerem WINAVR manche Funktionen geinlined und dann falsch optimiert werden. Dagegen hilft der Compilerschalter: -fno-inline-small-functions Peter
Hallo Peter, schön dass Du hier mit liest, das gepostete HEX-File wurde mit
1 | CFLAGS += -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums |
2 | CFLAGS += -Wall -Wstrict-prototypes |
3 | ## Zusatz Flags
|
4 | CFLAGS += -fno-inline-small-functions |
5 | CFLAGS += -fno-split-wide-types |
6 | CFLAGS += -fno-tree-scev-cprop |
7 | CFLAGS += -fno-move-loop-invariants |
8 | CFLAGS += -ffunction-sections -fdata-sections -Wl,--gc-sections |
9 | CFLAGS += -Wl,--relax |
10 | #
|
11 | ## -- ende --
|
und mit gcc-Version 4.3.4 (GCC) unter Linux übersetzt. Bisher laufen alle meinen damit geschriebenen Programme. .
hab mal das neue hex file geladen und ausprobiert funktioniert leider nicht . kann es sein das ich zuerst die bits setzen muss damit es geht?
hallo peter du hast folgendes am anfang geschrieben: > Als Beispiel wurde eine Uhr programmiert mit 2 Tasten zum Setzen der > Uhrzeit. Ich bringe es jetzt dur das neue hex file hin die helligkeit einzustellen mehr nicht. die anzeige bleibt auch immer bei null stehen auch nach einer stunde warten
Mente Fabian schrieb: > Ich bringe es jetzt dur das neue hex file hin die helligkeit > einzustellen mehr nicht. Funktionieren beide Tasten, d.h. links = heller und rechts = dunkler? Zum Stellen muß links länger gedrückt werden, bis die Stunden blinken. Ich hab das Hexfile noch auf meiner HD gefunden, sollte daher funktionieren. Testen kann ich es aber nicht, da ich die Uhr verschenkt habe. Peter
ja jetzt funkzioniert sie durch etwa 10 sekundiges halten kann ich sie verstellen. wie ist das den mit dem punkt? sollte der blinken oder nicht? bei mir tut der punkt nichts
Mente Fabian schrieb: > durch etwa 10 sekundiges halten kann ich sie verstellen. Dann muß Dein CPU-Takt aber arg daneben liegen. Das sind nur 0,5s. Du mußt auf crystal + full swing fusen. Mente Fabian schrieb: > wie ist das den mit dem punkt? sollte der blinken oder nicht? Wird nicht benutzt. Peter
habs jetzt gerichtet jetzt braucht er nicht mehr so lange danke dan werde ich mir einfach eine schaltung machen mit der ich die led im sekundentakt blinken lasse habe 2 supergrossse punktled's
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.