Arduino Ultrasonic Anemometer

_MG_1088

This page serves as a directory of all my posts related to my Arduino based Ultrasonic Anemometer.

Posts

Downloads:

38 thoughts on “Arduino Ultrasonic Anemometer”

    1. Hi Jesse

      Thank you for the flowers. I’ve had several people asking for a kit and I might well do that. But I want to do some more testing to be sure the design works reliably under various conditions…

      regards
      lukas

      Like

  1. This is very exciting, thank you again! I haven’t found the part numbers for the 40 kHz transducers … can you tell me which section it is in?
    Thanks!

    Like

    1. Hi Paul

      I’m not sure if I’ve ever mentioned the precise transducer model. But I’ve just checked my Farnell order: the transducers I’m using are Multicomp MCUSD16A40S12RO, Farnell number 2362677. They cost around USD 5 in small quantities.

      regards
      lukas

      Like

  2. hi Lukas,
    i was wondeing if you have a list of the components you used for the proyect
    Thanks

    Like

  3. Hi Carlos. Yes, there definitely is as part of the Eagle file. In Eagle, File -> Export -> BOM gets you the bill of materials. And Eagle can be downloaded for free for non-commercial use.

    Like

    1. Thank you
      It is one of the most complete works i´ve seen of this kind, really appreciate this!

      Like

  4. Ganz ausgezeichnete Arbeit! I hope you continue to delve further into the sensor side of things and discover the reason for the unsuspected small phase shift your described. This is something I’d definitely like to build myself. Do you think it is more responsive to light winds that would a traditional rotational wind cup design? I was hoping to capture very light breezes accurately as well as wind speeds of 5 MPH or more.
    If you ever decide to offer circuit boards for sale, I certainly would appreciate being notified !
    Thank you so much for sharing your efforts with such depth. It is very much appreciated.

    Like

    1. Hi Doug

      Thank you for your very encouraging comment. And yes, development will be continued and the open issues will be solved. I’ve just shipped two kits to Argentina where a reader of this blog has access to a proper wind tunel at his university. And I’m full of ideas on how this project can be improved. And once it’s running properly I’d love to sell it as a kit which would give me access to user feedback to improve it further.
      Even as it is now it works very well with low wind speeds. The problem so far has been higher wind speeds…
      Thanks again for your feedback and stay tuned.
      Lukas

      Like

      1. I wonder if you’ve given any consideration to the fact that this method of determining wind speed is subject to barometric pressure and temperature changes? Is there a way to compensate in the circuitry and program for such variations?

        Doug
        PS looking forward to a kit. 🙂

        Like

  5. Hi Doug

    Yes, the influence of temperature on the speed of sound is taken care of. The shield includes a quite accurate temperature sensor and voltage reference to measure the temperature. This temperature is then used to correct for the influence on speed of sound.

    Barometric pressure and humidity both have a very minor (compared to temperature) influence on speed of sound and therefore wind measurements. They are not corrected for at the moment.

    Like

  6. Dear Lukas,

    just reading up on two-dimensional anemometric wind speed and direction I found your blog plus the notes and software from Carl.

    Besides your two models, there is another model built by Hardy Lau in Germany. Obviously he has been doing extensive wind tunnel tests in the lab and provides some insight on the compensation he needed. For me the setup looks a lot like yours and Carls, maybe you want to contact him.

    http://www.technik.dhbw-ravensburg.de/~lau/ultrasonic-anemometer.html

    I wonder if it may makes a difference to use three transducers in a triangular setup as some of the commercial vendors do ?

    Kind regards,
    Stefan

    Like

  7. Hi,
    First of all GREAT WORK!
    But I have a question regarding som components. On the schematics for the arduino shield you have three restistors marked OPT (R15, R21 and R34). What kind of resistors is this?

    Like

  8. Hi Martin.
    Thanks for your comment. The OPT stands for optional. When drawing the schematic I thought I might want to put a resistor there (e.g. for some positive feedback around a comparator to add some more hysteris). But I don’t think I ended up using any of them so you can just leave them away.
    cheers lukas

    Like

    1. Thank you, I also found 2 “TBD” capasitators (To-Be-Determined” (C8,C13). Any values on them?

      Like

  9. I thought I looked at everything but I could not find an area that described the construction of the transmitters/receptors in the four NESW nodes of your annenometer.

    Like

    1. Hi Ray
      Are you referring to the way the transducers are kept in place physically? I don’t think i wrote much about it, true. There’s not much special about it: as I see this version as a prototype I didn’t spend too much time to find a perfect solution. I’m using plastic pipes that are made to hold electrical wires. They are cheap and readily available in 16mm diameter which means the transducers fit snuggly without having to attach them at all.
      Cheers lukas

      Like

  10. Ok I finished building a copy of your board and tested it with my waterproof transducers. I was expecting what happened but tried anyway. The received signal is almost non existant unless I put the receiver almost in contact wuth the transmitter. This is probably due to the waterproof nature of the transducers. So I can do two things :

    1) Step up the amplitude of the transmitter signal. I will test that with my signal generator ( can go up to 30 Vp-p). The arduino accepts up to 15 V, so let’s see if this changes something. I will need a good driver circuit. But I fear that the 15 Volts will damage the 74HC4052 (because the transmitted signal goes to the transmitter and also to this IC) . Not sure how I can go about it.

    2) Add amplification. I could raise the gain of the two stages or I can put more stages wich is not that encouraging because two stages already occupy quite some space on the pcb. I hope raising the gain will be enough (just have to change the LC tanks) but I’m affraid it won’t.

    Advice ?

    Like

    1. Internet references all say that waterproof sensors need voltage swing up to the specified value in the datasheets (140-160 Vp-p) in order to work. So sure, the way to go for this seems to ber a buck converter or a transformer + clamp diodes to protect the rest of the circuit from the high voltage.
      Carl used a waterproof sensor and he didn’t mention anything about that. Reading his schematics, he doesn’t even use the 8V rail to drive the sensor ( the 8V is for the amplifier circuit), just the 5V rail like us. And I don’t see any inductor on his vero board so it seems he didn’t modified the voltage. So unless he reverted back to open-type sensors like the ones you use lfaessler, I don’t understand why his device works.
      Outside, I can’t imagine an open-type sensor would work in the long run. Dust and high moisture level will inevitably make it fail.
      If waterproof = high voltage, it also means security and EMI issues…this is not pleasing :/

      Like

    2. Hi Antiath
      Thank you very much for your comment. Just a very short note for now. I’d try changing the amplification. This should be easy by just changing the gain-limiting resistors (R7 and R12 on the schematic) to a lower value like 100 ohms. this should do quite something to the amplification. if you end up at 0 ohms and still don’t have enough gain you can increase the capacitor values of C5 and C10 to maybe 1 micro (instead of 100nano). With the LC tank properly tuned this should give you plenty of amplification.
      Thanks again for trying this design and let me know how it goes.
      Lukas

      Like

      1. Ok, I finally had the time to investigate this problem. So I first tried replacing R7 and R12 by potentiometers. First lower R7 to maximum gain. Not enough. So I lower R12 and I quickly reach a saturation point, the gain won’t increase any further even tough R12 wasn’t at the lowest possible value. Frustrated, I just solder two 0 Ohms resistors to see wath happens.

        So I finally see some signal. Progress !

        First observation :
        With a 5 V square wave input in the transceiver and a 20 cm distance between the cells, I get 150 mVp-p of noise and 600 mVp-p of Signal ( so 6 dB). With 15 V square wave, I get 8 dB.

        Second observation:
        an annoying DC offset of 2.46 V ( mean of the amplified signal) . The coupling capacitor isn’t enough to filter out the DC component.

        So the gain is still not high enough, but I also get a dc offset. And addtionnaly, R7 and R12 don’t work as expected ( I used ceramic cap so it shouldn’t be the ESR of the bypass caps).

        I didn’t try changing the LC tanks as I don’t have the parts to do that.

        Like

      2. Ok correcting myself a little :

        I managed to remove th weird DC component. I was seeing it on the ZCD, just after the 100 nF coupling cap. I checked on the ENV, after the same cap and the dc part was gone…Seems like a faulty capacitor to me. I replaced the culprit and resolved the problem.

        One less issue to worry about.

        Like

      3. Ok I tried replacing the capacitors C5 and C10 like you suggested ( to 1 µF).

        Now it is VERY sensitive 😀 Maybe even too much but now I can make the analog part work. It’s a bit crazy right now, picking up all kind noise but it should be managable and I will try tempering that by radjusting the limiting resistors.

        Thanks for the suggestions 🙂

        A question now : I’m a little familiar with emitter degeneration but I’ve never used an amplifier where there is also a capacitor involved in the emitter part ( only the purely resistive type like this https://en.wikipedia.org/wiki/Common_emitter) . I tought it was just some decoupling capacitor but apparently, there’s more than that. So what’s it doing here exactly ?

        Like

Leave a comment

DIY Electronics