Forum: Projekte & Code Windmesser Anemometer kalibrieren selber bauen ATmega8 Assembler


von Bernhard S. (bernhard)


Angehängte Dateien:

Lesenswert?

Ein kleines Beispiel eines Windmessers mit einem ATmega8.

Die Stromaufnahme beträgt bei 4V ca. 0,16mA,
geeignet für einen Batteriebetrieb ^^

Die LEDs (Bargraph) leuchten im Sekundentakt für wenige ms kurz auf und 
zeigen die momentane und die maximale Windgeschwindigkeit an.

Grüne LED=Lebenslicht, gelbe LED=Eingangsimpuls.


Prinzip:

Der Timer2 (8Bit), getaktet mit 32kHz, tastet jede Millisekunde den 
Eingangspin ab und untersucht, ab Eingangsimpulse anliegen.

Kurz vor dem sampeln, wird der Pull-Up-Widerstand des Eingangs 
aktiviert, das spart Strom, vorallem, wenn der Reedkontakt des 
Anemometers permanent geschlossen ist.

Im Sekundentakt wird das Ergebnis angezeigt.

Ein Reset des AVR setzt alles zurück.

Der ATmega arbeitet im "Power-Save-Modus", ASSR ist aktiviert, benötigt 
aber einen externen Quarz.

Ein Betrieb ohne Quarz ist auch möglich, z.B. "Idle-Modus", jedoch 
steigt dann der Strombedarf empfindlich an.

In der "wind.asm" lassen sich die Schwellerte der Windgeschwindigkeit 
des Bargraph entsprechend anpassen z.B. m/s, km/h oder bft usw.

Alle I/O Pins lassen sich nach Bedarf anpassen, bis auf PB0 und PB1 ;-)


Kalibrierung / Justierung:

Bei Flaute einfach den Windmesser aus dem geöffneten Autofenster halten,
ein Frequenzmesser verrät uns die Umdrehungen pro Sekunde,
mit GPS die Geschwindigkeit überwachen.

Ich denke, die Genauigkeit ist hinreichend genau, obwohl es keine 
laminare Strömung am Auto ist.

Meine bessere Hälfte musste sehr bei diesen Versuchen "leiden", Tempo 
100 und offenes Autofenster... ;-)



Bernhard


PS: Manfred, danke für Deine Inspiration :-)

: Verschoben durch Moderator
von Julian Baugatz (Gast)


Lesenswert?

Wozu soll das gut sein?

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Bernhard S. schrieb:
> Kurz vor dem sampeln, wird der Pull-Up-Widerstand des Eingangs
> aktiviert, das spart Strom, vorallem, wenn der Reedkontakt des
> Anemometers permanent geschlossen ist.
Ich würde da aber parallel zum namenlosen 10n Kondensator einen 1M Ohm 
Widerstand nach Masse schalten, um bei offenem Reedkontakt und 
ausgeschaltetem Pullup einen definierten Eingangspegel am Pin zu haben. 
Sonst floatet der herum und du bekommst in der Eingangsstufe einen 
Querstrom von Vcc nach GND --> erhöhte Stromaufnahme.
Oder noch besser: solange der Eingang nicht zur Messung gebraucht wird, 
den Pin als Ausgang schalten und Low ausgeben.

Julian Baugatz schrieb:
> Wozu soll das gut sein?
Wenn dein Tacho mal kaputt ist, dann kannst du mit dem Windmesser die 
aktuelle Geschwindigkeit feststellen.

Und auch sonst wird denen, die sowas suchen, sicher eine weitere 
Anwendungsmöglichkeit einfallen.

von tommy (Gast)


Lesenswert?

Julian Baugatz schrieb:
> Wozu soll das gut sein?

Wetterstation, Flugplatz, Segelboot,...
https://de.wikipedia.org/wiki/Anemometer#Einsatzbereiche

von Bernhard S. (bernhard)


Lesenswert?

Lothar M. schrieb:
> Ich würde da aber parallel zum namenlosen 10n Kondensator einen 1M Ohm
> Widerstand nach Masse schalten, um bei offenem Reedkontakt und
> ausgeschaltetem Pullup einen definierten Eingangspegel am Pin zu haben.

Da der Pull-Up alle 1ms für 1µs aktiviert wird, Ladezyklus, ist die 
Spannung am namenlosen 10nF Kondensator nahezu Vcc bei offenen 
Reedkontakt.

Ein R parallel zum C wäre kontraproduktiv, im schlimmsten Fall führt der 
C nur noch Low-Potential und müsste erst durch den aktivierten Pull-Up 
(ca. 30k) wieder aufgeladen werden, und das kann dauern und kostet 
Strom.



> Sonst floatet der herum und du bekommst in der Eingangsstufe einen
> Querstrom von Vcc nach GND --> erhöhte Stromaufnahme.

Du hast Recht! Hab's getestet, einen mit halber Betriebsspannun 
gespeister Eingangspin verursachre plötzlich 100µA mehr µC 
Stromaufnahme.

Danke für den Tipp.


> Oder noch besser: solange der Eingang nicht zur Messung gebraucht wird,
> den Pin als Ausgang schalten und Low ausgeben.

sehr gut

: Bearbeitet durch User
von Cheffe (Gast)


Lesenswert?

Bernhard S. schrieb:
> Ich denke, die Genauigkeit ist hinreichend genau, obwohl es keine
> laminare Strömung am Auto ist.

Das ist bei der Bauform auch nicht relevant, da der Kasten total das 
Windfeld stört.


Cheffe

von Bernhard S. (bernhard)


Angehängte Dateien:

Lesenswert?

Version 20-LED Bargraph

Nach Programmstart:

- LED-Test
- Bargraph-Test
- Anzeige Batteriespannung
- gelbe LED anliegende Eingangsimpulse
- grüne LED (Lebenslicht) oder
- Anzeige momentane Windgeschwindigkeit und maximale Windgeschwindigkeit
- Eingangs-Impulse des Windmessers


Beep bei:

- Progammstart
- erste Impulse des Windmessers erkannt (nur einmalig)
- Sturm (Überlauf des Bargraphes)



Stromaufnahme bei 4V ca. 160µA (batteriebetrieb tauglich)

Bernhard

: Bearbeitet durch User
von Hans (Gast)


Lesenswert?

Wie kommst du auf 160uA? Der atmega braucht doch schon mehr, geschweige 
von den leds

von Bernhard S. (bernhard)


Angehängte Dateien:

Lesenswert?

>Wie kommst du auf 160uA? Der atmega braucht doch schon mehr, geschweige
>von den leds


Der ATmega arbeitet im "Power-Save-Modus" 32kHz


Die LEDs blitzen nur für wenge ms kurz auf, s. Video


Bsp: 10mA LED bei 1s/1ms Taktung ==> 0,01mA = 10µA

: Bearbeitet durch User
von Bernhard S. (bernhard)


Lesenswert?


von Bernhard S. (bernhard)


Lesenswert?

Bernhard S. schrieb:
> Version 20-LED Bargraph

Nach einem Jahr Dauerbetrieb musste ich nun doch die Batterien 
austauschen, AVR lief noch, aber die LEDs leuchteten kaum noch.

: Bearbeitet durch User
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.