Ultrasonic Anemometer

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 https://github.com/g8ecj/bertos stuff as I then get an LCD display "for free" :)

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:

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

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.

rolandoag

I connect the cable like this:

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

There is no ground connection at the transducer.

I use 8 volts for the analog amplifier circuit to give full digital output of 5 volts from the opamps.

Thanks for you answer it helps and i connected the H1 (digital part) whit the H1 (analog part) and the others "H" in the same way is this correct because when i have the calibration of ZCD TEMP... have a log range

To answer your question I need a lot more information.

Is the analog voltage a log range or the digital display?

I can only repeat a previous answer:

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.

Which ultrasonic sensors do you use?

Download UltrasonicAnemometer.zip from:

http://code.google.com/p/mysudoku/downloads/list

Ok, found at page 8, it is a "T/R40-16B" :) Thank you

Can you give a more detailed explanation of how the time-of-flight coarse measurement is made? The PDF says:

"This is the simplest method and I incorporate it in this design. The tof is measured when the amplitude of the received pulse exceeds a fixed amplitude. In theory the error of this measurement can approach zero if you average an infinite number of samples."

My experimentation shows that if we transmit a single 40KHz cycle, the amplitude is very small, so instead we must transmit several cycles and allow the amplitude to build up through resonance. This means that on the receive side, we're always going to miss the first few cycles, until the amplitude gets big enough to detect. If (for example) the first 2 cycles are always undetectable, then no matter how many times we redo the measurement, we're always going to be 2 cycles late (i.e. off by +50µs). How is this error corrected?

Similarly, when we stop transmitting, it takes a few cycles for the transducers to stop ringing, so measuring the end of the signal is also not reliable.

FireFury

Yes you are exactly correct. If you increase the number of pulses sent the received signal gets much easier to read.

After 16 pulses we get diminishing returns.

In the program I send the 40khz pulses for 64ms - about 25 pulses. This gives a good tradeoff between readability and total time for the measurement.

cheers

Ok, so you send 25 cycles, the first few of those cycles are always undetectable by the receiver - I don't see how the receiver can derive from this how many cycles have passed that it didn't detect. - you have a nice strong signal to do phase detection on, but you still don't know which of the 25 cycles is which by the time they reach the receiver.

i.e. (the following diagram does not include the time of flight, just to make things easier :))

Sender:   ------_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_---------
Receiver: ----------_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-----
                ^^^^                                             ^^^^
     Undetectable due to low amplitude       Ringing after the sender has finished

Am I missing something?