Schlagwort-Archive: AVR

Druck von oben – ein Barometer mit AVR

Nachdem inzwischen Temperatursensoren und Feuchtigkeitsmessung an meiner „Wetterstation“ recht gut funktionieren ist es Zeit für das nächste Modul: Ein Barometer. Passend dazu konnte ich einen MPX4115A von Motorola aus einem anderen Gerät ausschlachten. Dummerweise bewegen sich die interessanten Messwerte alle in einem sehr kleinen Bereich, was den 10Bit AD-Wandler des ATMega an seine Grenzen treibt. Zwar gibts ungefäre Messwerte, aber die Schwankungen waren für meinen Geschmack zu groß. Fündig wurde ich bei tuxgraphics, welche eine eigene „Wetterstation“ im Angebot haben. Auch dort kommt ein MPX4115A zum Einsatz, der wird aber mittels eines TLC272 entsprechend verstärkt. Der TLC272 kommt zum Einsatz, da dieser nicht wie die meisten eine negative Spannung benötigt, sonder sich auch mit einer einzelnen +5V-Spannung begnügt.

Da tuxgraphics die interne 1,1V-Referenz ihres ATMega88 nutzen musste ich etwas dran drehen, denn ich habe bei meinem ATMega8 nur die Wahl zwischen 2,56V oder 5V – da letztere nach einigen Berichten stabiler wäre kommen also +5V als Referenzspannung zum Einsatz.

Wirklich verstehen tue ich die Schaltung zwar nicht, aber ich denke, dass das ganze so einigermaßen stimmt – für die letzten 18 Stunden hatte ich auf jeden Fall den selben Luftdruckverlauf wie eine angrenzende Wetterstation. Werde das Ganze noch einige Zeit weiter beobachten.

Hier der ADC-Relevante Teil meiner Schaltung:

Bild: http://adlersa.yotaweb.de/blog/wp-content/uploads/2008/07/admpx.png
OpAmp und MPX4115A an ATMega8

Die Formeln sehen momentan so aus:

$r1=100;
$r2=11;
$vcc=4.93;
$ref=3.82;
$offset=-2; //Druck Differenz zu NN und Messfehler
//$adc=Messwert

$vin=($ref+($vcc/1023*$adc/($r1/$r2+1)));
$hpa=($vin/$vcc+0.095)*1111.11+$offset;

Mehr Wetter

Ach ja… Feiertag… Endlich etwas Zeit zum Basteln. Heutiges Ziel war ein SHT11, ein Sensor, welcher mir in Zukunkt neben der bereits vorhendenen Temperatur auch die relative Luftfeuchte liefern soll. Hardwareseitig war das SMD-Gehäuse für mich als Groblöter ein Alptraum, aber mit etwas Geduld und einem guten Klecks Heißkleber sollte das ganze fürs erst halten. Softwareseitig bin ich, wie bei den meisten Problemen, bei Mikrocontroller.net schnell fündig geworden. Zwar musste der Code für meinen Mega8 noch etwas angepasst werden (dieser nutzt andere Registernamen und -größen für RS232), aber der Grundcode lief, nach ein paar Tritten gegen den MAX232, einwandfrei. Auf dem PC läuft wie immer ein PHP-Script, welches die Daten entgegen nimmt und in eine RRD verfrachtet. Das ebenfalls in PHP realisierte Frontent bedient sich zudem den Formeln von Wettermail.de und berechnet so aus Temperatur und Luftfeuchte einige Nährungswerte für Taupunkt sowie die Menge des Wassers in Gramm pro m³ Luft – und weils gerade so lustig war darf das Frontend auch noch Datum, Zeit, Sonnenaufgang, Sonnenuntergang und Sonnenhöchststand berechnen.

Jetzt muss ich nurnoch einen passenden Standort für das Gebilde finden – Werte von meinem Schreibtisch nutzen mir nicht all zu viel. Zwar habe ich bereits einen Temperatursensor außen, aber der Befindet sich auf der Südseite des Hauses, was man deutlich an den Temperatur-Peaks gegen 11-12h sehen kann. Naja, bei einer nötigen Datenrate von 8 Byte pro Sekunde sollte die Buslänge schonmal kein Problem darstellen.

90479052

Ein Plätzchen fürs Netzteil

8813

Nachdem das Innenleben meines Netzteils schon ein paar Tage steht wurde es mal Zeit für den Rest. Bisher versorgte ein alter Trafo einer Modelleisenbahn mein Bauwerk – etwas unhandlich. Passend, dass heute der Postbote was besseres brachte: Ein kleines 24V/2A Schaltnetzteil gesellt sich nun zur Platine in ein altes ATX-Netzteilgehäuse. An der Front sind die Tasten, LCD, COM-Buchse und die Anschlüsse für die Ausgangsspannung angebracht, hinten finden sich die ATX-üblichen Buchsen, Schalter und Lüfter. Innen sind LCD, Tasten und Buchsen verschraubt/geklebt, Schaltnetzteil und Platine lassen sich abstecken und austauschen.

Wir bauen ein Netzteil…

Wie schon geschrieben habe ich mir das DDC-Set von tuxgraphics schicken lassen. Inzwischen steht das ganze mehr oder weniger fertig vor mir und hat seinen ersten Test hinter sich: Mit USB-Buchse ausgestattet durfte sich die Bauteilsammlung als Handylader versuchen. Mein Akku ist voll, das Handy lebt noch und die Temperaturen der Kühlkörper waren ganz erträglich.

8452

An der verwendeten I2C-Kommunikation habe ich jedoch noch einiges auszusetzen:

  • I2C mit dem Rechner zu sprechen mag zwar den Pegelwandler einsparen, aber anscheinend funktioniert die Idee mit der I2C-Emulation auf den Statusleitungen der seriellen Schnittstelle nicht ganz so gut – sowohl USB->RS232-Adaper als auch mein Laptop konnten nicht die erforderlichen Spannungen erreichen, erst mein normaler Rechner war in der Lage mit dem Chip zu sprechen.
  • Die Kommunikationsgeschwindigkeit weit ab von brauchbar – fast eine Sekunde pro Befehl/Abfrage lassen keine richtige „Echtzeitanzeige“ zu.
  • Die eingestellten Limits lassen sich nicht über I2C abfragen -auch keine gute Basis für GUIs – das sollte sich jedoch recht einfach machen lassen.

Auch sonst habe ich noch ein paar Ideen für die Firmware:

  • Maximal/Minimalwerte aufzeichnen
  • Das LCD wird derzeit anscheinend immer vollständig aktualisiert – führt bei mir z.T. zu gehörigem flackern.Hier sollten sich inkrementelle Updates machen lassen
  • Geht man über das Limit der Eingangsspannung hinaus wird die Ausgansspannung (logischerweise) instabil. In einem solchen Fall würde ich den Ausgang eher abschalten oder auf einen „sicheren“ Wert setzen.

Ansonsten scheinen Spannungen und das Stromstärkenlimit gut zu funktionieren. Glaubt man meinen Messgeräten liegt die Schaltung bei 5V (im Leerlauf) um 0,03V daneben, stichweise Proben bei Last sahen auch brauchbar aus. Verstaut werden soll das Ganze in dem Gehäuse eines alten PC-Netzteils. Kaltgerätebuchse, Netzschalter und Lüfter können auch hier gute Dienste verrichten, an der gegenüberliegenden Seite werden einige Kühlrippen für LCD und Tasten entfernt, am Ende kommen noch Buchsen für Messschnüre und eventuell einige Schalter hin. Da mir derzeit noch ein brauchbarer Trafo zur Versorgung der Schaltung fehlt ist noch nichts fest eingebaut.

8467

Obwohl die PC-Anbindung wie oben erwähnt imo nicht so gut gelungen ist habe ich mein PHP mal wieder missbraucht und konnte immerhin den Stromverbrauch meines Handys schön anzeigen, wobei die zeitliche Zuordnung fehlt.

8582

Post aus Kanada

Billigteile aus China, Taiwan oder anderen östlichen Staaten zu organisieren ist inzwischen ja keine Seltenheit mehr. Eine kleine Premiere lag jedoch Heute auf meinem Tisch: Ein kleiner Umschlag aus Kanada. Dank Air-Mail sogar schneller als erwartet. Jetzt heißt es erst mal basteln, denn im Umschlag finden sich so einige Elektroteile, welche (laut Anleitung) ein programmierbares Netzteil ergeben sollten. Dazu ein passendes LCD (natürlich in Blau) sowie ein Universalsensor für Temperatur, Luftfeuchte und Taupunkt, welcher meine kleine „Wetterstation“ ergänzen soll, welche langsam sogar sinnvolle Werte liefert. (Merkzettel: Sensor für Luftdruck). Als kleinen Bonus lag der Sendung noch ein kleiner Bonbon bei – danke dafür.
84428447

MiniPOV3 im Kurzdurchgang

Über etwas gegoogle zum TV-B-Gone bin ich auf der Seite von Ladyada gelandet, auf der sich einiges an Spielereien finden lässt. Inzwischen liegt auch eine auf meinem Tisch: Ein Abgespecktes MiniPOV3. OK, ich habe auf den seriellen Anschluss verzichtet und einen ATMega8 als Controller genutzt, aber es funktioniert. Jetzt muss ichs nurnoch an irgendwas drehendem Festmachen, denn hin- und herwackeln geht auf die Arme…

Zwischen Heiß und Kalt – mein Tempraturmesssystem

Endlich fertig – mein letzter rumfliegender ATMega 8 hat eine sinnvolle Aufgabe gefunden. Auf Basis des Sensormodul2 von S.Huehn werden 4 Dallas 1-Wire-Busse ausgelesen und per RS232 an meinen Homeserver weitergegeben. Im Gegensatz zum Original hat meine Version allerdings mehr Alarmeingänge und zusätzlich Alarmausgänge für die Ansteuerung eines Piezo-Alarmgebers. Dafür musste das LCD dran glauben. Was noch fehlt ist die Ausgabe auf TWI, denn die RS232-Anschlüsse am Server neigen sich langsam dem Ende zu. Die Auswertung des Servers läuft über ein (na, wer erräts?) PHP-Script in Verbindung mit einer RRD. Derzeit ist alles noch im Testbetrieb, aber scheint alles stabil zu laufen.

Bild: http://adlersa.yotaweb.de/blog/wp-content/uploads/2007/09/temp_sm.thumbnail.png