ich möchte für mein Windrad einen dezentralen Windrichtungsmesser bauen.
Dieser soll schnell schwankende Richtungsänderungen per Software ausmitteln damit sich das Windrad nicht wie bei klassischer Fahne zur Drehung ständig hin und her bewegt. Dazu würde ich einen Zahnkranz und einen Getriebemotor an dieses anbringen.
Der Windrichtungs-Sensor soll 36 Hall-Sensoren und eine drehbare Scheibe mit einem Magneten bekommen um die 'Richtung zu erkennen.
Nun meine Frage: können Hall-Sensoren auch einen "stehenden" Magneten erkennen oder nur bewgte Magneten?
Wenn so ein Hall Sensor (z.B. SI7211-B-00-IVR) ein stehendes Magnetfeld erkennt, würde ich eine PCB mit 36 Sensoren erstellen die mittels analog-Multiplexern dann von einem Controller ausgelesen werden und somit die grobe Windrichtung liefern.
An optische erkennung mittel reflex-Lichtschranken habe ich auch schon gedacht, jedoch gefällt mir es nicht, wenn sich Insekten oder Spinnen da breit machen würden...
Oder hat jemand noch eine bessere Idee?
oder kann der sogar den Erd-Magnetismus messen?
Ich habe einige ADXL203 noch rumliegen, das sind eigentlich ja Beschleunigungsmesser, ob die sich evt. auch dafür eignen würden?
Ich habe einige ADXL203 noch rumliegen, das sind eigentlich ja
Beschleunigungsmesser, ob die sich evt. auch dafür eignen würden?
Nicht nur eigentlich - das SIND 2-Achsen Beschleunigungssensoren.
Die Achse bei einer Windfahne steht allerdings eher lotrecht und mit der Windrichtung ändert sich dann an der Richtung des Schwerefeldes nichts - das steht immer parallel zu der Achse der Windfahne.
...schnell schwankende Richtungsänderungen per Software
ausmitteln damit sich das Windrad nicht wie bei klassischer Fahne zur
Drehung ständig hin und her bewegt. Dazu würde ich einen Zahnkranz und
einen Getriebemotor an dieses anbringen.
Die Sollbruchstelle nicht vergessen, z.B. mit einem Zahnkranz aus dem 3D-Drucker oder so. Das könnte eine größere Reparatur sparen, wenn der Rechner beim nächsten Gewitter abstürzt.
Plattenspieler hatten am Plattenteller eine Wanne mit Silikonöl in die ein fest stehendes Paddel eintaucht. Die haben damit die Drehzahl-Feineinstellung gemacht. Hier könnte man etwas ähnliches zwecks Dämpfung verwenden.
Plattenspieler hatten am Plattenteller eine Wanne mit Silikonöl in die
ein fest stehendes Paddel eintaucht. Die haben damit die
Drehzahl-Feineinstellung gemacht. Hier könnte man etwas ähnliches zwecks
Dämpfung verwenden.
Das hab ich schon einmal gebastelt. Für meine Zwecke reichte eine Auflösung für 12 Richtungen (30°; durch Mittelwertbildung entsprechend genauer)
Grundprinzip: Je ein Sensor für die "N-S"- und für die "O-W"-Komponente des Magnetfeldes. -Auswertung durch Tabelle oder Winkelfunktionen.
Für Auflösungen/Genauigkeiten im Bereich von wenigen Winkelgraden ist es viel einfacher einen fertigen Sensorchip anzuwenden.
ich möchte für mein Windrad einen dezentralen Windrichtungsmesser bauen.
Dieser soll schnell schwankende Richtungsänderungen per Software
ausmitteln damit sich das Windrad nicht wie bei klassischer Fahne zur
Drehung ständig hin und her bewegt. Dazu würde ich einen Zahnkranz und
einen Getriebemotor an dieses anbringen.
Der Windrichtungs-Sensor soll 36 Hall-Sensoren und eine drehbare Scheibe
mit einem Magneten bekommen um die 'Richtung zu erkennen.
Nun meine Frage: können Hall-Sensoren auch einen "stehenden" Magneten
erkennen oder nur bewgte Magneten?
Warum nimmst Du keinen Kompasssensor wie z.B. GY-271 (Kompassmodul)? Spart den ganzen mechanischen Aufwand mit Magneten etc.
Kann man prima mit ESP, Arduino oder Raspi verwenden.
Grundprinzip: Je ein Sensor für die "N-S"- und für die "O-W"-Komponente
des Magnetfeldes. -Auswertung durch Tabelle oder Winkelfunktionen.
Wenn man einen der von Wolfgang genannten verwendet, braucht man nur ein IC.
Solange die absolute Ausrichtung nicht interessiert (absolte Windrichtung wird nicht ausgewertet), braucht man auch keine Nord-Süd-Ausrichtung bestimmen.
Das hab ich schon einmal gebastelt. Für meine Zwecke reichte eine
Auflösung für 12 Richtungen (30°; durch Mittelwertbildung entsprechend
genauer)
Grundprinzip: Je ein Sensor für die "N-S"- und für die "O-W"-Komponente
des Magnetfeldes. -Auswertung durch Tabelle oder Winkelfunktionen.
Für Auflösungen/Genauigkeiten im Bereich von wenigen Winkelgraden ist es
viel einfacher einen fertigen Sensorchip anzuwenden.
Hast Du noch ein Photo vom Aufbau? Dann bitte posten.
Warum nimmst Du keinen Kompasssensor wie z.B. GY-271 (Kompassmodul)?
Spart den ganzen mechanischen Aufwand mit Magneten etc.
Kann man prima mit ESP, Arduino oder Raspi verwenden.
Steve
Das ist wohl die beste Lösung!
Den werd ich mir mal bestellen!
Danke für die Info!!
Wenn du es mit den Gyro-, Kompass- oder Hallsensoren aufgebaut hast, wirst du merken, dass das nicht die beste Idee war. Für mich verwende ich beim Windmesser immer noch ein simples Leitplastik-360°-Potenziometer. Gibt's z.B. von Bourns und anderen Herstellern.
Warum nimmst Du keinen Kompasssensor wie z.B. GY-271 (Kompassmodul)?
Spart den ganzen mechanischen Aufwand mit Magneten etc.
Kann man prima mit ESP, Arduino oder Raspi verwenden.
Steve
Das ist wohl die beste Lösung!
Den werd ich mir mal bestellen!
Danke für die Info!!
Genau - die mechanische Konstroktion wird damit maximal "einfach": Den Kompasssensor packst Du direkt auf die Windfahne. Dann brauchst du nur noch einen leichtgängigen Schleifring, um Betriebsspannung und Ausgangssignal(e) vom/zum Montagemast zu übertragen.
Dann brauchst du nur
noch einen leichtgängigen Schleifring, um Betriebsspannung und
Ausgangssignal(e) vom/zum Montagemast zu übertragen.
ich würde eher eine Solarzelle montieren und 1-2 18650 Lipos mit draufsetzen, Datenübertragung dann per LoRa.
Zusätzlich noch ein Mini Rotor an einem Festplattenmotor als Generator,
wäre ja passend!
Wenn eine dauerhafte Auswertung sichergestellt werden kann, tun es 2 Hallsensoren und ein Zahnkranz, wenn man analog kann reicht Sinus/Cosinusencoder, oder eben die speziellen Drehsensoren wie AS5132.
Plattenspieler hatten am Plattenteller eine Wanne mit Silikonöl in die
ein fest stehendes Paddel eintaucht. Die haben damit die
Drehzahl-Feineinstellung gemacht
Dieser soll schnell schwankende Richtungsänderungen [...]
damit sich das Windrad nicht wie bei klassischer Fahne
zur Drehung ständig hin und her bewegt.
Das geht ohne Probleme rein mechanisch.
1.) Das Windrad drehbar lagern
2.) Eine Fahne an einem ausreichend langen Arm zur Ausrichtung gegen den Wind
3.) Ein Rotationsdämpfer mit der Drehachse koppeln damit es nicht so herumzappelt.
So etwas gibt es in den verschiedensten Ausführungen für überschaubares Geld zu kaufen, z.B.
1.) Das Windrad drehbar lagern
ist es sowieso
2.) Eine Fahne an einem ausreichend langen Arm zur Ausrichtung gegen den
Wind
was wäre ausreichend?
3.) Ein Rotationsdämpfer mit der Drehachse koppeln damit es nicht so
herumzappelt.
Und warum wird sowas bei den großen Windrädern nicht gemacht?
Meins hat einen Flügeldurchmesser von 3.60m und wird in 15m Höhe stehen,
da möchte ich nicht das es ständig bei jeder Böhe hin und her wandert.
Dann brauchst du nur
noch einen leichtgängigen Schleifring, um Betriebsspannung und
Ausgangssignal(e) vom/zum Montagemast zu übertragen.
ich würde eher eine Solarzelle montieren und 1-2 18650 Lipos mit
draufsetzen, Datenübertragung dann per LoRa.
Zusätzlich noch ein Mini Rotor an einem Festplattenmotor als Generator,
wäre ja passend!
Genau - das macht die Konstruktion noch "vieeeeeeel einfacher"...
Na ja, in der Nähe von Metallmasten hat man schon mal 30 Grad
Fehlweisung.
wird auf Holz montiert, ca. 10m vom eigentlichen Mast entfernt
So ein Mickymaus-Ausleger mit gerade mal 10m - natürlich auch aus Holz - ist ja wirklich ein Klacks. 2-3 amtliche Spax-Schrauben, das hält dann schon. Ich hatte das ja immer schon gesagt: Baustatik wird total überbewertet!
Na ja, in der Nähe von Metallmasten hat man schon mal 30 Grad
Fehlweisung.
wird auf Holz montiert, ca. 10m vom eigentlichen Mast entfernt
So ein Mickymaus-Ausleger mit gerade mal 10m - natürlich auch aus Holz -
ist ja wirklich ein Klacks. 2-3 amtliche Spax-Schrauben, das hält dann
schon. Ich hatte das ja immer schon gesagt: Baustatik wird total
überbewertet!
Quatsch, da hast du wohl sehr viel falsch verstanden!
Der Windrichtungsmesser wird in ca. 10m Entfernung vom eigentlichen Windrad-Mast auf einem Holzschuppen montiert, also keine metallischen Gegenstände in der Nähe die den Kompass-Sensor beeinflussen würden.
Ok - bei der Größe ist eine frei (wenn auch gedämpft) drehende Variante wahrscheinlich nicht so gut. Muss es denn sein dass du den Windrichtungssensor selber bauen willst? Die gibt es mit einem Analogausgang 0-10V bzw. 4-20mA fertig zu kaufen. Das Signal dann mit einem kleinen Controller erfassen / mitteln und damit den Rotor passend drehen.
Und für die Erfassung der Rotorposition würde ich eine Reflexlichtschranken und eine passende Scheibe mit Gray-Codierung wählen, dann sind auch die Übergänge kein großes Problem mehr.
Zu meiner Jugend gab es mal eine Wetterstation in der ELO - die hatte die Windrichtung mit einer solchen Scheibe erfasst (und mit LED dargestellt). Leider habe ich keine Ahnung aus welchem Heft die war...
Quatsch, da hast du wohl sehr viel falsch verstanden!
Der Windrichtungsmesser wird in ca. 10m Entfernung vom eigentlichen
Windrad-Mast auf einem Holzschuppen montiert, also keine metallischen
Gegenstände in der Nähe die den Kompass-Sensor beeinflussen würden.
Dann kann man die Dämpfung auch per Software erledigen.
Das hätte den Vorteil, dann bei die schwachem Wind das Windrad schneller in den Wind dedreht werden kann.
Und für die Erfassung der Rotorposition würde ich eine
Reflexlichtschranken und eine passende Scheibe mit Gray-Codierung
wählen, dann sind auch die Übergänge kein großes Problem mehr.
oder per Magnetfeldsensor (weniger Schmutzprobleme).
Hast Du noch ein Photo vom Aufbau? Dann bitte posten.
Kein Foto gefunden aber s. Beilage.
Zwei der Hallsensoren sind senkrecht stehend positioniert.
(bei 12 Uhr und bei 3 Uhr)
An der Achse der Windfahne ein kleiner Stabmagagnet.
Auswertung durch 2 x ADC im PIC
Es wurden nur 12 Richtungen ausgewertet und per rs232 (aber 0V / 3V) ausgegeben.
Quatsch, da hast du wohl sehr viel falsch verstanden!
Der Windrichtungsmesser wird in ca. 10m Entfernung vom eigentlichen
Windrad-Mast auf einem Holzschuppen montiert, also keine metallischen
Gegenstände in der Nähe die den Kompass-Sensor beeinflussen würden.
Ich „wollte“ dich falsch verstehen - um drauf aufmerksam zu machen, in welch übertrieben aufwendige Richtung du steuerst. Ganz entgegen dem Credo KISS.
Die Windrichtung misst man vorteilhafterweise auf und relativ zur „Generatorgondel“ und führt die Gondel so nach, dass der Wind immer von vorne kommt.
Dazu eignet sich ein z.B. kleines Hilfs-Windrad, entweder quer zur Windrichtung und anströmbar von beiden Seiten oder ein Rad vom Typ „Drehkreuz“ mit Teilabdeckung von vorne. Bei Beiden wertet man (vorrangig) die Laufrichtung aus. Das geht im Prinzip mit 2 Reedkontakten, oder auch optisch, oder oder oder...
Oder man vermeidet die Mechanik und denkt sich was aus mit 2 (selbst)-beheizten Temperatursensoren, links und rechts einer in Windrichtung stehender Trennwand.
Aber meine Vorredner haben ja auch Vorschläge gemacht. Verwende die Dinger schon seit 20 Jahren in meiner Wetterstation.
Die Lücke hat auch den Vorteil, dass deine Steuerung nicht immer hin- und zurück fährt, wenn der Wind genau aus der Richtung kommt, wo der Endanschlag des Motors ist.
für die Wetterstationen von La Crosse gibt es die Windmesser TX20 mit Windfahne. Die Stellung der Windfahne wird über 4 LEDs und eine spezielle Lochscheibe ermittelt. Das Prinzip kann man hier erkennen:
https://www.john.geek.nz/2011/07/disassembling-a-la-crosse-tx20-wind-anemometer/
Die Winkelauflösung beträgt 22,5 Grad (360/16). Ist nicht direkt eine Profilösung funktioniert aber, da bis auf die Lagerung verschleißfrei, bei mir seit vielen Jahren.
Den Windmesser TX20 kann man evtl. als Ersatzteil noch irgendwo kaufen.
Die Stellung der Windfahne wird über 4 LEDs und eine
spezielle Lochscheibe ermittelt.
Der Code, der mit der Lochscheibe erzeugt wird, ist ein ganz gewöhnlicher 4-Bit Gray-Code. Dies ergibt die schon genannte Auflösung von 1/16 Vollkreis oder eben die 22.5° (2 naut. Strich).
Wenn man diese Werte bei ausreichenden Fluktuationen der Windrichtung zeitlich mittelt, bekommt man damit auch auf eine deutlich höhere Auflösung (Erhöhung der Auflösung durch Überabtastung), was für das Windrad erstrebenswert ist.
Bei schwachem Wind liefert das sowieso keine rechte Leistung - bringt
also nicht viel.
Würde den Wirkungsgrad erhöhen.
Ist aber auch nur eine theoretischer Vorschlag.
Es ging mir und die Dämpfung, da die Ausrichtung des Windrads ja elektrisch erfolgen soll.
... wohl eher verringern, wenn man den Aufwand für die aktive
Ausrichtung in der Rechnung berücksichtigt ;-)
Um die Ausrichtung geht es hier doch ("Kundenanforderung").
Der beste Wirkungsgrad wäre eh, wenn das Ding passiv in den Wind gedreht wird.
Dann wäre eine mechanische Dämpfung aber auch ratsam.
habe inzwischen das Mini-Windrad zum messen der Windrichtung und der Windgeschwindigkeit sogut wie fertig. Zur Verwendung sind ein Festplattenmotor zum messen der Geschwindigkeit (noch nicht im Code drin) und zum zusätzlichen laden der LiPo Zelle zum Einsatz gekommen. An diesem Festplattenmotor ist auch der mit 48cm Durchmesser kleine Rotor aus 50er Kanalrohren montiert. Die Berechnung der Flügel erfolgte mittels dem RoWi-Tool, (siehe https://www.kleinwindanlagen.de/Forum/cf3/topic.php?t=3502 ) sehr zu empfehlen um Flügel aus Kanalrohren herzustellen!
Das Ganze ist auf einer CNC-gefrästen 6mm Aluplatte montiert welche wiederum auf einem Festplattenmotor drehbar montiert ist. Dieser dient aber nur als mechanische Lagerung. (Ja, habe kürzlich etliche alte Festplatten geschlachtet :-) )
Die Flügel sind auch bereits feingewuchtet. Halten bis zu 3000U/min problem- und vibrationslos aus. Getestet mit einem 3Phasen Generator auf 12V direkt auf den Festplattenmotor. Macht ganz schön Wind in der Werkstatt! endlich mal alles wieder Staubfrei ;-)
Die PCB ist ein altes Vero-Board, ideal für sowas.
Drauf ist eine 18650 Samsung LiPo Zelle (mit der die Elektronik bereits ca. 5-6Tage ohne laden läuft!) , ein Arduino Nano, 2 StepDownwandler (1Mhz) für Solarzelle und Wind sowie der GY-271.
Es fehlen noch das 433Mhz LoRa Funkmodul, ein INA3221 Modul zum messen der Solarzelle und des Windrad-Generator sowie die "Fahne" am Windrad..
Ich habe auch schon eine kleines Programm zum "mitteln" der Richtung
im Arduino drin, es liefert ca. alle 30Sekunden einen Wert der Richtung.
Das funktioniert schonmal super, Probleme wird es wohl geben, wenn der Wind von Norden kommt (=0Grad) und die Richtung sich etwas gegen den Uhrzeigersinn
sich dreht, dann wären die gemittelten Werte ja zwischen 0 und 360 Grad, oder sehe ich das falsch?
Hier mal der Code:
1
// Windrichtungs Messmodul
2
// 22.01.2023 W.Fischer
3
//
4
// liefert den Azimut in Grad
5
// 0 Grad = Norden
6
// 90 Grad = Osten
7
// 180 Grad = Süden
8
// 270 Grad = Westen
9
// https://de.wikipedia.org/wiki/Azimut
10
// es werden x mal die Richtung gemessen, addiert und
11
// danach durch x wieder geteilt um den Mittelwert zu erhalten.
################################
Wie würdet Ihr das "mitteln" ?
################################
PS: auch wenn manche meinen dies wäre alles viel zu aufwändig, bis jetzt hat es viel Spass gemacht und hat ja auch fast nix gekostet!
Schöner wäre natürlich, wenn man das Signal was die großen Windräder als Richtung bekommen, "anzapfen" könnte...
Das Problem des Sprunges bei schwankenden N-Richtungen löst sich,
wenn man die einzelnen Messungen als Vektoren addiert und erst die Resultierende durch die Anzahl der Messungen dividiert.
....kann deinen code nicht sicher analysieren weil ich nur in assembler programmiere - aber angenommen es gibt 3 Richtungsmessungen:
0°
0°
350°
Summe = 350 Durchschnitt (:3) ist dann 116,6° und falsch.
Liefert dein Code in so einem Fall ein korrektes Ergebnis?
Ja? -dann ist es OK.
Ich hätte so gerne die 36 hall sensoren gesehen.
Aber nein, er baut einen popel-kompass ein.
Gleich über dem permanenterregten generator nehm ich an.
Zeig bitte wie das läuft !
ist noch nicht montiert, aber in der nähe von dem festplattenmotor ändert sich so gut wie nix am kompass signal>! Scheint gut magnetisch abgeschirmt zu sein.
Ich hätte so gerne die 36 hall sensoren gesehen.
Aber nein, er baut einen popel-kompass ein.
Gleich über dem permanenterregten generator nehm ich an.
Zeig bitte wie das läuft !
ist noch nicht montiert, aber in der nähe von dem festplattenmotor
ändert sich so gut wie nix am kompass signal>! Scheint gut magnetisch
abgeschirmt zu sein.
Getestet mit ner Kompass-App auf dem Handy direkt hinter dem Festplattenmotor.
Umrechnungskonstante π
cos() bzw. sin() erwarten den Winkel im Bogenmaß
puhh, ich glaube da habe ich in Mathe gefehlt,
da brauche ich noch Hilfe oder muss mich schlau lesen. Sorry
Was genau macht der Code denn, um Unterschiede zwischen 0 und 360 Grad zu differenzieren?
0°
0°
350°
Summe = 350 Durchschnitt (:3) ist dann 116,6° und falsch.
Wie würdest du das lösen?
Ich würde jede Einzelmessung in einen Vektor umrechnen. -in der Ausgabeform delta x und delta y. (x und y mit Vorzeichen f. nach li./re bzw. nach oben/unten; -normales Koordinatensystem)
Dann sämtliche x werte addieren und sämtliche y werte addieren.
Das gibt den Summenvektor. Dividiert man den durch die Anzahl der Messungen (x dividieren; y dividieren) erhält man den durchschnittlichen vektor der die Richtung und Windstärke darstellt.
Mit Phytagoras und Winkelfunktion erhält man dann die gewünschte Durchschnittsgeschwindigkeit und die Durchschnittsrichtung.
Skizze zeichnen sollte das grundprinzip klarmachen.
Hans schrieb im Beitrag #7325096:
Das ist das gleiche wie der Helmut vorgeschlagen hat.
Dazu braucht es pro messung ein sin() und ein cos().
Ja, ist mir klar - hab versucht das Grundprinzip darzustellen (das man sich als graphische Lösung gut vorstellen kann) ohne vielleicht "mit Formeln und unbekannten Symbolen" zu verwirren.
(Wenn das mathematische Prinzip verstanden ist, muss man ja nur mehr rechnen....)
Ahh, ok, sieht schon besser aus, aber es wird nicht genug "geglättet"
Das ganze muss dann wohl nochmals in eine for-schleife um den Mittelwert der Richtung zu bekommen. Wenn ich den Sensor drehe sind die Werte sofort da.
Helmut, dein ansatz ist krass kompliziert.
Aber plausibel.
Das ist nicht krass kompliziert, sondern normale Vektorrechnung. Sin und Cos machen Imaginär- und Realteil, welche dann getrennt voneinander aufsummiert werden. Dadurch entsteht die Glättung. Das Dividieren durch die Anzahl kannst du dir schenken, denn Re und Im sind ja skaliert. Und der ATAN2 macht dann die Umwandlung in eine Richtung. Schau dir mal die Math.h in C an. Dort ist auch die Konstante Pi definiert, da die Funktionen Bogenmaß wollen, ich aber Ein- und Ausgabe in Grad habe. Alles keine Hexerei, nur Oberstufenmathematik.
Ok, einigen wir uns auf krass aufwendig.
2 trigo funktionen per sample.
Zuerst wandelt der sensor seine kartesischen werte mit atan in winkel um, und dann wandelst du winkel wieder in kartesische zurück, filterst, dann nochmal atan. Geil.
Habe das Programm nun zufriedenstellend am Laufen,
es wird nun nur alle 5Sek. aufgerufen , die Werte sind schön gerundet,
getestet mit regelmäßigen hin und her Bewegungen der ganzen Platine.
bleibt noch zu wissen/schätzen, wie oft das eigentliche große Windrad nun den Daten folgen soll, was macht Sinn?
Zu schnell wie jetzt (alle 5Sek) macht wohl kaum Sinn, vielleicht minütlich?
Alle 10min? Die Hauptwindrichtung ändert sich ja auch nur bei Tornados sehr schnell
Moin moin,
ich bin ein großes Stück weiter und kurz davor, das Mini Windrad mit der Elektronik zu montieren!
Heute habe ich das LoRa RA-01 Modul eingebaut und angeschlossen.
Das Programm funktioniert prima und der Akku ist ohne nachladen noch immer bei 3.85V ! Dank Sleep-Modus verbraucht die Elektronik ganz wenig.
Tests mit der Reichweite des LoRa Moduls haben nur positives ergeben (wie ich aber schon früher festgestellt habe) Selbst wenn die Windrad-Elektronik sich beim Nachbarn befindet mit 8 Wänden und 2 Garagentore in Sichtweite gibt es null fehlerhafte Übertragungen! Ich muss dazu sagen, es ist auf jeden Fall empfehlenswert die 433Mhz Variante anstatt die 868Mhz zu verwenden! Die 868Mhz Variante ist viel mehr anfällig gegen Wände oder sonstige Hindernisse! Je höher die Frequenz desto höher die Fehler.
Da wir eine Senioren-WG betreiben, habe ich bereits vor ca. 4Jahren 10 Handsender und eine Station basierend auf dem 433Mhz LoRa Modul gebaut und diese funktionieren im Vergleich zu "kaufbaren" Lösungen fast egal, wo sie sich befinden. (innerhalb des Hauses überall, draussen noch in etwa 80m)
Die Station empfängt "nebenbei" auch noch die NTP Uhrzeit und zeigt diese auf einem TFT Display an. Da ich noch eine Prototyp Variante der Station hier in der Werkstatt am laufen habe, habe ich zum testen einfach die Uhrzeitdaten mit denen des Windrades getauscht. So sehe ich nun auf dem Display die gemittelte Grad Zahl, die Akku Spannung und die PV und Windrad Spannung. Daher im Listing auch ein paar Daten die später anders aussehen werden. Geplant ist noch ein LoRa-2-Wifi-2-MQTT Wandler, so daß ich die Daten auch in HomeAssistant weiterverwenden oder kontrollieren kann.
Und nun das aufgeräumte Listing...
(es wurden alle serielle Ausgaben entfernt, die braucht man ja nur zum debuggen sowie einige Kommentare auf Deutsch hinzugefügt.)
Vielleicht gibt es ja für den ein oder anderen Anregungen oder Lösungen...
1
// Windrichtungs Messmodul
2
// 29.01.2023 W.Fischer
3
//
4
// liefert die Windrichtung in Grad
5
// 0 Grad = Norden
6
// 90 Grad = Osten
7
// 180 Grad = Süden
8
// 270 Grad = Westen
9
// https://de.wikipedia.org/wiki/Azimut
10
// es werden x mal die Richtung gemessen, addiert und
11
// danach durch x wieder geteilt um den Mittelwert zu erhalten.
12
// an IO2 ist ein 47µF Elko mit 10MOhm Entladewiderstand als Timer für den IRQ verbunden
13
14
#include<SPI.h>
15
#include<LoRa.h>
16
#include<Wire.h>
17
#include<avr/sleep.h>
18
#include<QMC5883LCompass.h>
19
QMC5883LCompasscompass;
20
intkeep_ADCSRA;// ADC Settings sichern
21
unsignedinti;
22
unsignedintii;
23
intdsum;
24
unsignedintloop_counter;
25
intres;
26
intmiddle_res;
27
intmaxmeas=50;// Anzahl der Messungen / Oversampling
28
intmeas[50];
29
unsignedlongpreviousMillis=0;
30
floatpv=0.0;
31
floatwind=0.0;
32
floatbat=0.0;
33
bytelocalAddress=199;// address of this device
34
bytedestination=100;// destination to send to
35
Stringoutgoing;// outgoing message
36
Stringlorasendstring="*20:00 29.01.2023*";
37
#define LED 4 // Sende-LED, leuchtet in eine Kuppel auf dem Windrad zur optischen Kontrolle
LoRa.write(outgoing.length());// Länge von "outgoing" senden
138
LoRa.print(outgoing);// Kennwort zur Station senden
139
LoRa.print(lorasendstring);// String mit Grad, Bat/PV/Wind Volt senden
140
LoRa.endPacket();// Paket beenden und senden
141
LoRa.end();// LoRa beenden um Strom zu sparen
142
SPI.end();// SPI beenden um Strom zu sparen
143
digitalWrite(LED,LOW);// Sende-LED ausschalten
144
}
145
}
146
147
voidread_voltages()
148
{
149
bat=0.0;
150
pv=0.0;
151
wind=0.0;
152
153
for(ii=0;ii<10;ii++)
154
{
155
bat+=analogRead(A0);
156
delay(50);
157
pv+=analogRead(A1);
158
delay(50);
159
wind+=analogRead(A2);
160
delay(50);
161
}
162
ii=bat/10;
163
bat=map(ii,0,1023,0,1694)/100.00;
164
ii=pv/10;
165
pv=map(ii,0,1023,0,1694)/100.00;
166
ii=wind/10;
167
wind=map(ii,0,1023,0,1694)/100.00;
168
}
Was ich noch suche:
Gibt es irgendwas was man gut als Drehantrieb für das große Windrad nehmen könnte? Ein Getriebemotor mit Schneckenantrieb habe ich bereits, aber wo bekommt man ein großes ca. 250mm dm Zahnrad oder Zahnriemenrad her?
Wenn es sowas nicht gibt, muss ich es wohl selber fräsen.
Moin moin,
ich bin ein großes Stück weiter und kurz davor, das Mini Windrad mit der
Elektronik zu montieren!
Ja - so kann man das auch machen...
[viel mehr oder weniger unnützen Programmcode gelöscht ...]
Eigentlich setzt man eine Windfahne AUF die Generatorgondel. Also auf das Teil, das man eigentlich in Windrichtung ausrichten will.
Die Windfahne muss dann nur noch entscheiden, ob sie von rechts oder links angeströmt wird. Entsprechend dreht man die Gondel in die richtige Richtung: Bei Meldung "Wind von rechts" dreht man nach rechts, und vice versa.
Und voilà, das Windrad dreht in den Wind, ganz egal wo dieser im Moment her kommt. Und das Ganze ohne SINUS, COSINUS, ATAN2 und so'n Quatsch.
wie schon im Thread Beitrag "Langzeittimer per RC-Glied?" beschrieben, habe ich auch hier bei der Windrichtungsmessung die Lösung des Sleep-Modus mit externen IRQ per RC-Glied verworfen und es nur per Software gelöst, da der µC so wenig Strom im Sleep-Modus verbraucht hätte ich nicht erwartet. Natürlich ist das Laden des Elkos auch eine erhebliche Stromverschwendung, soviel habe ich schon feststellen können.
Das Mess-Windrad ist nun am richtigen Platz montiert und sendet fleissig alle 48Sek. seine gemittelten Windrichtungsdaten in Grad.
Problem ist nur, trotz mittelung sind die Werte doch noch sehr stark abweichend, Beispiel: eigentlich gleiche Windrichtung, aber durch Leichtgängikeit des Mess-Windrades bekomme ich derzeit Werte zwischen 25 und 47 Grad. Wäre Blödsinn später das große Windrad diesen Werten nachzuführen.
Daher habe ich eine weitere Filterroutine eingebaut (Siehe auch https://forum.arduino.cc/t/mittelwert-von-meinen-sensorwerten/419980/32, Filterroutine von GuntherB) .
Getestet erstmal mit Random-Werten zwischen 0 und 360, Ergebnis nach 5min ungefähr 180! Sieht sehr gut aus wie gemacht dafür!
Werde morgen das Mess-Windrad nochmal demontieren und den Controller mit den Änderungen programmieren.
Hier das komplette Listing:
1
// Windrichtungs Messmodul
2
// 08.02.2023 W.Fischer
3
//
4
// liefert die Windrichtung in Grad
5
// 0 Grad = Norden
6
// 90 Grad = Osten
7
// 180 Grad = Süden
8
// 270 Grad = Westen
9
// https://de.wikipedia.org/wiki/Azimut
10
// #######!!! als Board MiniCore wählen und BOD disabled!
11
// ####### Bootloader mit STK500 brennen!
12
// ####### Power Led vom Board ablöten
13
//
14
#include<SPI.h>
15
#include<LoRa.h>
16
#include<Wire.h>
17
#include"LowPower.h"
18
#include<QMC5883LCompass.h>
19
QMC5883LCompasscompass;
20
unsignedinti;
21
unsignedintii;
22
intdsum;
23
unsignedintloop_counter=0;
24
unsignedintsample_counter=0;
25
unsignedintsleep_time=5;// 5=40sek, 1880 = 4 Std.
26
floatVal=0;
27
intres=0;
28
unsignedintmaxmeas=50;// Anzahl der Messungen / Oversampling
29
unsignedintmax_sample=10;// Anzahl der Filterdurchläufe
30
intmeas[50];
31
bytecount=0;
32
floatpv=0.0;
33
floatwind=0.0;
34
floatbat=0.0;
35
bytelocalAddress=199;// address of this device (normalerweise NTP-ESP in der WG)
36
bytedestination=100;// destination to send to (station)
37
Stringoutgoing;// outgoing message
38
Stringlorasendstring="*20:00 29.01.2023*";
39
#define LED 4 // Sende-LED, leuchtet in eine Kuppel auf dem Windrad zur optischen Kontrolle
LoRa.write(outgoing.length());// Länge von "outgoing" senden
128
LoRa.print(outgoing);// Kennwort zur Station senden
129
LoRa.print(lorasendstring);// String mit Grad, Bat/PV/Wind Volt senden
130
LoRa.endPacket();// Paket beenden und senden
131
LoRa.end();// LoRa beenden um Strom zu sparen
132
SPI.end();// SPI beenden um Strom zu sparen
133
digitalWrite(LED,LOW);// Sende-LED ausschalten
134
}
135
}
136
137
voidread_voltages()
138
{
139
bat=0.0;
140
pv=0.0;
141
wind=0.0;
142
143
for(ii=0;ii<10;ii++)
144
{
145
bat+=analogRead(A0);
146
delay(50);
147
pv+=analogRead(A1);
148
delay(50);
149
wind+=analogRead(A2);
150
delay(50);
151
}
152
ii=bat/10;
153
bat=map(ii,0,1023,0,1725)/100.00;
154
ii=pv/10;
155
pv=map(ii,0,1023,0,1725)/100.00;
156
ii=wind/10;
157
wind=map(ii,0,1023,0,1725)/100.00;
158
}
159
160
voidFiltern(float&FiltVal,intNewVal,intFF)
161
{
162
if(count<FF)//
163
{//
164
FF=count++;//
165
}//
166
FiltVal=((FiltVal*FF)+NewVal)/(FF+1);
167
}
Die Filterroutine ist ganz unten...
Etwas Off Topic:
Habe gesehen, daß jedes "große" Windrad auch eine Art SAT-Antenne hat, über diese werden anscheinend Telemetrie-Daten wie auch die Windrichtung übertragen.
Weiss jemand zufällig, wie und wo diese gesendet/empfangen werden?
Frequenz?
Wäre doch cool, wenn man diese Funksignale "anzapfen" könnte...
Dann wäre dies hier alles nicht mehr nötig.
Schon mal an Savonius-Rotor gedacht?
Muss nicht in den Wind gedreht werden.
Funktioniert also auch bei wechselnden Windrichtungen.
Ist sturmsicher.
Leicht zu bauen.
Vogelsicher.
Wartungsarm.
Schattenwurf ist unauffällig.
usw.
bereits gebaut aus 2x 200L Ölfässern.
läuft auch ganz gut, aber wollte unbedingt mal so ein horizontales bauen weil jeder sagt, die Effizienz ist größer.
Habe Platz und etwas Zeit, also probiere ich, bis ich das Optimalste gefunden ist.
(Wer baggert mir einen Fluss durch mein Grundstück mit ständig fliessenden Wasser? :-) )
Pendelnde Windkraftanlage ... das Problem hatt ich auch.
Meine Lösung war, die Drehachse oben durch den Generator verlängert und von oben n kurzgeschlossenen Schrittmotor (2 Nm) als "Wirbelstrombremse" drauf.
So kann sich die Anlage langsam in den Wind drehen, aber kurze schnelle Pendelbewegungen werden unterdrückt.
Schon mal an Savonius-Rotor gedacht?
Muss nicht in den Wind gedreht werden.
Funktioniert also auch bei wechselnden Windrichtungen.
Ist sturmsicher.
Leicht zu bauen.
Vogelsicher.
Wartungsarm.
Schattenwurf ist unauffällig.
usw.
Wirkungsgrad ist unterirdisch ... fehlt noch in der Aufzählung.
Blattverstellung (zur Leistungsanpassung und für 'shutdown') geht damit (wie bei allen "vertical axis wind turbins") aber nicht.
Bei Starkwind werden Windkraftanlagen eh lustig. Eine Kleinanlage ist von einem versierten Flugmodellbauer - so er an ein paar grundsätzliche Dinge denkt - aber zumindest technisch zu schaffen.
Blattverstellung (zur Leistungsanpassung und für 'shutdown') geht damit
(wie bei allen "vertical axis wind turbins") aber nicht.
Bei Starkwind werden Windkraftanlagen eh lustig. Eine Kleinanlage ist
von einem versierten Flugmodellbauer - so er an ein paar grundsätzliche
Dinge denkt - aber zumindest technisch zu schaffen.
Blattverstellung ist bei kleinen Horizontalläufern auch eher die Ausnahme, die drehen meist proportional zu Windgeschwindigkeit und man regelt die Belastung abhängig zur dadurch variierenden Spannung.
um den Stromverbrauch des Mess-Windrades mit Kompass noch weiter zu reduzieren wird nun alle 32 Sek. gemessen und alle 5min per Funk übertragen.
Das fertige Listing:
1
// Windrichtungs Messmodul
2
// 09.02.2023 W.Fischer
3
//
4
// liefert die Windrichtung in Grad
5
// 0 Grad = Norden
6
// 90 Grad = Osten
7
// 180 Grad = Süden
8
// 270 Grad = Westen
9
// https://de.wikipedia.org/wiki/Azimut
10
// #######!!! als Board MiniCore wählen und BOD disabled!
11
// ####### Bootloader mit STK500 brennen!
12
// ####### Power Led vom Board ablöten
13
//
14
#include<SPI.h>
15
#include<LoRa.h>
16
#include<Wire.h>
17
#include"LowPower.h"
18
#include<QMC5883LCompass.h>
19
QMC5883LCompasscompass;
20
unsignedinti;
21
unsignedintii;
22
unsignedintloop_counter=0;
23
unsignedintsample_counter=1;
24
unsignedintsleep_time=4;// 4=32sek, 1880 = 4 Std.
25
unsignedintmax_sample=10;// 10 x sleep_time = 5.33min
26
floatVal=0;
27
intres=0;
28
unsignedintmaxmeas=50;// Anzahl der Messungen / Oversampling
29
bytecount=0;
30
floatpv=0.0;
31
floatwind=0.0;
32
floatbat=0.0;
33
bytelocalAddress=199;// address of this device (normalerweise NTP-ESP in der WG)
34
bytedestination=100;// destination to send to (station)
35
Stringoutgoing;// outgoing message
36
Stringlorasendstring="*20:00 29.01.2023*";
37
#define LED 4 // Sende-LED, leuchtet in eine Kuppel auf dem Windrad zur optischen Kontrolle