PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Anfänger: Steuerung mit AVR Controller - Automatisierung



robotfreak
22.11.2004, 16:52
Hallo !!!

Ich möchte gerne meine Wohnung ein bischen automatisieren.
Bei Dunkelheit sollen sich die Vorhänge schließen und ab einer bestimmten Innentemperatur soll sich das Fenster öffnen, um für frische Luft zu sorgen.
Ich dachte mir ich könnte das mit einem AVR Contoller (zB. AtMega8 oder so) steuern, der soll die Sensoren auswerten und über den Motortreiber L293D die Vorhänge steuern. Die Temperatur könnte man mit dem Temperatursensor D18S20 abfragen.
Wenn möglich sollte auch noch die Temperatur auf einem LCD Display angezeigt werden.
Allerdings habe ich keine Ahnung wie man die Sensoren und das Display an den Contoller anschließen soll. :-k
Ich hoffe ihr könnt mir ein paar Tipps geben.

x-ryder
22.11.2004, 18:37
hi,

der ds1820 wird an den "1-Wire"-Bus angeschlossen (beliebiger pin),
das display kann auch an einen port (4-Bit modus) angeschlossen werden.
was willst du denn nun für eine programmiersprache verwenden?

Martin

tobimc
22.11.2004, 18:50
Hi,

so ein Projekt habe ich auch schon mal in Erwägung gezogen.
Ich denke, dass würdest du mit nem MEGA16 aufwärts hinkriegen.
Der MEGA8 hat ein bisschen weinig I/Os, und so.

Ich habe dem Mega16 im Robbie, und mache fast nur gute Erfahrungen mit ihm.

Als Sprache würde ich BASCOM-BASIC empfehlen,
denn da lässt sich 1-Wire, I²C usw. einfach benutzen.
Da deine Anwendungen nicht so Zeitkritisch sind, dürfte das genau das richtige für dich sein.

BASCOM gibt's umsonst, es hat nur eine Beschränkung bis 2kB Code.
näheres unter www.mcselec.com

Viele ganz liebe Grüße,
Tobi

x-ryder
22.11.2004, 18:55
hi,

wieso kein m8?

kannst ja 74hc595 portextender dranmachen wird mit drei leitungen angesprochen ist supereinfach mit bascom und kostet fast nichts

ach ja der ist bis ins unendliche kaskadierbar

Martin

tobimc
22.11.2004, 19:04
Hi

Wär' keine schlechte Idee. :D

Ich würde hat ein bisschen mehr Speicher empfehlen, denn robotfreak
kommt sicher noch auf die eine oder andere Idee, was er noch so alles
automatisieren kann...

Den HC595 kann ich nur empfehlen, den habe ich auch in Gebrauch.

Was macht die Sprachsteuerung?

Liebe Grüße,
Tobi

Gottfreak
22.11.2004, 19:06
wieso kein m8?

Der M16 ist minimal teurer(bei den meisten Anbietern wenige Cent). Dafür kriegst du vielleicht gerade so deinen Portextender, einen cm² Platine usw.
Darüber hinaus braucht der M16 weniger Strom(für eine "Rund-um-die-Uhr-Lösung" machen 2 mA(bzw. 0,6 im Standby) ja schon ein bischen aus.).

robotfreak
22.11.2004, 19:46
3 Fragen:

Wie bau ich denn am besten die Grundschaltung für den AVR auf?
Kann ich den Temperatursensor ohne Vorschaltung an den AVR anschliessen?
Kann ich als Helligkeitssensor einen normalen Fototransistor nehmen?

Als Programmiersprache würde ich übrigens C bevorzugen.

tobimc
22.11.2004, 19:52
HI

1) Grundschaltungen findest du im Datenblatt, bzw. hier im Downloadbereich.

2) Gennerell ja, ausser du hast was ganz exotisches...

3) Ja natürlich, es täte sogar 'n oller FotoWIDERSTAND (obwohl ich das nicht unbedingt empfehle!!)

Programmiersprache ist wie jeder will, mein Vater hat mir BASCOM gekauft, jetzt muss ich auch damit arbeiten.
Ich find's eigentlich ganz nett.

Liebe Grüße,
Tobi

Gottfreak
22.11.2004, 20:05
Kann ich den Temperatursensor ohne Vorschaltung an den AVR anschliessen?

Bei normalen PTC-Widerständen brauchst du als weitere "Beschaltung" nur noch einen ganz "normalen" Widerstand, mit dem du dann einen Spannungsteiler aufbaust.

Für C gibt's den schönen Freeware-Compiler AVR-GCC(hat hier 'nen eigenes Forum). Für deine Anwendung ist eigentlich jeder in Ordnung.

Adam
22.11.2004, 21:26
Passt jetzt vieleicht nicht so ganz hier rein, aber ich frag trotzdem mal:
Verbraucht der C-Code genauso viel Platz wie ein gleichwertriger Basic Code? Oder gibt es da Unterschiede in der Größe?

MfG

22.11.2004, 21:36
Hallo

Das ist ein"Glaubenskrieg" .

Kommt immer auf den Programmierstil an. Sind beide gut zu gebrauchen und beide haben Vor und Nachteile. Probier sie beide aus und entscheide selbst.

MFG
Dieter

Adam
22.11.2004, 21:52
alles klar, danke ! :)

robotfreak
23.11.2004, 15:23
Bei normalen PTC-Widerständen brauchst du als weitere "Beschaltung" nur noch einen ganz "normalen" Widerstand, mit dem du dann einen Spannungsteiler aufbaust.

Was ist denn ein Spannungsteiler? Und wie baut man den auf? :-k

Adam
23.11.2004, 15:38
google: "spannungsteiler" ist ganz einfach ... :] oder hier in der forum suche, da gibt es einen wirklich wunderbaren treat ( ich weiß nur das im Treattitel drin steht (ausführlich gestellt) such danach mal :] )

lorcan
23.11.2004, 20:38
Ich würde das Ausgangssignal des Spannungsteilers aber noch verstärken, sonst wird es schwer kleine Temperaturunterschiede zu erfassen, da die Temperaturabhängige Widerstansänderung von PTCs doch recht klein ist , man könnte natürlich auch einen zweiten Spannungsteiler aufbauen und mit dem Analogwertcomperator vergleichen. In der CT war letztens ein Interessanter Artikel darüber(Ausgabe22, ab Seite236)

partyboarder
26.11.2004, 20:53
moinstens

ich weiß ja nicht wie kompliziert das ist. aber ich würde wenn ich ne temperatu messen möchte einen lm75 nehmen. ist ein i2c bus temp sensor den man ganz leicht über i2c bus abfragen kann .. (atmega16 kann das )
und dann muss man nix mehr rumrechnen mit referenz temperatur usw. kann man einfach digital auslesen ...

gruß
partyboarder

27.11.2004, 08:32
+/- 2°C Toleranz, dann kannst die Temperatur auch schätzen. Dann doch lieber einen Sensor von Dallas.

Gottfreak
29.11.2004, 09:26
+/- 2°C Toleranz, dann kannst die Temperatur auch schätzen. Dann doch lieber einen Sensor von Dallas.

eine Steuerung der Raum-Temperatur kann ja ruhig eine Toleranz haben, die so groß ist wie das menschliche Temperatur-Empfinden. Der Sinn war, wenn ich das am Anfang recht verstanden habe, ja gerade, nicht von Hand auf die Temperatur achten zu müssen.

robotfreak
01.01.2005, 18:33
Bei normalen PTC-Widerständen brauchst du als weitere "Beschaltung" nur noch einen ganz "normalen" Widerstand, mit dem du dann einen Spannungsteiler aufbaust.


Wie soll ich denn den Widerstand daran anschließen und wie groß muss dieser sein?

Den Widerstand und den DS1820 in Reihe schalten und dazwischen einen Analogport vom AVR anschließen? :-k

lorcan
01.01.2005, 22:24
Nein. Hast Du Dir mal das Datenblatt vom DS1820 angesehen?
Das IC besitzt einen internen ADC und gibt den Temperaturwert über einen 1-Wire-Bus aus.
Den Spannungsteiler brauchst Du für PTC's, das sind temperaturabhängige Widerstände. Für den DS1820 brauchst Du den Widerstand nicht.
Das Datenblatt findest Du hier:
http://pdfserv.maxim-ic.com/en/ds/DS1820-DS1820S.pdf
Das solltest Du Dir runterladen, da steht eigentich alles drin, was Du wissen musst.
Auf Seite 8 ist ein Anschlussschema abgebildet.

02.01.2005, 15:48
Also wäre es auch möglich einen günstigeren PTC Sensor, wie den KTY 81-110 von Reichelt zu verwenden, oder?

Oder hat der DS1820 einen Vorteil, außer dem internen ADC?

Und was bedeuten die beiden Schaltzeichen im Datenblatt?

lorcan
02.01.2005, 22:50
Ja, natürlich kann man einen solchen PTC-Sensor verwenden, aber der Schaltungsaufwand ist wesentlich höher, die Auswertung der Messung ist komplizierter und die Messung ist ungenauer, da die KTY 81-110 einen Ungeauigkeit von min. +-1.27 Kelvin bei 25°C haben(im restlichen Temperaturbereich mehr!!!), der DS1820 +-0,5Kelvin! Zu der KTY-Ungenauigkeit kommt noch die Ungenauigkeit der notwendigen Verstärkerschaltung und des ADC des Mikrocontrollers.
Der DS1820 ist also die einfacherer Lösung, technisch interessanter ist aber natürlich die Schaltung mit dem PTC-Sensor.

Welche Schaltzeichen meinst Du?
In der Schaltung auf Seite 8 ist links die Serielle-Schnittstelle des Mikrocontrollers, deren Rx- und Tx-Leitung auf den Bus gelegt werden, dann kommt ein 4k7Ohm PullUp-Widerstand gegen 5V und dann der DS1820, das ist alles!

robotfreak
03.01.2005, 13:33
Ich meinte eigentlich das Schaltzeichen auf Seite 5, Bild 1, an das die obere Leitung vom MC angeschlossen ist.

Warum ist denn der Schaltungsaufwand höher? Man braucht doch nur einen Widerstand, oder nicht?

Was ist eigentlich mit dem Temperatursensor LM335 TO92 ?

lorcan
03.01.2005, 21:19
Sieht interessant aus, da brauchst Du auch nicht unbedingt 'nen Verstärker, aber 10mV/K ist letztendlich nicht viel! Bei einem 10-Bit-ADC(wie sie die Atmel-Controller besitzen) hast Du dann eine Auflösung von 0,5K, mit einer Verstärkerschaltung natürlich entsprechend mehr. Der DS1820 hat die gleiche Auflösung.
Der LM335 ist ja auch leicht anzuschliessen, dann musst Du nur noch den Controller den Spannungswert vom ADC umrechnen lassen.