Windsensor WS2300-15
-
- Beiträge: 43
- Registriert: Freitag 30. Januar 2009, 11:36
Windsensor WS2300-15
Auf der Suche nach einem günstigen Windsensor habe ich diesen gefunden...
http://www.wetterladen.de/windmesser-fuer-2300-serie
(Eigentlich ist der für eine Wetterstation, aber die hab´ und will ich nicht.)
Also: Aufgeschraubt und geguckt was drin ist
Viel Elektronik für die paar Euro! So sieht´s aus... (ohne Gewähr!) Vielleicht hat ja jemand was ähnliches vor. Die Signale waren zum Glück auf der Platine beschriftet.
Betrieb mit 5V geht. Nachdem ich die grüne Leitung auf Masse gelegt habe,
spuckt der Sensor nun ca. einmal pro Sek. serielle Daten aus. (Sieht auf dem Scope nach 1200 Bd. aus? Nein, falsch. 800 Bd.sind es!)
Mal sehn´ wie´s weiter geht...
http://www.wetterladen.de/windmesser-fuer-2300-serie
(Eigentlich ist der für eine Wetterstation, aber die hab´ und will ich nicht.)
Also: Aufgeschraubt und geguckt was drin ist
Viel Elektronik für die paar Euro! So sieht´s aus... (ohne Gewähr!) Vielleicht hat ja jemand was ähnliches vor. Die Signale waren zum Glück auf der Platine beschriftet.
Betrieb mit 5V geht. Nachdem ich die grüne Leitung auf Masse gelegt habe,
spuckt der Sensor nun ca. einmal pro Sek. serielle Daten aus. (Sieht auf dem Scope nach 1200 Bd. aus? Nein, falsch. 800 Bd.sind es!)
Mal sehn´ wie´s weiter geht...
Zuletzt geändert von ExpertProfi am Samstag 10. Mai 2014, 21:37, insgesamt 1-mal geändert.
Re: Windsensor WS2300-15
bin gespannt....
-
- Beiträge: 43
- Registriert: Freitag 30. Januar 2009, 11:36
Re: Windsensor WS2300-15
Kurzer Zwischenbericht: Ohne Mikrocontroller wird es leider nicht gehen, denn
1.) Liegt die Baudrate irgendwo bei 800 Bd., also keine Standardbaudrate
2.) Es kommen ca. 16 Bits nach einem (einzigen) Startbit, also keine UART-kompatible, byteweise Zeichenübertragung.
Die Signalamplitude 2V reicht auch nicht um direkt auf einen (5V-) Controller zu gehen.
Habe dem Datenausgang daher einen Open-Collector-Ausgang in Form eines BC337-25 spendiert. Die damit einher gehende
Invertierung ist mir ganz recht.
Jetzt wird ich mal schauen wie ich mit einem AVR an die Bits rankomme...
1,25ms high = 1
1,25ms low = 0
(NRZ Codierung)
Die Bits zu dekodieren dürfte dann später wohl kein Problem mehr sein...
Fortsetzung folgt.
1.) Liegt die Baudrate irgendwo bei 800 Bd., also keine Standardbaudrate
2.) Es kommen ca. 16 Bits nach einem (einzigen) Startbit, also keine UART-kompatible, byteweise Zeichenübertragung.
Die Signalamplitude 2V reicht auch nicht um direkt auf einen (5V-) Controller zu gehen.
Habe dem Datenausgang daher einen Open-Collector-Ausgang in Form eines BC337-25 spendiert. Die damit einher gehende
Invertierung ist mir ganz recht.
Jetzt wird ich mal schauen wie ich mit einem AVR an die Bits rankomme...
1,25ms high = 1
1,25ms low = 0
(NRZ Codierung)
Die Bits zu dekodieren dürfte dann später wohl kein Problem mehr sein...
Fortsetzung folgt.
Zuletzt geändert von ExpertProfi am Samstag 10. Mai 2014, 21:40, insgesamt 1-mal geändert.
Re: Windsensor WS2300-15
Hallo ExpertProfi.
Bin schon gespannt, wie du die Daten der Funktionen "Richtung und Geschwindigkeit" auseinanderfieselst.
Und: über welche PC-Schnittstelle übertägst .......
Gruß von C mpander.
Bin schon gespannt, wie du die Daten der Funktionen "Richtung und Geschwindigkeit" auseinanderfieselst.
Und: über welche PC-Schnittstelle übertägst .......
Gruß von C mpander.
-
- Beiträge: 43
- Registriert: Freitag 30. Januar 2009, 11:36
Re: Windsensor WS2300-15
Werde es einmal mit einem Arduino versuchen.
Re: Windsensor WS2300-15
Hallo ExpertProfi.
... das hat dann jedoch leider nicht so wahnsinnig viel mit PLE4 zu tun. Richtig?
Herzlichen Gruß vom C mpander.
... das hat dann jedoch leider nicht so wahnsinnig viel mit PLE4 zu tun. Richtig?
Herzlichen Gruß vom C mpander.
-
- Beiträge: 43
- Registriert: Freitag 30. Januar 2009, 11:36
Re: Windsensor WS2300-15
Warum nicht? Mein Ziel ist es schon die Windwerte im ProfiLab zu haben. Wenn Du einen anderen Weg kennst, wie ich das ohne Controller hinkriege, bitte vorschlagen! (...oder falls dich eine solche Sensorik für PL nicht interessiert, dann schau doch bitte einfach weg.) Ich hätte es selbst auch gerne OHNE Controller gemacht, was aber aus o.g. Gründen meiner Einschätzung nach NICHT möglich ist.
Re: Windsensor WS2300-15
Hallo ExpertProfi.
Warum um Himmels willen soll ich wegschauen? Mich interessiert die Sensorik. Ebenso deren Anbindung an PLE!!!
Leider habe ich den Windsensor nicht.
Sicherlich gibt es mehrere Möglichkeiten der Anbindung.
Besonders einfach ist die Nutzung eines "USB auf RS232 TTL UART" - Wandlers.
Dieser hier führt die Signale TxD und RxD.
Eine Übertragungsfrequenz von über 1 kHz sollte möglich sein. (habe ich nicht gemessen!)
Das korrespondierende PLE-Bauteil ist "COM direkt".
Herzlichen Gruß vom C mpander.
Warum um Himmels willen soll ich wegschauen? Mich interessiert die Sensorik. Ebenso deren Anbindung an PLE!!!
Leider habe ich den Windsensor nicht.
Sicherlich gibt es mehrere Möglichkeiten der Anbindung.
Besonders einfach ist die Nutzung eines "USB auf RS232 TTL UART" - Wandlers.
Dieser hier führt die Signale TxD und RxD.
Eine Übertragungsfrequenz von über 1 kHz sollte möglich sein. (habe ich nicht gemessen!)
Das korrespondierende PLE-Bauteil ist "COM direkt".
Herzlichen Gruß vom C mpander.
-
- Beiträge: 43
- Registriert: Freitag 30. Januar 2009, 11:36
Re: Windsensor WS2300-15
Danke für den gut gemeinten Rat, aber da liegst Du falsch!
Diese Dinger verarbeiten BYTES, d.h. 1 Startbit; 7 oder 8 Datenbits; Stoppbit(s).
Bei diesem Sensor ist es leider nicht so. Nach dem Startbit folgen mahr als 16 Datenbits in EINEM Rutsch! Das kann KEIN UART! LEIDER!
Von den krummen 800 Baud einmal ganz abgesehen. Den Ansatz habe ich schon durch und der funktioniert definitiv nicht.
Du kannst das Bild oben wieder wegnehmen, da es nicht zielführend ist und nur verwirrt.
Habe jetzt schon einen Controller im Einsatz, der die Bits liest und die Kommunikation auf USB-COM umsetzt.
Stand der Dinge... (ohne Gewähr!)
Diese Dinger verarbeiten BYTES, d.h. 1 Startbit; 7 oder 8 Datenbits; Stoppbit(s).
Bei diesem Sensor ist es leider nicht so. Nach dem Startbit folgen mahr als 16 Datenbits in EINEM Rutsch! Das kann KEIN UART! LEIDER!
Von den krummen 800 Baud einmal ganz abgesehen. Den Ansatz habe ich schon durch und der funktioniert definitiv nicht.
Du kannst das Bild oben wieder wegnehmen, da es nicht zielführend ist und nur verwirrt.
Habe jetzt schon einen Controller im Einsatz, der die Bits liest und die Kommunikation auf USB-COM umsetzt.
Stand der Dinge... (ohne Gewähr!)
-
- Beiträge: 43
- Registriert: Freitag 30. Januar 2009, 11:36
Re: Windsensor WS2300-15
Funktioniert
Mit einem 16MHz Arduinio...
http://arduino.cc/en/Main/ArduinoBoardUno
Sensor an Digital Pin7 (D7) nach Schaltplan (oben).
So ein Board kostet ca. 30 Euro mit USB drauf.
Die Arduino-Software ist kostenlos. Damit das Script aufspielen...
Das war´s auch schon.
Mit einem 16MHz Arduinio...
http://arduino.cc/en/Main/ArduinoBoardUno
Sensor an Digital Pin7 (D7) nach Schaltplan (oben).
So ein Board kostet ca. 30 Euro mit USB drauf.
Die Arduino-Software ist kostenlos. Damit das Script aufspielen...
Das war´s auch schon.
Code: Alles auswählen
// Wind Sensor WS 2300-15 adapter
// Read sensor data from Digital Input D7 and sends to to PC (UART)
int senspin = 7; // Arduini Digital Pin 7 (D7 on AVR)
boolean stat; // data input status
word dataword; // what we print to PC
// Sensor uses 800 Bd. -> 1.25 ms/bit
// tested with 16 Mhz board...
int bit_ms = 1250; // Duration of 1 bit in µS
int half_bit_ms = 625; // Duration of 1/2 bit in µS
int ledpin = 13; // Pin 13 has an LED connected on most Arduino boards.
// Setup routine runs once when you press reset:
void setup() {
// initialize the digital pin as an output.
pinMode(senspin, INPUT); // Use D7 to read sensor signal
digitalWrite(senspin, HIGH); // turn the pullup on!
pinMode(ledpin, OUTPUT); // Use B5 for Data Indicator LED
Serial.begin(9600); // Set the baud rate for PC communication
}
// Main loop:
void loop() {
dataword = 0; // Prepare data word
stat = digitalRead(senspin); // get the sensor input
while(stat == HIGH){ // wait for falling edge (sync to startbit)
stat = digitalRead(senspin);
}
delayMicroseconds(half_bit_ms); //wait for MIDDLE of startbit, we are now in sync
// Skip the start bit, we now it ist there ;-)
delayMicroseconds(bit_ms);
// Skip four header bits, we don´t want these...
delayMicroseconds(bit_ms);
delayMicroseconds(bit_ms);
delayMicroseconds(bit_ms);
delayMicroseconds(bit_ms);
// Now the 13 bits we want...
// *** Dataword [0..3] = WIND DIRECTION (LSB first)
// *** Dataword [4..12] = WIND SPEED (LSB first)
for (int i=0; i <= 13; i++){
stat = digitalRead(senspin);
if (stat) {
dataword = dataword + (1 << i);
}
delayMicroseconds(bit_ms); // Wait for next bit
}
Serial.println(dataword); // Print out Dataword as readable ASCII string to PC
digitalWrite(ledpin, HIGH); // Sensor Data Indicaror LED on
delay(200); // Spent some time, to make sure finished tranmittion
digitalWrite(ledpin, LOW); // Sensor Data Indicaror LED on
}
Re: Windsensor WS2300-15
Hallo ExpertProfi,
klasse Beispiel, welches zeigt, was man so 'alles hinkriegt' mit einem µController, was im ersten Moment beinahe aussichtslos erscheint. Danke für die Inspiration.
klasse Beispiel, welches zeigt, was man so 'alles hinkriegt' mit einem µController, was im ersten Moment beinahe aussichtslos erscheint. Danke für die Inspiration.
++++++
Gruss/regards IKT
Gruss/regards IKT
Re: Windsensor WS2300-15
@Compander: Habe mir erlaubt das Bild von Compander zu löschen. Sorry!
@ExpertProfi: Schönes Projekt!
@ExpertProfi: Schönes Projekt!
ABACOM support
-
- Beiträge: 43
- Registriert: Freitag 30. Januar 2009, 11:36
Re: Windsensor WS2300-15
Danke, hier noch ein bisschen 'Inspiration' zur Frage "Wie windig ist es denn eigentlich?"
Vielleicht gefällt Euch ja meine Spielzeug...
Da man zum Spielen ja nicht immer Wind hat, habe ich eine Sensorsimulation eingebaut.
Vielleicht gefällt Euch ja meine Spielzeug...
Da man zum Spielen ja nicht immer Wind hat, habe ich eine Sensorsimulation eingebaut.
Re: Windsensor WS2300-15
Hallo, ich muss den Post mal ausgraben.
Also ich baue gerade einen Windmesser mit Arduino und verwende den hier veröffentlichen Code.
Das funktioniert auch alles, nur hab ich ein Verständnisproblem mit der Auswertung der Windgeschwindigkeit.
Ich erkläre es mal.
1 kleine Änderung hab ich am Code vorgenommen, ich "Teile" schon bei der Abfrage des Windsensors die Werte
dürfte ja kein Problem darstellen.....
Windrichtung also dataword stimmt alles, sehen wir uns dataword1 an, Ausgabe per
zeigt
1001010000
592
so, eigentlich sollte da doch als dec Wert da 41 stehen? was ich auch am Win Taschenrechner so ablesen kann.
aber andere Converter sagen wieder 592.
Zum Thema TX23 findet man ja genug Erklärungen
http://www.rd-1000.com/chpm78/lacrosse/ ... tocol.html
da sind ja 4 Beispiele der Windgeschwindigkeit, geht alles im Taschenrechner von Win nachzuvollziehen, nur wieso wird aus dem BIN bei mir und im Inet 592? Was versteh ich nicht?
Also ich baue gerade einen Windmesser mit Arduino und verwende den hier veröffentlichen Code.
Das funktioniert auch alles, nur hab ich ein Verständnisproblem mit der Auswertung der Windgeschwindigkeit.
Ich erkläre es mal.
1 kleine Änderung hab ich am Code vorgenommen, ich "Teile" schon bei der Abfrage des Windsensors die Werte
Code: Alles auswählen
for (int i=0; i <= 13; i++){
stat = digitalRead(senspin);
if (stat) {
if (i <= 3) {
dataword = dataword + (1 << i);
} else {
dataword1 = dataword1 + (1 << i);
}
}
Windrichtung also dataword stimmt alles, sehen wir uns dataword1 an, Ausgabe per
Code: Alles auswählen
Serial.println(dataword1, BIN);
Serial.println(dataword1);
1001010000
592
so, eigentlich sollte da doch als dec Wert da 41 stehen? was ich auch am Win Taschenrechner so ablesen kann.
aber andere Converter sagen wieder 592.
Zum Thema TX23 findet man ja genug Erklärungen
http://www.rd-1000.com/chpm78/lacrosse/ ... tocol.html
da sind ja 4 Beispiele der Windgeschwindigkeit, geht alles im Taschenrechner von Win nachzuvollziehen, nur wieso wird aus dem BIN bei mir und im Inet 592? Was versteh ich nicht?
- Dateianhänge
-
- Unbenannt-2.jpg (41.05 KiB) 18487 mal betrachtet
Re: Windsensor WS2300-15
Irgendwie bringst du alles durcheinander.
Ein Byte hat 8 Bit, maximaler Wert DEC255 oder Hex 0XFF = &B1111 1111
Ein Word hat 16 Bit, maximaler Wert DEC65535 oder Hex 0XFFFF in Bin 1111 1111 1111 1111
Deine angegebenen Bit Werte sind vollkommen unterschiedliche Werte:
1001010000 = DEC592
101001 = DEC41
Ein Byte hat 8 Bit, maximaler Wert DEC255 oder Hex 0XFF = &B1111 1111
Ein Word hat 16 Bit, maximaler Wert DEC65535 oder Hex 0XFFFF in Bin 1111 1111 1111 1111
Deine angegebenen Bit Werte sind vollkommen unterschiedliche Werte:
1001010000 = DEC592
101001 = DEC41
stachlige Grüße, Kaktus
Re: Windsensor WS2300-15
du hast einmal das LSB links und einmal rechts
Mike
Mike