Arduino Forum

Community => Exhibition / Gallery => Topic started by: carl47 on Feb 26, 2011, 06:35 am

Title: Ultrasonic Anemometer
Post by: carl47 on Feb 26, 2011, 06:35 am
This picture shows the anemometer in position:

(http://i1038.photobucket.com/albums/a469/carl471/anem_zps21056ca0.png)

This picture shows a 4 day logged output using my VB program:

(http://i1038.photobucket.com/albums/a469/carl471/disp_zps623f3aff.png)


I have previously posted this project at:

http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1283073954

I have made some more improvements to the design.

I am now happy with the long term operation of this anemometer.

Full details including project description, modification descriptions,
circuit diagrams and all the programs:

Download UltrasonicAnemometer.zip from:

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

When I took on this project I searched the web and could not find any
real information on how the software should work.

In the end I went for time of flight for coarse values and phase shift for the finer detail.

I believe that this is the only ultrasonic anemometer on the web which has
enough detail to enable it's actual construction.    

Title: Re: Ultrasonic Anemometer
Post by: draythomp on Feb 27, 2011, 01:51 am
Very nice.  After running it for a few months it must be really satisfying to have the project working day after day.  Maximum bragging rights.

Good job
Title: Re: Ultrasonic Anemometer
Post by: carl47 on Feb 27, 2011, 06:17 am
Thanks draythomp.

I am bragging, I put so many hours into this project that I feel I have a right to a little bragging.

I would rather had put much fewer hours in, but I was unable to find any real information on the web.

I'm hoping to get a little bite about:

Quote
I believe that this is the only ultrasonic anemometer on the web which has
enough detail to enable it's actual construction.   


Maybe from the many authors of web sites which claim to describe  ultrasonic anemometers.
Title: Re: Ultrasonic Anemometer
Post by: carl47 on Mar 11, 2011, 05:47 am
I have just noticed that if you do a google search:

ultrasonic anemometer construction

This page comes up on the first page of the google search.

I dont know how long this has been occuring but it also has the quote:

Quote
I believe that this is the only ultrasonic anemometer on the web which has
enough detail to enable it's actual construction.   


I'm still waiting to be proved wrong.

I would not be upset if proved wrong, but it would mean that I would have to improve my search technique.
Title: Re: Ultrasonic Anemometer
Post by: zenonmb on Apr 18, 2011, 04:18 am
Carl (i guess this is your name),

Great project and taking the time to share with the comunity . I have a few question that would help me to understand your design

1) Where do you get the formula  v = SQRT((d/t)*(d/t)+(C*C)) - d/t  ?

1)Why the 300 samples ? I see you explain and show math about the 3 seconds and get 312 samples to produce 1 measure.
You can use just 100 samples or even less and still get good results .

2) Why are you mention to get TOF in multiples of 25 usecs (instead of real time)? You send the pulses (actually 16 )and should be able to get the time to arrive. You could send the pulses , start timer and stop when it arrives .

3) I am not sure to understand why you use the 74HC368 drivers? Could you use just the I/O pins of the microcontroller directly?

4) What do you use zero detector and envelope for ?

Regards,

Zenon
Title: Re: Ultrasonic Anemometer
Post by: carl47 on Apr 18, 2011, 07:20 am
Quote
1) Where do you get the formula  v = SQRT((d/t)*(d/t)+(C*C)) - d/t  ?

We can find the wind velocity from the equation:
Vns = d/2 *( 1/tns - 1/tsn)

We can solve this(algebra) for the magnitude of the wind velocity when we have the time difference:
V = SQRT((d/t)*(d/t) + C*C) - d/t
Where t = largest tof - smallest tof.

Quote
1)Why the 300 samples ? I see you explain and show math about the 3 seconds and get 312 samples to produce 1 measure.
You can use just 100 samples or even less and still get good results .



The wind gust peak is usually averaged over 3 seconds(historical from the time constant of cup
anemometers).
This gives a sample size of 300.
Any smaller size can be used but you will get more noise in your result.


Quote
2) Why are you mention to get TOF in multiples of 25 usecs (instead of real time)? You send the pulses (actually 16 )and should be able to get the time to arrive. You could send the pulses , start timer and stop when it arrives .


This is the crux of the problem. To get precision of 0.1 usecs is impossible with TOF.

My solution is to use the coarse TOF to get the TOF to within a 25 usec range.
I then use the phase shift to get the precise TOF within that 25 range.

Quote
3) I am not sure to understand why you use the 74HC368 drivers? Could you use just the I/O pins of the microcontroller directly?



You can drive the transducers direct as I did in my first prototype.
I have given the code:

//PORTD is at 0x0b pin 6 controls NORTH HIGH pin 7 controls NORTH LOW
asm volatile ("\n\t"
"ldi r25 , 16 \n\t" //set pulse counter to 16
"pulse1%=:" "\n\t" //branch back here till 16 pulses sent
"sbi %0 , 6 \n\t" //turn on NORTH HIGH
"cbi %0 , 7 \n\t" //turn off NORTH LOW

ect

This does not give a fine enough control of the pulse frequency.
Timer0(Arduino millis() and PWM 5 & 6) is used as an exact frequency source for the ultrasonic.
To get the differential feed requires that I had to use 2 74HC368 drivers,
but it is not to extravagant to get the best S/N ratio.

Quote
4) What do you use zero detector and envelope for ?


The envelope detector is used to get the coarse TOF.

The zero crossing is used to get the phaseshift(fine detail) of the waveform.
Title: Re: Ultrasonic Anemometer
Post by: zenonmb on Apr 19, 2011, 04:10 am
1) What do you mean by "largest" /"smallest" TOF . So this formula is based on "large" number of samples and I pick largest and smallest and substracts them to get "t" ?

2) i still do not understand the big picture of you method to determine the wind speed

I see your explanation as follow  :
1) You send pulses for .64 msec
2) After that wait .48 msec for settle down
3) Here is my problem...you say active waiting 1.28 ms for INT0 and INT1 .
I do not understand what happens first, measure phase or detect envelope. Should be envelope, since it is coarse.
So after sending the pulses, just wait for envelope to be detected (capture that value in envelopetof).Once detected, wait for the next crossing zero, capture timer1 again (in zcdtof) . Repeat this 300 times?
In your code i see you use TCNT1 for both zcdtof and envelopetof, so even i read your code, I am sorry do not understand how this works.....

Title: Re: Ultrasonic Anemometer
Post by: carl47 on Apr 19, 2011, 05:55 am
Quote
1) What do you mean by "largest" /"smallest" TOF . So this formula is based on "large" number of samples and I pick largest and smallest and substracts them to get "t" ?


This equation gives the wind speed when we have the TOF( say north to south) and the TOF in opposite direction(south to north).

In the example in the pdf for 1 kph wind we get:

tof from N to S tns = 0.36/(344.7 + 0.277) = 1043.5 micro sec.
tof from S to N tsn = 0.36/(344.7 - 0.277) = 1045.2 micro sec.

So t = 1.7 usec. d = 0.36.  C = 344.7.

subsitute into the equation and get v = 0.277 m/s (1 kph)

Quote
i still do not understand the big picture of you method to determine the wind speed



If you could measure the TOF using envelope detection (ping distance uses this) with an error of 0.1 usec there would be
no problem.
But the best we can get even with an average of 300 samples is 5 usec(wind noise is the problem).
To get closer I incorporate phaseshift wich can give errors of 0.1 usec with 300 samples.


Quote
In your code i see you use TCNT1


Good, up to here you have got what I am doing.


The ZCD sets INT0 first.
The counter value is recorded for the use as the phaseshift.

TCNT1 keeps counting

I set the detector levels  so that the ZCD occurs first.

The envelope detector will then set INT1.
The counter value is recorded as the coarse TOF.

TCTN1 is then reset.
Title: Re: Ultrasonic Anemometer
Post by: eeeozkan on Mar 16, 2012, 12:01 am
hello guys,
we have trouble with ultrasonic anemometer using pic , we need circuit of this anemometer and which sensor we should use.
in this project, it done with using atmega but we must use pic
could you help us immediately smiley-sad
Title: Re: Ultrasonic Anemometer
Post by: zenonmb on Apr 04, 2012, 03:07 am
Carl,

After a year I am back with your project .... I plan to use it in a sail boat and my main concern is what would happen with the boat movement. For sure will introduce errors....well...we will see.

Some additional questions reviewing your excellent document
On the HW side,

1)  why the ZCD  has a pot R 22 ? What is that for? Actually I was surprised to realize that the calibration is done through an external program. What calibration do we need? I mean, as soon as the signal goes above 0V, should rise the output

2) D1 , on the envelope detector, should not be a precision rectifier? I mean, it will bring 0,6 V down

3) On the 4052, why we need -5 V?

On the SW side,

I did, as usual some changes . Basically, I am not using interrupts, but a continuous pulling of ZCD and
envelope.

First a minor comment, regarding the time difference , diff = NZCD[counter]-SZCD[counter] i think is not accurate, because we are sending first 300 samples and then reverse for another 300 . I would expect to send 1 sample (n>s), reverse(s>n), send another sample, reverse and so on , until 300 times.
What I mean if we send pulse 1 , the corresponding reversed pulsed will be after 300 other pulses , so wind changed in that time (well....might not in millisecs....)

Until step 3, I am ok , but struggling to understand your logic in the error correction
It looks like if the diff is less than 200 (ie half period), then you add a pulse. How do you know this?

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.

Finally, a basic question on tof
Even you mentioned that we do not have individual Tof, I think we do have it, since envelope measures that
""
We can find the wind velocity from the equation:
Vns = d/2 *( 1/tns - 1/tsn)
This requires that we have each tof as a discrete number.
This we do not have. We cannot use this equation.
What we have is a time difference of multiples of 25 micro sec.""

We send pulses, start TMR1 and capture the value (TMR1 again)when envelope detects it . We substrac and get Tof.
What is true and you mentioned, is that with envelope is not enough to get precision and we need ZCD to find out phase shift .

Regards,

Zenon
Title: Re: Ultrasonic Anemometer
Post by: carl47 on Apr 05, 2012, 08:01 am
On a rocking sail boat it should be as accurate as an eggcup type. I have used the same response time constant.

Quote
why the ZCD  has a pot R 22 ?

We want to detect above the noise level and I want it to occur before the envelope detector. An improvement would be for the ZCD to be fixed and the envelope to be adjustable.

Quote
D1 , on the envelope detector.

This is not a rectifier but an Amplitude modulation detector. A precision rectifier would bring the detection level down but I dont know if it is really necessary.

Quote
On the 4052, why we need -5 V?

This may be a bit of overkill as the negative voltage on the analog input is very small(it can cope with -5v).
You should try to leave it out and see if it works for you.

Quote
What I mean if we send pulse 1 , the corresponding reversed pulsed will be after 300 other pulses

Yes but remember we are getting an average over time.
Also I found that you need a couple of pulses before the circuit becomes stable(I drop the first couple of measurements).

Quote
It looks like if the diff is less than 200 (ie half period), then you add a pulse.

I need some more information to answer that.

Quote
about transducers behavior and define Northerror[20] .

Now this was just trial and error and I chose 20 as a reasonable figure. This is an area were there could be much improvement.

Quote
Even you mentioned that we do not have individual Tof, I think we do have it, since envelope measures that

Yes we do not have an accurate figure for tof to use in that equation.

Keep me informed on your progress.
I am going to revisit this design  as my next project but I will be busy on another project for some months.

Cheers.
Title: Re: Ultrasonic Anemometer
Post by: zenonmb on Apr 11, 2012, 02:24 am
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.

Title: Re: Ultrasonic Anemometer
Post by: carl47 on Apr 11, 2012, 07:58 am
Quote
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.

Quote
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.

Title: Re: Ultrasonic Anemometer
Post by: eeeozkan on Jun 01, 2012, 10:05 am
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...
Title: Re: Ultrasonic Anemometer
Post by: carl47 on Jun 03, 2012, 06:51 am
Quote
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.

Quote
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.
Title: Re: Ultrasonic Anemometer
Post by: eeeozkan on Jun 03, 2012, 10:34 am
Quote
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.

Quote
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.
Title: Re: Ultrasonic Anemometer
Post by: eeeozkan on Jun 03, 2012, 10:57 am

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
Title: Re: Ultrasonic Anemometer
Post by: carl47 on Jun 04, 2012, 06:30 am
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



Title: Re: Ultrasonic Anemometer
Post by: outleo on Jul 25, 2012, 03:37 pm
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.
Title: Re: Ultrasonic Anemometer
Post by: carl47 on Jul 28, 2012, 06:04 am
A previous question asked:
Quote
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.
Title: Re: Ultrasonic Anemometer
Post by: outleo on Aug 02, 2012, 02:38 pm
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.
Title: Re: Ultrasonic Anemometer
Post by: carl47 on Aug 03, 2012, 06:46 am
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".
Title: Re: Ultrasonic Anemometer
Post by: lost_and_confused on Sep 20, 2012, 08:14 am
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)
Title: Re: Ultrasonic Anemometer
Post by: carl47 on Sep 21, 2012, 03:52 am
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.
Title: Re: Ultrasonic Anemometer
Post by: frackers on Nov 01, 2012, 08:44 am
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 (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!!
Title: Re: Ultrasonic Anemometer
Post by: Applmike on Nov 10, 2012, 07:49 pm
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.
Title: Re: Ultrasonic Anemometer
Post by: carl47 on Nov 13, 2012, 02:51 am
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.
Title: Re: Ultrasonic Anemometer
Post by: carl47 on Nov 14, 2012, 06:45 am
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
Title: Re: Ultrasonic Anemometer
Post by: rolandoag on Nov 14, 2012, 05:35 pm

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
Title: Re: Ultrasonic Anemometer
Post by: jose156 on Nov 15, 2012, 03:45 am
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
Title: Re: Ultrasonic Anemometer
Post by: carl47 on Nov 16, 2012, 02:08 am
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.
Title: Re: Ultrasonic Anemometer
Post by: carl47 on Nov 16, 2012, 02:23 am
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.
Title: Re: Ultrasonic Anemometer
Post by: jose156 on Nov 16, 2012, 04:26 pm
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
Title: Re: Ultrasonic Anemometer
Post by: carl47 on Nov 19, 2012, 11:51 pm
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:

Quote
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.
Title: Re: Ultrasonic Anemometer
Post by: tazzo on Dec 03, 2012, 04:33 pm
Which ultrasonic sensors do you use?
Title: Re: Ultrasonic Anemometer
Post by: carl47 on Dec 04, 2012, 10:48 am
Download UltrasonicAnemometer.zip from:

http://code.google.com/p/mysudoku/downloads/list
Title: Re: Ultrasonic Anemometer
Post by: tazzo on Dec 04, 2012, 11:12 am
Ok, found at page 8, it is a "T/R40-16B"  :)
Thank you
Title: Re: Ultrasonic Anemometer
Post by: FireFury on Apr 02, 2013, 06:26 pm
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.
Title: Re: Ultrasonic Anemometer
Post by: carl47 on Apr 09, 2013, 03:00 am
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
Title: Re: Ultrasonic Anemometer
Post by: FireFury on Apr 09, 2013, 07:55 pm
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?
Title: Re: Ultrasonic Anemometer
Post by: carl47 on Apr 13, 2013, 03:49 am
Quote
but you still don't know which of the 25 cycles is which by the time they reach the receiver.


This is the the crux of the problem, we cannot know for certain.

We get an approximation using Thresholding:
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.
I average over 3 seconds.

We then have a tof with an error, we get a closer result using the phase shift.

You cannot use the phase shift alone as it repeats itself every wavelength(25 micro sec).

Hope that this helps.
Title: Re: Ultrasonic Anemometer
Post by: rkguy on Apr 15, 2013, 08:29 pm
This seems excellent.
Is there a way that a kit can be made?
If not then I see that there is an EAGLE file here so perhaps I can use that to have a board made and then purchase the other components separately but I'm not sure that is up to date. Have there been any updates to the board/circuit design?

Have you seen these sensors? How can the existing design be updated to measure wind using such a compact form? Any thoughts?
http://www.technik.dhbw-ravensburg.de/~lau/ultrasonic-anemometer.html
(http://www.technik.dhbw-ravensburg.de/~lau/usa2-mechanik-3.jpg)


Also, I wonder if these folks know about your sensor?
http://hackerfleet.org/dev/wiki/MS0x00/Sensors/Wind
Title: Re: Ultrasonic Anemometer
Post by: rkguy on Apr 19, 2013, 09:20 pm
I can't find a U.S. supplier that carries the ultrasonic sensor.
Is there a good alternative or can someone direct me to a U.S. supplier?
It's the T/R40-16B from Audiowell
EDIT: I ended up getting this one from Futurelec: USTR40-14A
Interestingly, I got the 60Hz one as well, perhaps more appropriate for the compact sensor I mentioned above.
Title: Re: Ultrasonic Anemometer
Post by: carl47 on Apr 20, 2013, 02:36 am
rkguy

ravensburg was on the web when I started my project.
They like to keep the signal processing a secret so I could not use any of their information.

Interesting to see they now have a reflecting suface which many commercial models have.

I have experimented with a reflector layout but was unable to get a big enough signal.

I have just become aware of the hackerfleet design.

I have only had a quick look but I could not find their signal processing.
Their circuit information looks good.

As I have said before my design could be much improved.
I do not know of any new designs and the eagle files are still current.

cheers
Title: Re: Ultrasonic Anemometer
Post by: ilioSS on May 07, 2013, 11:46 am
Hi, carl47

Finally I found some correspondence related to your fantastic project Ultrasonic Anemometer.

For almost over an half year I am strucling with a not working system.
I built the ultrasonic anemometer on a proto type PCB.
I used the sensor from Conrad a europeean supplier.
Type  A-18p20    fabr. EKULIT  to my opinion they must work and/or are near the specs.
TR SPL  dB  >106
RC SEN   >-74
Dir deg. 80+/-15
Capa. 1800+/-20%
Allow. inp. volt  140

The problems i found are
The system looks working but not relaiable and or recognized.
It respond on disturbing the beam.
Digital looks to work I hear sound from the sensors all 4 of them.
The value for the envolope is about 8000  not the 4000 which must be.
I use diodes 1N4937  the 1N918  are not avalable. equivalent 1N4148 shoult not work either as written by
Zenon.
The sensor wire I also screened and put to earth (-) you never know.
Do you have a clou what is faulty?
I do realize the info is poor but I cab answer your questions.
Like to hear from you.

Kind regards,
THeo  ( ilioSS)

Title: Re: Ultrasonic Anemometer
Post by: carl47 on May 08, 2013, 09:09 am
Hi ilioSS

Sensors should be fine.

Do you have a cro, the program "calibrateCRO" can be used to see if you get the same waveforms as me.

Are you using "calibrateENVELOPE" to get the 8000 you should be able to adjust the 10k pot to get
4000. 

You must get this value and 3000 for the ZCD for the system to work.

The 918 is just a small signal diode, any one should work.

I cant tell you what is the problem, but you must go back to the absolute basics.
Program the arduino to send 40khz pulses and check the result.
I'm afraid that a cro would be very usefull.

cheers
Title: Re: Ultrasonic Anemometer
Post by: ilioSS on May 09, 2013, 06:09 pm
Hi Carl47,


First of all many thanks for your reply.
It am very delited to recieve responce which is very welcome.

In reacton of your anwser.
Good to hear that the sensor are ok.
I had a real good look at your picture in your article and I saw that you used also screened cable.
You connected the wire from the sensor direct on the PCBclose to the ic connection.
I changed the connection like you did. ( I routed the signal from the ic to terminals on the side of the PCB most problaby caused interfirence)
In this way it is optimal.
I wonder if the sensor realyis so sensitive. On the west sensor I heared the pulses as normal but also pulsen a bit weaker just for the stronger pulses.( interference)
I changed the place of the sensors west to south and south to west now the interference is not heard.
How can we check if a set of sensors are best for each other?
The ZCD is able to adjust to about 3000. This looks ok now.
Stil the envolope is 6000 about.
I will take a scope to check the CRO signal. ( can send scope pictures)
I think something is wrong with the LM324 loop envolope.Amplifier setting or so.
I keep you posted.

Kind regards,

Theo (ilioSS)

ps. Like your project gives lot of fun.
Title: Re: Ultrasonic Anemometer
Post by: carl47 on May 15, 2013, 03:50 am
Thanks Theo (ilioSS)

Quote
I changed the connection like you did.

Make sure that the two drive lines are not earthed, the drive is differential and
if one side is earthed you only get one half the driving signal.

Quote
How can we check if a set of sensors are best for each other?

Try different pairs until you get the closest received amplitudes.

Quote
I will take a scope to check the CRO signal. ( can send scope pictures)


That would be very helpfull.

You only need low resolution photos, these would be really usefull:
(Make sure you have the voltage levels in the photos)

Output from 1st stage with example program CRO.
Output from 2nd stage of the amplifier with example program CRO.
Output from the LPF with example program CRO.
Output from the envelop detector with example program CRO.
Output from the zero crossing detector with example program CRO.

Cheers.
Title: Re: Ultrasonic Anemometer
Post by: rondlite on Jun 18, 2013, 10:10 pm
Hi can you please tell me what the ultra-amp circuit is for?

thanks
Title: Re: Ultrasonic Anemometer
Post by: rondlite on Jun 19, 2013, 12:48 am

Quote
tell me what the ultra-amp circuit is for?

Amplifying the very weak echo signal.


so this is an optional extra amp to put in between the digital and analog board ?
Title: Re: Ultrasonic Anemometer
Post by: carl47 on Jun 19, 2013, 06:25 am
rondlite

The ultra-amp is a new version of the discrete divice shown in the analog circuit.

I will eventually change the analog circuit to show this.

No time frame as I'm busy on another project at the moment.
Title: Re: Ultrasonic Anemometer
Post by: rondlite on Jun 19, 2013, 06:58 am
cheers! that clears up a lot :)

I am making a pcb design for both the analog and digital boards... so if i am done i will share with you.
from first check i can just hook in the ultramp in top left of analog, however it currently is 8v and ultra-amp is 5v

i assume H9 and H10 on analog are testpins too?

one thing i was wondering, you have a lot of gnd's to seperate holes, i could just lead them to 1 ground plane right, since you seem to lead them to actual pinouts

thanks a lot for the help
Title: Re: Ultrasonic Anemometer
Post by: carl47 on Jun 20, 2013, 07:22 am
Quote
so if i am done i will share with you


great!

Quote
currently is 8v and ultra-amp is 5v


Yes we use the 5v for the amp.

Quote
H9 and H10 on analog are testpins too


yes

Quote
just lead them to 1 ground plane right


That will be better and something you can do with a pcb.

Thanks and Cheers
Title: Re: Ultrasonic Anemometer
Post by: frackers on Aug 11, 2013, 05:07 am
Several months ago I announced that I was going to develop a PCB for this project - well life got in the way!!

I've been spurred onto looking again by the failure of my trusty old WS2515 LaCrosse weather station. This is the second time I've had an outside unit fail so having 2 good indoor 'base' units I've developed a 433.92MHz transmitter to take data from an Arduino based outside unit and transmit it to the existing base units. The temperature and humidity sensors are easy enough (basic 1-wire stuff) and the mechanics of the old LaCrosse tipping rain gauge is OK so that is easy as well but the inaccuracy of the original wind sensor has brought me back here.

Wanting to use some of the Arduino pins for other purposes has made me look at the circuit more closely - there is some really good cunning stuff here - I particularly like the 'bridge' drive to the transducers in transmit mode and then isolating (tri stating)  and grounding one side for receive. This is where I have saved 4 CPU pins by using 74hc240 rather than 74hc368 tri state buffers. By pulling one of the spare inputs to Vcc I take its output to the complementary low side transducer. i.e. A3 input of North goes to Vcc and the Y3 output goes to South(low). This causes South(low) to get grounded, ready to receive, whenever North is transmitting. The same goes for the other directions.

I've also shifted a few pins about so Tx control is now all on port C such that pc0=North, pc1=South, pc2=East and pc3=West. I've also shifted the analog mux to pd4 and pd5 so as to free up all of portB.

I've now got pins for 1-wire data, RF TX data, rain tipper etc

Attached is a (unchecked) schematic with the mods on it. I'd appreciate any feedback.
Title: Re: Ultrasonic Anemometer
Post by: carl47 on Aug 17, 2013, 03:40 am
Quote
I'd appreciate any feedback


Very neat hardware mod.

How about a look at your software, I,m sure it would be appreciated.

Cheers.

Title: Re: Ultrasonic Anemometer
Post by: frackers on Aug 18, 2013, 07:58 am
Still working on the software - its based on my fork of BeRTOS https://github.com/g8ecj/bertos/tree/g8ecj/all (https://github.com/g8ecj/bertos/tree/g8ecj/all) which provides the 1-wire interface and the basic serial comms, timers etc.

I've got the RF transmitter stuff ready to roll but only just started on porting your anemometer code to the new environment. I've posted the bit that is working to give some ideas of how it fits together! To use it with BeRTOS, get that package and use the wizard to create a project with the 1-wire stuff enabled (or use the example 1-wire project) and substitute the WxTX.c file for main.c in the project folder. You'll see what I mean if you start to play with BeRTOS ;)

I'm also using an Arduino Nana as a plugin CPU engine - makes the PCB a bit simpler but having said that I no longer have access to the PCB lab where I used to make my own boards so I'm trying to simplify it even more to hopefully get a commercial 2 sided board done. That means smd parts to cut the size down since most suppliers charge by board area and the number of vias. Obviously I want to get it right first time so it may be a while  :(
Title: Re: Ultrasonic Anemometer
Post by: frackers on Aug 18, 2013, 08:00 am
Forgot the attachment and I can't find an edit button!!
Title: Re: Ultrasonic Anemometer
Post by: carl47 on Aug 23, 2013, 06:45 am
Thanks for sharing.

You seem to be really getting your moneys worth out of a 328.

When I first setup my weather station I set aside one 328 for the anemometer and one for the other functions.
Humidity,temp, lightning ect and receiving, sending data is handled by the second.

I like your approach. I think that it will be a real improvement on my simple first design.

We would appreciate if you can keep us updated on your progress.

Your TXRX for 432Mhz looks good, the Arduino community also have classes to send data over radio links.

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

However fitting this to the LaCrosse base format would hardly be worth the effort.

Keep in touch.
Title: Re: Ultrasonic Anemometer
Post by: frackers on Aug 24, 2013, 01:29 am

Thanks for sharing.

You seem to be really getting your moneys worth out of a 328.

When I first setup my weather station I set aside one 328 for the anemometer and one for the other functions.
Humidity,temp, lightning ect and receiving, sending data is handled by the second.

I like your approach. I think that it will be a real improvement on my simple first design.

We would appreciate if you can keep us updated on your progress.


So far I'm using about 13k of the 32k program space for the TX, 1-wire stuff (humidity, temperature) and serial logging. The idea of the TX was to re-use the LaCrosse base units but as I develop the prototype I'll be splitting it into modules to make it easier to maintain and to allow a clean API between modules that will allow changes to be done in a simple fashion. I've just been checking out the specs of the MPX4115A and  MS5534C barometer modules - the latter is what is used in the LaCrosse base unit - I think I'll incorporate one into the design  to round the whole thing out.


Quote

Your TXRX for 432Mhz looks good, the Arduino community also have classes to send data over radio links.

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

However fitting this to the LaCrosse base format would hardly be worth the effort.

Keep in touch.


Over the years I've written a lot of RF related stuff starting with a ham radio 9k6 modem 15 years ago using the very first AVR (the AT90S1200) up to a year ago using an Arduino hardware with HDLC modules for APRS TX and RX and KISS modem - part of the BeRTOS fork I refer to above. Google for my old callsign 'g8ecj' for other stuff.

I've just got to get my head round your 'NorthError' array and associated calculations to start the port to BeRTOS. The rest makes sense but I have found myself floundering over a couple of 'magic numbers' in the code!!

The next challenge will be to use the LCD driver I developed under BeRTOS for a receiver module based on an Arduino Nano again XD
Title: Re: Ultrasonic Anemometer
Post by: carl47 on Aug 29, 2013, 06:37 am
Quote
'magic numbers'


Yes, sorry about those I should have defined them and listed their origion.
I'm a bit slack and dont do complete explainations.

Quote
'NorthError' array


The tx/rx properties of the transducers are not symetric and they are also dependant on temperature.

Code: [Select]
int Northerror[20]; //The tof error for north-south transmit

This is my attempt to compensate for this changing error. 20 gave me the best result.
I'm not completely happy with the updating of this error correction factor.

I am reworking the project at the moment and hope to improve on this.

We have the tof difference from the envelope detector and the phase difference from the zcd detector.
In the code I only allow for updating the error when the phase difference goes through zero.
This will happen as the wind is always changing. But if you use a wind tunnel with a constant speed we may
not have a zero and the error would not be updated.

I,m also trying to recover the tof from the zcd detector and so elimating the envelope detector.
I could not do this on my first design and I still have not been able to get reliable values.
It's frustrating because the information on the tof pulse is there in the zcd signal. But least squares
on the polynomial of the pulse and everything else I try cannot give me as good a tof value as
I can get from the envelope detector method.

I'm sure my design has been improved on but no one has shared any details.

If I come up with anything I will share on this page.
Title: Re: Ultrasonic Anemometer
Post by: frackers on Oct 19, 2013, 12:31 am
Slow progress in the ultrasonics department so I've resurrected my WS2315 using the existing rain tipper and TX20 wind sensor on the Arduino. As far as I can see the code will also work for a TX23 wind sensor but since I don't have one then who knows!!

The main part of the code is at https://github.com/g8ecj/bertos/blob/g8ecj/all/boards/arduino/examples/arduino_WxTx/main.c (https://github.com/g8ecj/bertos/blob/g8ecj/all/boards/arduino/examples/arduino_WxTx/main.c) but checking out my BeRTOS repository and running the wizrda to create the WxTx example will make the complete project ready to compile with the standard avr-gcc  cross compiler on Linux.

I've documented everything in the 'main.c' source file (protocols, pinouts etc) so its one big blob rather than doing it properly as it is a bit of a hack bringing all the bits together like this.

Enjoy...
Title: Re: Ultrasonic Anemometer
Post by: carl47 on Dec 02, 2013, 08:05 am
I have just completed my new model.

The design is simpler in software, circuit design, and physical layout.

I have designed the circuit board.  4" by 3.2" to fit in eagle light.

I will check its operation and post full details within a month.

Checkout:

http://www.eetimes.com/author.asp?section_id=36&doc_id=1319266&itc=eetimes_sitedefault
Title: Re: Ultrasonic Anemometer
Post by: rkguy on Dec 02, 2013, 08:17 am
Awesome @carl47. I need to use this solid state wind sensor. I assume that it is open source still. Would it be possible to buy a circuit board from you? I have the transducers but haven't begun to attack the electronics to integrate w my arduino and I would honestly pay someone who knows this well(!) than meds around with it.
Also, I'd like to contact you about something related. Is PM the best method?

Edit: I forgot to ask what's new, so ... What's new in this design?
Title: Re: Ultrasonic Anemometer
Post by: carl47 on Dec 02, 2013, 10:31 pm
Quote
assume that it is open source

Everything I do is open source. I do it all for my own entertainment.

Quote
buy a circuit board from you

No
I will upload the .BRD file as soon as I'm sure its OK.
Most pcb production houses will produce from the .BRD file.

Quote
contact you about something related

Please post any questions in the arduino forum pages

Quote
new in this design


1. Transducers driven straight from 328.
2. Construction now "flying saucer" shape.
3. Self tuning for thresholds.
Title: Re: Ultrasonic Anemometer
Post by: superpat on Dec 06, 2013, 02:58 pm
Hi,

I have been looking for a diy ultrasonic anemometer for some time.  I came across your earlier posts about your  project, and was just about to start to learn how to build a  device, when I came across your latest post regarding a Markll version.

I am now waiting with eager anticipation for the details on your newest device.  :)

Just to whet my appetite, I don't suppose you could post a  picture of the new mechanical layout, please?

regards

Patrick




Title: Re: Ultrasonic Anemometer
Post by: carl47 on Dec 07, 2013, 04:37 am
No construction photos yet.  Have a pcb:

(http://i1038.photobucket.com/albums/a469/carl471/board_zps03dbdf5b.jpg)
Title: Re: Ultrasonic Anemometer
Post by: ilioSS on Dec 30, 2013, 12:30 pm
Hello Karl47,

At the moment some day,s leave so I started to look around on the arduino from.
You still busy.
Last may I contacted you concerning the ultrasonic anemometer.
It is laying some wher eround in a corner.
If time permist I like to cont. solving the problem.
Mean while some stainles steel sensor holders are made.
Still the function must be checked. There is a elecronical failure in the system.
I have to read all the comments in this posts. So I am informed about the latest progress.
I do understand you are launcing your mark2 version.
So for now I will cont. in problem solving. And cot in the rest of my weather station.
Kind regards,
illoSS
Title: Re: Ultrasonic Anemometer
Post by: carl47 on Jan 02, 2014, 08:02 am
Should not be long now.

Made an error in board so I'm getting a new one made and will check it first.

I modified my first board and it all seems to be working.

I want to do some more trials and then write it up.

Note "always double your estimated time"
Title: Re: Ultrasonic Anemometer
Post by: rkguy on Jan 06, 2014, 02:02 am
Quote
Note "always double your estimated time"

So true.
Does anyone have reccomendations for low cost fab shops that I can send the BRD file to?

Also, silly question, but I assume that this does not include arduino code, right? What I mean is that this device would receive a command to take a reading from a MicroP (e.g. arduino) and then will return a reading, ostensibly over serial or I2C, etc?
Title: Re: Ultrasonic Anemometer
Post by: carl47 on Jan 06, 2014, 05:19 am
I'm in australia and I used:

http://www.futurlec.com/PCBService.shtml

It took about a month(but Xmas may have been a factor).
The board is actually made in China and ships through Singapore.
Very happy with board construction.

I have heard that sparkfun.com has a good service.

To run the board you will need my arduino programs.
The output is serial data. The same as first project.
This is the last thing I'm doing.
I want to complete it soon so I can get onto my next project.

Cheers
Title: Re: Ultrasonic Anemometer
Post by: carl47 on Jan 13, 2014, 04:26 am
I'm sorry to say that the version 2 is not working properly.

The conversion from RF style to opamp amplifier has changed the dynamic of the system.
The sensor matching is now very critical.

I'm not saying that the design is flawed.
I's possible that with some more effort from me it could operate well.

However I have decided to draw a line under this project.
I feel this project has absorbed enough of my time.

I have uploaded most of the project details.
If anyone wants to try it out I will leave my circuit setup and answer
questions on this page.

Download unfinishedUAproject.zip from:

http://code.google.com/p/arduino-projects-carl47/downloads/list
Title: Re: Ultrasonic Anemometer
Post by: kuroroneo on Feb 05, 2014, 08:19 pm
Hi Carl

I have started doing your project for few weeks, There're something in your project I still don't understand.

I have a few question would help me to understand.

1.Why the envelope value should be 4000 ? , where does that value come from?

2.Why the ZCD value should be 3000 ? where does that value come form?

3.I think the untrasonic transducer send pulse for 0.64ms , but why when the pulse recieved the wavelength is about 1.2 ms (from ProjectReport page 15 ) ? I think I misunderstand something.

4. In this equation windstep = (sqrt((207.36E6 + Exts*Exts)) - 14400.0)*3.6;  why it need to multiple by 3.6 ? what is that for ?

5. In this function  float wind = (windstep * diffav)/110000.0; I don't understand about this value (110000) what is that for ? How do you get it ?

Thanks.

PS. Sorry for my poor english (It not my native language  =( )
Title: Re: Ultrasonic Anemometer
Post by: carl47 on Feb 08, 2014, 02:20 am
Hi kuroroneo

There are quite a few magic numbers in the program.

Quote
1.Why the envelope value should be 4000


4000 is the timer1 count I chose to give me the best result
Quote
2.Why the ZCD value should be 3000


3000 is the timer1 count I chose it to be less than the envelope above to give me the best result
Quote
3.I think the untrasonic transducer send pulse for 0.64ms


The output from the schmit trigger stays on after the .64ms pulse. This is caused by the ringing of the
transducer which causes the received signal to be nearly twice as long as the transmitted .64
Quote
4. In this equation windstep = (sqrt((207.36E6 + Exts*Exts)) - 14400.0)*3.6


3.6 is a scale factor to give the windspeed step as km/s
Quote
5. In this function  float wind = (windstep * diffav)/110000.0


110000 is the timer 1 count that I use to give the number of the wind step.
Its an average value that I found to give the best result.

I wish now I had specified all my magic numbers in the program.

cheers




 




Title: Re: Ultrasonic Anemometer
Post by: fairchildbrad on Feb 15, 2014, 01:56 am
Have you tried driving the transducers with 100-140 Vp-p?  Your OpAmp circuit may work better that way.  If I'm not mistaken, it appears you are trying to drive the transducers directly with 5v PWM from the Atmega.  With these waterproof transducers, they like much higher voltage in order to operate properly.
Title: Re: Ultrasonic Anemometer
Post by: carl47 on Feb 16, 2014, 06:09 am
Quote
Have you tried driving the transducers with 100-140 Vp-p?


That would be much better. However there is a problem with the multiplexer.

They have  to be connected to the sensors as well as the 100v(no suitable multiplexers).

If you use pulse transformers to drive from a lower voltage you then get the stepdown
for the receiver. This cancels out the stepup voltage.
Title: Re: Ultrasonic Anemometer
Post by: fabix68 on Jul 06, 2014, 10:21 am
Hi Carl
can I have the pcb layout of the version 1?
I would try to build it.
If I understand correctly, the version 1 is working properly.
Thank you
Title: Re: Ultrasonic Anemometer
Post by: carl47 on Jul 07, 2014, 01:57 am
I  don't have a pcb for version 1.

I'm not doing anymore work on this project.

The quickest way would be to modify the version 2 pcb.

The opamp amplifier needs to be replaced with the original
tuned amp version.
This would then be the version which did work well.
Title: Re: Ultrasonic Anemometer
Post by: lukas81 on Nov 13, 2014, 01:25 pm
Hi Carl

I found your ultrasonic anemometer project via hackaday.com about two months ago. I wanted to build one and thought there must have been someone who has done this before me... Thank you very much for sharing this.

I've built a working prototype in the mean time. I've changed quite a few things for the digital part and made some minor changes to the analog part as well but you would easily recognize it as your design.

I'll put my designs and lessons learned online soon. For now I just wanted to say thanks for sharing your great project.

Lukas
Title: Re: Ultrasonic Anemometer
Post by: lukas81 on Nov 14, 2014, 01:17 am
I finally found the time to start documenting my project and putting things online. I hope to add a post every day until I catch up with where the project stands right now. The first post can be found here:

http://soldernerd.wordpress.com/2014/11/14/arduino-ultrasonic-anemometer-part-1-getting-started/

Eagle files and the like are not online yet but if someone would like to have them right away I'm happy to send them by email.
Title: Re: Ultrasonic Anemometer
Post by: Antiath on Jun 21, 2017, 03:43 am
Same as Lukas, I started this project a little after him in 2015, following his design and yours. After a lot of hours, I have a working prototype than is (for now) quite stable and gives realistic values ( at least according to my super cheap handheld anemometer). The main circuit is done and the firmware is "usable". I just need to mount the whole instrument in it's final fixture and test it.

So a big thank to both of you for the huge amount of documentation. I learned a lot in the process.
Title: Re: Ultrasonic Anemometer
Post by: seandepagnier on Sep 24, 2017, 04:11 pm
I have read this thread with great interest.  I hope to build a working anenometer.

I found the design of carl (UltrasonicAnenometer.zip) to have very complicated electronics, and very simple software.  Maybe I am missing something, but I would like to try the opposite if it's possible.


Why not have a high speed ADC and do all the processing in software?   This would mean using few components, and make the board much easier to assemble.  Maybe the avr is too slow, but a more powerful mcu can do it?  Any thoughts on this?

I think this solution is much more powerful as you can also more closely fine tune the frequency for different conditions and wind speeds to obtain better results.   It is mentioned 1MSPS or better is needed.


As for driving the ultrasonic sensors, they claim 140v p-p but from what I can see they are driving always at low voltages.  Am I missing something?
Title: Re: Ultrasonic Anemometer
Post by: mcastle on Mar 22, 2018, 07:19 pm
Hello,

I have some problems due to transducers received signal shapes. All the transducers receives different shape signals, the lenght and amplitude varies a little bit, so this leads to unstable envelope. This makes me difficult to trigger my envelope detector exactly at the same point for all axis and direction.
How could I solve this?
Do I need to use automatic gain control to set constant amplitude for all received signals? Thank you for any help.