Hallo, Ich habe ein Programm in C für ein LED-Thermometer geschrieben Features: - 4x7-Segmentanzeige gemultiplext - Temperatursensor LM35 - Prozessor Tiny26 - Quellcode, Hex-Datei und Stromlaufplan liegen in der Zip-Datei bei. Gruß Thomas
Hallo, den Widerstand an ARef erscheint mir etwas seltsam, bei Aref = int sollte dort besser ein 0,1µ gegen Masse ran. 0,5Grad kann man mit dem LM35 auch durchaus brauchbar noch auswerten. Bit 7 in ADCL = 1 -> .5 anzeigen, Bit7 = 0 -> .0 anzeigen. Man kann den Umschaltpunkt natürlich auch auf Bit7/Bit6 -> 01 bzw. 11 legen, dann wechselt die Anzeige bei .25 bzw. .75 Grad. Habe ich mal in eine Heizungs-Geschichte so eingebaut, weniger wegen der Genauigkeit, mehr wegen des optischen Eindrucks... ;) Gruß aus Berlin Michael
Ja, richtig. Das muß ein Kondensator an den Ausgang. ich habe es nochmals im Datenblatt des Tiny26 nachgeschaut. Ich habe die 0,5°C entfernt, weil ich nur 4x7-Segmentanzeigen habe: Das Programm gibt die Temperatur nach dem Schema: z.B. 20°C aus. -> Das Display zeigt das so an: 2 0 ° C!
31Hz ist aber verdammt wenig, das flimmert doch ganz heftig. Einfacher ist es daher, das Multiplexen im Timerinterrupt zu machen, denn dann entfällt jegliche Abhängigkeit von der Hauptschleife. Günstiger ist es auch, die Anzeige synchron zur AD-Wandlung dunkel zu tasten, denn dann hat man keine Verfälschung durch den Segmentstrom. Hier mal ein Beispiel: http://www.mikrocontroller.net/forum/read-4-210743.html#new Peter P.S.: Es macht Quelltexte unverständlich, wenn man überall magische Zahlenwerte direkt einträgt. Günstiger ist es, diesen per #define aussagekrägftige Namen zu verpassen. Dann ist es auch einfacher Änderungen zu machen, z.B. wenn man mal die Anschlüsse tauscht.
Hallo! Könnte mir bitte jemand sagen, welche 4x7 Segmentanzeige da benutzt wird? Wenn möglich, mit Artikelnummer. Dankeschön im Voraus, Liebe Grüße BM
Geh zum Elektronikhändler deines Vertrauens und such nach 4-stelligen 7-Segmentanzeigen mit gemeinsamer Anode, die dir gefallen. Dann holst du dir das zugehörige Datenblatt und identifizierst, welche physikalischen Pins, den 'Pins' a bis g bzw. den 4 Stellen entspricht. Kurz gesagt: Wenn du weißt was du tust, kannst du jedes 4 stellige 7_Segment Element nehmen, welches eine gemeinsame Anode hat.
1k an blauer (also 3.6V) 7-Segmentanzeige bei 5V Versorgungsspannung lassen ca. 1mA fliessen, und das nur 1/4 der Zeit. Kein Wunder, daß die 7mA einer Stelle vom MUN2110 geschaltet werden können mit seinem gigantischen 10k Basiswiderstand und 10k BEWiderstand, denn er bekommt nur 330uA Basisstrom, da reicht sogar 20-fache Stromverstärkung für. Hätte man es richtig gebaut, unter Auslastung zumindest der 20mA die so ein uC-Ausgang liefern kann, dann wären R4-R12 47 Ohm, die MUN2111 wären BC857 und sie bekämen 470 Ohm Basiswiderstand. Dann würde die Anzeige sogar leuchten, zwar immer noch nur halb so hell wie im Datenblatt beworben, aber nicht nur im Dunklen erkennbar, allerings käme man dann nicht mehr mit einer 1N4148 und 78L05 aus sondern müsste den Strom auch liefern. Runterdimmen kann man dann durch geringere Einschaltzeit immer noch. Eine Reset-Beschaltung braucht man bei so einer Anwendung eher nicht,. Sollte der uC abstürzen, sollte man den Wtachdog einschalten.
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.