Ultrasonic Anemometer

Carl,

I was expecting the ZCD to detect zero volts crossing, but you are right, noise might impose a threshold above 0 V.
I also thought that ZCD will allways happen before envelope .
On step # 3 , you are mentioning that the meaasurement might not be in the appropiate pulse, so you get the diff and if it is less than 200 (half pulse), then you add another pulse (400) . if diff is more than half pulse (200), then you remove one.
My question to you is how do you know that this is needed? and what nakes you think that if diff>200 then substract one pulse.
Regards,

zenon

PS : Will let you know my progress . So far , just on the analog side . I have two oamp LM358 for first stage (instead of your transistors), then a precision recitifer (because the diode 1N4148 was not working) , ZCD and envelope detector .
One of my problems is that the tranducer cables, pick the signal from the sending end.So, when I receive the signal, I have a strong one (picked by the cable) and the real signal , very weak.

My question to you is how do you know that this is needed?

What we get is the difference "diffav" now this value will vary as shown by the wind function.
Using this function we can determine what is needed for a given value.

pick the signal from the sending end

I used twin shielded microphone cable to feed the transducers. Earth the shield only at the circuit board.

I hope the opamps work. It will simplify the circuit layout.

hello;
1-i construct the circuit correctly but when i download program to my arduino(arduino uno) it gave me unreal and constant values.I just download operation part and i dont have lcd so i wanna use pc for monitor how can i do this is it possible?
2-Another problem is with transducers(tr-40-16b) my transducer has two pin one is short and another one is long how can i connect transducer to circuit?we have to use just microphone cable? so how can i connect these transducer with microphone cable?
Thanks...

it gave me unreal and constant values

I can't follow this. What exactly gives you these values? Is it the Arduino IDE ?

Please provide exact details on what you have connected.

two pin one is short and another one is long

The drive signal is a balanced pair one wire for each pin(long or short). You should use shielded cable which
has a third connection - the shield.
Earth the shield at the circuit board end and leave the end at the transducer unconnected.

What exactly gives you these values? Is it the Arduino IDE ?

yes ? use arduino 1.0 program. But when ? download calibrate temperature program to the arduino uno with using arduino 1.0, it gave me -10 ,-9.87,-10... values from serial monitor but ambient temperature is 23 C.

Please provide exact details on what you have connected.

? convert your connection in a useful way for my ardunio because your connection is according to the atmega 328. For example, in your circuit you connect temperature connecion to the 28. pin ( PC5 (ADC/SCL) ) ? connet it in my circuit to the analog input 5 pin. Another example you connect zcd conection 4. pin (PD2 (INT0) ) i connect it in my circuit to the digital pin 2.

Actually i couldnt understand what you said about transducer pins, you mean that i shouldnt connect short pin anywhere and i should just connect long pin to one of my third connections cable and shielded connections at earth so i have one more connections what about it?
Thank you very much for your fast replies

OK I can see what you are doing:

TRANSDUCERS ---- arduino uno ---- Arduino IDE display

Does the calibrate resisitor 1k make any difference. The voltage at analog 5 should change.

If it does not you have a analog circuit error.

If it does and the display "external temperature = 10.0" does not change you have a program error.

Your job is to find and fix the problem.

The cable:

H1.......................................................long pin
H2.......................................................short pin NORTH transducer
Earth------------------------------

..........wire 1
..........wire 2 twin shielded microphone cable
----------shield

Good job Carl, nice anemometer. Im trying do create my own, my phase shift works well, but my TOF values changes a lot in some wind ocasions. I used the circuit of this article: http://www.ozitronics.com/docs/k168.pdf ....
What happens is that sometimes the transistor saturates on one period after or before the actual period, that is the correct one. This occurs because of the variation of the amplitude of the receiving signal that changes with the wind. The transducers dont have the same properties, that means that a 8m/s wind on one pair works well, and a 8m/s on the other one doesnt. I was thinking on making two different amplifiers that uses different gains, but in some wind ocasion the same problem will happen.
Do this happens with your TOF detection circuit and you get a lot of measures to compensate that? Or is it more robust? Do you have any ideas to help?? Thank you.

A previous question asked:

Then you mentioned the other problem about transducers behavior and define Northerror[20] .
Why 20 values? An again the logic , even is there, not sure to follow why.

This relates to your problem of the differences.

From the project report we compensate using software:

We do run into another problem. Ultrasonic transducers are not symmetric for transmission and
reception. The devices are not linear components and even worse the symmetry changes with
temperature.
You can match them as north-south, east-west pairs. It's properly a good idea to do so.
However we do need to have a constant which is used to match the pairs as closely as possible.
This constant will need to change with time as the temperature changes.
I use:
int Northerror[20]; //The tof error for north-south transmit
We keep a running sample of the differences when the difference should be zero.

Hi Carl,
im having some problems here, i would like to know how do you get Zero Crossing Detecting... Here, if I do this I get a Square Wave all the time because of the noise, that keeps crossing zero. How do you detect that the zero crossing isnt a noise? Do you have any graphic that shows the reception wave + the zero crossing at the same time?
Thank You.

Have you downloaded the projectreport.pdf.

The circuit is shown there and R22 is used as a threshold set.
Adjust this value to give output only when signal is received.

A CRO picture of the ZCD output is labelled "Output from the zero crossing detector with example program CRO".

Sorry for posting here, but when I went to your main thread, I couldn't get to or find the REPLY button.

Oh well.

Hey, great job.

How much would it cost to build one?

(Nominal)

on a bread board the parts cost me about AUD $60

I will not answer any more questions until 1-11-2012

I will be on holidays, including catching a train from KL to bangkok and I will not check my sites or mail.

Greetings

I'm currently laying up the digital part of the circuit in Eagle with an Arduino Nano as the plugin CPU. I'll then move onto the analog part, starting with the existing circuit but I expect to move to an all op-amp solution pretty quickly.

I may integrate the wind speed measuring stuff into my BeRTOS Arduino branch GitHub - g8ecj/bertos: BeRTOS real-time operating system stuff as I then get an LCD display "for free" :slight_smile:

Got a few wrinkles in my wind turbine project to test out in the meantime so I may be a couple of weeks before I get to etch some copper!!

Hey Carl...

Great stuff! I really enjoyed the level of detail in the documentation.

Would you mind sharing the schematic file (in Eagle format), if you haven't already?
I'd love to try laying out a custom board.

Thanks Mike,

I do have the eagle schematics and can post them but I hesitate because I,m
currently doing a complete circuit redesign.

The new circuit will be much improved and smaller.

Cant give you a timeline.

Let me know if you want the old files.

I have posted the eagle files I could find for my projects:

Download eagle_files.zip from:

http://code.google.com/p/arduino-projects-carl47/downloads/list

I use:

Easily Applicable Graphical Layout Editor(EAGLE)

Version 5.6.1 for Windows

Light Edition

Copyright (c) 1988-2009 CadSoft
All rights reserved worldwide

Add the Sparkfun Eagle parts library "SparkFun.lbr"
Instructions from sparkfun tutorial "Beginning Embedded Electronics - 8"

The schematics relate to the following projects:

Weather Station:

http://arduino.cc/forum/index.php/topic,8874.0.html

4digit1 , indoor , outdoor , supply

Programming the 328:

http://arduino.cc/forum/index.php/topic,59968.0.html

328_program

SRAM memory:

http://arduino.cc/forum/index.php/topic,50006.0.html

SRAM2

RF Links:

http://arduino.cc/forum/index.php/topic,60239.0.html

rf_link_tx , rf_link_rx

Ultrasonic Anemometer:

http://arduino.cc/forum/index.php/topic,53569.0.html

analog , digital , ultra_amp

carl47:
I have posted the eagle files I could find for my projects:

Download eagle_files.zip from:

Google Code Archive - Long-term storage for Google Code Project Hosting.

I use:

Easily Applicable Graphical Layout Editor(EAGLE)

Version 5.6.1 for Windows

Light Edition

Copyright (c) 1988-2009 CadSoft
All rights reserved worldwide

Add the Sparkfun Eagle parts library "SparkFun.lbr"
Instructions from sparkfun tutorial "Beginning Embedded Electronics - 8"

The schematics relate to the following projects:

Weather Station:

http://arduino.cc/forum/index.php/topic,8874.0.html

4digit1 , indoor , outdoor , supply

Programming the 328:

http://arduino.cc/forum/index.php/topic,59968.0.html

328_program

SRAM memory:

http://arduino.cc/forum/index.php/topic,50006.0.html

SRAM2

RF Links:

http://arduino.cc/forum/index.php/topic,60239.0.html

rf_link_tx , rf_link_rx

Ultrasonic Anemometer:

http://arduino.cc/forum/index.php/topic,53569.0.html

analog , digital , ultra_amp

hi carl, i´m new here in the forum, i have some question about the conection of the ultrasonic sensor it´s ok if I connect my north sensor ping ground with H2 and ping signal with H1, east sensor Ping signal with H6 ground ping with H5, south sensor ping signal with H3 ground ping with H4 and west sensor ping with H7 ground ping H8. I´ts correct this connection and why in H4 are connected at 8 volts. thanks for your answer

hi carl, I also need know how is the connection of H1,H2,H3,H4,H5,H6,H7,H8. And in the analog circuit the H11 were is connected or where use this connection. thanks for your answer

jose156

(analog)H2, H5, H7 and (digital)H10 are earth and are all connected.

(analog)H1 is the amplifier input and is connected to the (digital)4052 pin 3 designated as "amplifier".

(digital)H1 and H2 go to north transducer.
345678 go to the others.

(analog)H3 goes to the (digital)328 pin 5 designated as "envelope".
(analog)H6 goes to the (digital)328 pin 4 designated as "ZCD".
(analog)H8 goes to the (digital)328 pin 28 designated as "temp".

H11 is a test point and goes nowhere.