Forum: Mikrocontroller und Digitale Elektronik 7-Segment-Anzeigen an ATmega48-Thermometer


von Christoph M. (Firma: Herr) (chrissim)


Lesenswert?

Servus,

ich baue mit einem Freund zusammen gerade dieses digitale Thermometer 
für unser P-Seminar:
http://home.arcor.de/fuenfundachtzig/thermo/thermo.htm

Den Aufbau haben wir schon so gut wie fertig, aber wir möchten nun noch 
zusätzlich 3 7-Segment-Anzeigen anschließen, damit man auch ohne PC 
Werte ablesen kann.

Leider sind wir beide Neulinge in diesem Gebiet, deshalb wollte ich 
fragen wie man diese an den ATmega48 anschließt und ob man diesen dann 
anders programmieren muss, und wenn ja wie?

Wär super wenn ihr uns weiterhelft!

Viele Grüße,
chrissim

von yep (Gast)


Lesenswert?

Kauft euch nen Arduino und macht das Projekt neu. Lernt man was bei und 
ist auch nicht allzu schwer...

von MaWin (Gast)


Lesenswert?

Christoph M. schrieb:
> Den Aufbau haben wir schon so gut wie fertig, aber wir möchten
> nun noch zusätzlich 3 7-Segment-Anzeigen anschließen,

Also noch mal ganz von born.
Denn der uC hat gar nicht genügend Anschlüsse übrig.
Natürlich kann man versuchen noch massenhaft externe Bauteile 
dranzubauen (z.B. ein zweiter uC :-)

Die Schaltung ist für deren eigentlichem Anwendungsbereich sowieso 
kompletter Humbug von vollkommenen Laien. Denn ein PC besitzt bereits 
einen internen I2C Bus an dem man direkt weitere LM75 anschliessen 
könnte, Software die zusätzlichen Temperaturen unter Windows anzuzeigen 
gäbe es ebenfalls fertig (zumindest unter XP hatte ich mal welche).

> ob man diesen dann anders programmieren muss,

Natürlich. Und zwar ziemlich komplett, weil man eben einen anderen uC 
mit mehr Anschlüssen braucht. Daher könnte es sinnvoll sein, an den 5V 
Bereich der seriellen Leitung einfach einen weiteren uC anzuschliessen, 
der die Daten mitliest und auf seiner 7-Segment anzeigt. Aber dann kann 
man auch gleich die Temperatur mit einem zweiten Sensor messen, das 
spart alle Anpassungsarbeiten und kommt zu

http://www.elektronik-kompendium.de/public/arnerossius/schaltungen/avr/thermometer.htm

von Thomas (Gast)


Lesenswert?

Christoph M. schrieb:
> Leider sind wir beide Neulinge in diesem Gebiet
Wie würdest du euer Verständnis für Hard- und Software auf einer Skala 
von 0 bis 10, wobei 0 das niedrigste ist, beschreiben?

von Gerald B. (gerald_b)


Lesenswert?

Den Arduino Uno oder Duemilanove (auf jeden Fall einen mit Controller im 
DIL Gehäuse) wollte ich auch gerade empfehlen. Theoretisch würden die 
Pins am ATmega 48 gerade so ausreichen 8x Segmente mit DP plus 3 Pins 
zum Muxen. Nur gibt es inzwischen bessere Temperaturfühler, als einen 
Heißleiter. Nimm einen DS18B20 und du bis allen Ärger mit Calibrieren 
los. Mit der seriellen Schnittstelle und den Programmieradapter am 
Druckerport (welcher halbwegs aktuelle PC hat diese Schnittstellen 
überhaupt noch) ist einfach Krampf. Das macht der Arduino gleich in USB. 
Für fast alles gibt es Lib's, die du nur noch mit ein bisschen Code 
verwursten brauchst. Die LED Anzeige kannst du entweder direkt mit ein 
paar Treibertransistoren an den Prozzi hängen. Mein Favorit für sowas 
ist der SAA1064 kostet knapp über 2€. Mit dem kannst du das Display auch 
mal nen Meter weit von der Steuerung absetzen und 4 Leitungen inklusive 
Spannungsversorgung langen. Wenn's mehr als 4 Stellen werden sollen, 
schau dir mal den MAX7219 an, der kann bis zu 8 Siebensegmentanzeigen 
ansteuern. Oder du nimmst gleich ein alphanumerisches LCD Display (z.B. 
16x2) auch wenn man das direkt anschließen kann, mache ich das 
eigentlich lieber über I2C mit einem PCF8574, weil man dann das Dispaly 
von der Steuerung absetzen kann. Suche dir zu den von mir genannten 
Bauteilen ein paar Beispiele und Lib's, denn man muß ja nicht ständig 
das Fahrrad neu erfinden ;-)
Wenn ihr dann alles auf dem Arduino entwickelt habt, dann steht es euch 
frei, das auf einen Mini, oder einen nackten Chip zu proggen. Als 
Programmer eignet sich der USBasp ganz hervorragend. Da müßt ihr euch 
nicht mit dem Druckerport rumschlagen.

Gruß Gerald

von m.n. (Gast)


Lesenswert?

Als 4-stell. LCD, damit man auch 20.6° anzeigen kann. Die Schaltung kann 
auch direkt als Thermometer programmiert werden.
Beitrag "7-Segm. LCD-Ansteuerung, 4-stelliges Einbaumodul, Attiny45"
oder mit 13mm LED
Beitrag "Re: 7-Segment Anzeige 3-3tellig"
Ein Foto mit Einbaurahmen ist etwas weiter unten zu sehen.

von Christoph M. (Firma: Herr) (chrissim)


Lesenswert?

Vielen Dank schonmal für eure schnellen Antworten!!! :D

Die Lösung von MaWin mit dem 2. uC der mitliest erscheint mir gerade am 
Besten, wie würde das denn genau funktionieren?

Unser Verständnis müsste ich wohl leider bei 0 einordnen, da wir zwar 
den Aufbau nach dem Schaltplan zusammenlöten konnten, aber nichts davon 
bis jetzt wirklich verstehen...

von Mike (Gast)


Lesenswert?

yep schrieb:
> Kauft euch nen Arduino und macht das Projekt neu. Lernt man was bei und
> ist auch nicht allzu schwer...

Du tust so, als ob sich ein ATmega48 nicht unter Arduino benutzen ließe. 
An ein paar Stiftleisten, um einen "Shield" draufzustecken, sollte es 
doch wohl nicht scheitern.

von Max H. (hartl192)


Lesenswert?

MaWin schrieb:
> Denn der uC hat gar nicht genügend Anschlüsse übrig.
9 IOs sind frei, wenn er das RS232 ganz weglässt, sind es 11, und wozu 
ist JP1 eigentlich da?
Theoretisch sind 10 (mit Dezimalpunkt 11) IOs ausreichen.

von Christoph M. (Firma: Herr) (chrissim)


Lesenswert?

Oh, die beiden neuesten Beiträge hab ich noch gar nicht gesehen^^
also der Aufbau mit dem ATmega48 sollte schon gleich bleiben, da wir das 
mit unserem Lehrer schon so abgesprochen haben...

von Max H. (hartl192)


Lesenswert?

Christoph M. schrieb:
> Unser Verständnis müsste ich wohl leider bei 0 einordnen
Dann sehe ich schlechte Chancen, wenn ihr keinen findet, der euch die 
komplette Software schreibt oder noch viel Zeit zur Verfügung habt.

Wenn der aktuelle Aufbau nicht verändert werden darf/soll, würde ich an 
JP1 (falls das nicht benötigt wird) 3 Schieberegister anschließen.
Oder, eine zweite Platine mit µC bauen, die die RS232-Daten empfängt und 
mit 7-Seg ausgibt.

: Bearbeitet durch User
von m.n. (Gast)


Lesenswert?

Christoph M. schrieb:
> also der Aufbau mit dem ATmega48 sollte schon gleich bleiben,

Zu den von mir o.g. Schaltungen habe ich noch Leerplatinen für 4-stell. 
LCD (ohne ATtiny !) und 3-stell. LED-Ansteuerung mit 4094 
Schieberegistern.
Gegen Rückumschlag verschenke ich diese in (nahezu) beliebiger 
Stückzahl. Dann kann der ATmega48 so bleiben, wie er ist. Nur noch das 
Zusammenlöten und die ser. Ansteuerung müßten von Euch erledigt werden.
Überlegt es Euch.

von Gerald B. (gerald_b)


Lesenswert?

die ser. Schnittstelle kann er doch behalten. Und die 3 Leitungen vom 
Programmerinterface lassen sich doch nach dem Proggen nutzen. Macht für 
mich 12 Pins. Selbst "zu Fuß" mit muxen sind das 7 Segmente + DP plus 4 
Stellen - passt! Wenn man statt dessen eine Gatterlogik 4 aus 2 macht, 
hat man sogar immer noch 2 Pins übrig :-)

von Christoph M. (Firma: Herr) (chrissim)


Lesenswert?

Hallo vielen Dank für eure Hilfe schonmal :)
wir haben heute versucht den ATmega zu flashen mit avrdude, aber es hat 
nicht funktioniert. Es wurde nur angezeigt, dass keine Verbindung 
hergestellt werden konnte.
Der Grund dafür ist vielleicht, dass wir ein USB auf D-Sub Kabel 
verwendet haben, da wir keinen PC mit so einem Anschluss haben.
Stimmt das? Und wenn ja was müsste man denn am Aufbau ändern, damit man 
ihn mit einem USB-Kabel flashen kann?

Viele Grüße,
Christoph

von Gerald B. (gerald_b)


Lesenswert?

Ich hab' doch weiter oben schon geschrieben, das ihr den USBasp nehmen 
sollt ;-)
Selber bauen, siehe hier: http://www.fischl.de/usbasp/
Oder beim freundlichen Chinesen Ebay, Dealxtreme, Alienexpress und wie 
die üblichen Verdächtigen sonst noch alle heißen.
3€ und 3 Wochen Geduld und du bist ein Problem los und kannst dich den 
restlichen Problemen widmen.
Siehe Murphy: In jedem kleinen Problem steckt ein Großes, was gerne 
heraus will ;-)))

von Christoph M. (Firma: Herr) (chrissim)


Lesenswert?


von Ulrich (Gast)


Lesenswert?

Der Programmer von Conrad sollte auch gehen.

Der Mega48 sollte auch genug Pins haben: 7 oder 8 für Segmente und dann 
3 fürs Multiplexing. Solange man nicht in die Sonne geht, reicht normal 
auch der Strom der µC Pins aus um die Segmente zu treiben, notfalls auch 
noch für den gemeinsamen Pin der Stellen - da wären aber eher 3 
Transistoren zu empfehlen.

Die etwas einfachere Variante ist ggf. ein LCD Modul.

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.