Ультразвуковой анемометр на двух HC-SR04

На рынке представлено огромное количество готовых решений на любой вкус и цвет. Можно приобрести даже устройства, рассчитанные на полярные условия эксплуатации.

Однако, есть у них у всех один недостаток – высокая стоимость.

Если вас интересует технология построения датчиков направления и возможность сделать что-то полезное своими руками – этот материал для вас.

Существующие способы измерения направления ветра

1.Ультразвуковой. С одной стороны – это современный и достаточно практичный метод, но он подходит скорее только для промышленной реализации. Для построения измерительного прибора необходимо иметь не только высокоточные датчики звука, но и наработать практическую базу, на основании которой можно будет оценивать скорость движения воздуха между этими датчиками и его направление.

2.Механический. По сути метод объединяет в себе большой пласт различных реализаций, но принцип у всех один – ветер сдвигает флюгер, а специальная система с требуемой точностью считывает угол поворота.

3.Для метеоизмерений могут применяться специализированные комплексы, работающие по другим принципам (лидары, содары, радары, радиозонды и др.). Они используют в своей работе радиоволны, лазеры и др.

Мы остановимся только на механическом способе, как на наиболее реальном для исполнения своими руками.

Самый практичный, простой и зарекомендовавший себя способ измерения угла – дисковый энкодер, работающий по принципу кодирования Грея.

Энкодер Грея

Процедура измерения выглядит следующим образом:

1.Диск со специальными прорезями крепится на вращающейся оси;

2.Датчики (например, пары светодиод-приемник и герконы) фиксируют положение прорезей;

3.В зависимости от положения диска относительно датчиков на их выходе формируется двоичный код, который можно однозначно декодировать в определенное направление.

Несколько изображений для наглядности.

Диск со специальными прорезями

Рис. 1.  Диск со специальными прорезями

Чертёж датчика

Рис. 2. Чертёж датчика

Другие механические способы измерения угла

Второй механический вариант определения угла – с применением резисторов. Способ подходит даже для аналоговых радиосхем. Принцип заключается в следующем:

1.В центре размещается проводник;

2.Вторым своим контактом он касается той или иной области на зафиксированной окружности (прямой контакт можно заменить герконами);

3.Каждая область сопоставляется с тем или иным номиналом резистора;

4.В зависимости от уровня тока устанавливается направление.

Этот метод отличается низкой точностью.

Третий вариант – магнитный датчик. На рынке можно найти готовые микросхемы, которые реализуют кодирование поворота в удобном формате. Единственное, что остается сделать – правильно закрепить микросхему и магнит, а также защитить ее от воздействия осадков.

Пример такого энкодера –  AS5030 (применяется 8 битное кодирование по методу Грея). Есть и другие модификации с повышенной точностью и расширенным функционалом (программируемые, непрограммируемые, с инкрементным выходом, управлением двигателями BLDC и т.д.) –  AS5035, …040, …140,   043 и др.

Технически устройство состоит из двух основных частей:

1.Самой микросхемы со встроенным энкодером,

2.И магнита.

Магнит крепится на подвижную часть, чип – на неподвижную.

Пример реализации датчика угла на AS5040

Сама схема подключения выглядит следующим образом.

Вариант печатной платы

Рис. 3. Вариант печатной платы

Конечная реализация

Рис. 4. Конечная реализация

Внешний вид устройства

Рис. 5. Внешний вид устройства

Микросхема поддерживает программирование точки отсчета. Калибровка при использовании совместно с контроллерами Picaxe будет выглядеть следующим образом:

do
   readadc10 B.3, w0    ;чтение данных с микросхемы
   pause 100
   w0 = w0 * 64 / 182   ; конвертируем показания в градусы 0 – 360
   debug
loop

Ссылки

Материалы по теме

Ранее был сделан прототип анемометра из одного ультразвукового дальномера HC-SR04. Он умел рассчитывать проекцию скорости ветра на линию между приемником и передатчиком. Для получения вектора скорости ветра на плоскости (2D) требуется вторая координата, которую мы получим, если добавим второй датчик перпендикулярно первому. В этом случае можно закрепить анемометр стационарно — отпадает необходимость использовать флюгер и как-то организовывать подвижные контакты.

Первая версия

Сказано — сделано, причем основательно.полипропилен

Из обрезков полипропиленовых труб сварил крестовину. Все датчики отпаял и удлинил проводами, которые проложил внутри труб. Расстояние между датчиками получилось 70 см. 

Код программы такой.


#include <dht.h>
#include <OneWire.h>
#include <DallasTemperature.h>
#define Trig 4
#define Echo 2
#define Trig2 8
#define Echo2 12
#define ONE_WIRE_BUS 7
#define Steps

dht DHT;

#define DHT21_PIN 0
static const float defDist  = .6985; // m
static const float defDist2 = .713; // m

// Setup a oneWire instance to communicate with any OneWire devices (not just Maxim/Dallas temperature ICs)
OneWire oneWire(ONE_WIRE_BUS);

// Pass our oneWire reference to Dallas Temperature. 
DallasTemperature sensors(&oneWire);
void setup() 
{ 
pinMode(Trig, OUTPUT);
pinMode(Echo, INPUT);
pinMode(Trig2, OUTPUT);
pinMode(Echo2, INPUT);
Serial.begin(57600); 
  // Start up the library
  sensors.begin();
Serial.println("X Distance  Tds18820  Tcalc Tdht  Hum V");
} 
unsigned long impulseTime=0; 

void loop() 
{
      // READ DATA
    //Serial.print("DHT21, \t");
    int chk = DHT.read21(DHT21_PIN);
    float DHTtemp = 10; 
    float DHThum = 50;
    switch (chk)
    {
    case DHTLIB_OK:
//        Serial.print("OK,\t");
      DHTtemp =DHT.temperature; 
      DHThum = DHT.humidity;
      break;
    default:
        Serial.print("DHT Error,\t");
        break;
    }

    // DISPLAY DATA
//    Serial.print(DHThum, 1);
//    Serial.print(",\t");
    //Serial.println(DHTtemp, 1);

    sensors.requestTemperatures(); // Send the command to get temperatures DS18820

  float dist = 0;
  float dist2 = 0;
  float temp = sensors.getTempCByIndex(0); //DHTtemp;

unsigned long impulseTime=0; 
unsigned long impulseTime2=0; 
int N=250;
for (int i = 0; i <N; i++) { 
digitalWrite(Trig, HIGH); delayMicroseconds(10); digitalWrite(Trig, LOW); 
impulseTime +=pulseIn(Echo, HIGH); delay(50); 
digitalWrite(Trig2, HIGH); delayMicroseconds(10); digitalWrite(Trig2, LOW); 
impulseTime2 +=pulseIn(Echo2, HIGH); delay(50); 
} 
//float P = 101325; 
float P = 761 * 133.3; 
float M = (28.95-10.934*DHT.humidity/100*(133.3*4.579*exp(17.14*temp/(235.3+temp)))/P)/1000; 
float R= 8.31447; float X = 1.4 * R/M ; //X = 287; 
float c = sqrt( X *(temp+273.15)); 
dist = impulseTime * c / 1e6 /N; 
dist2 = impulseTime2 * c / 1e6 /N; 
float Speed_of_sound = defDist*N/impulseTime * 1e6; 
float Speed_of_sound2 = defDist2*N/impulseTime2 * 1e6; 
float Tcalc = sq(Speed_of_sound)/X - 273.15; 
float v = c- Speed_of_sound; 
float v2 = c- Speed_of_sound2; float v3 = sqrt(sq(v) + sq(v2)); 
int wd = int(atan(-v/v2)*180/3.1416); 
if (v>0) {wd+=90;} else {wd+=270;}

//Serial.println("X Distance  Tds18820  Tcalc Tdht  Hum V");
//Serial.println(String(impulseTime) + char(9) + String(impulseTime2));
Serial.println(String(impulseTime) + char(9) + String(impulseTime2) + char(9) + String(dist, 5) + char(9) + String(dist2, 5) + char(9) + String(temp) + char(9) + String(Tcalc) + char(9) + String(DHTtemp)+ char(9) + String(DHThum) + char(9) + String(v) + char(9) + String(v2) + char(9) + String(v3) + char(9) + String(wd));

}

Два последних числа дают искомую горизонтальную скорость и направление ветра. Направление рассчитывается в виде азимута к направлению на север и дается в градусах. Вращение по часовой стрелке.

Увы, результаты меня разочаровали.
протокол
При усреднении в 25 измерений, показания в спокойном воздухе прыгают в среднем до 1.5 м/с, при этом измерения выдаются примерно раз в сек. Если усреднить в 10 раз больше показаний ситуация улучшается, но кардинально проблему не решает. К тому же судя по графику скоростей в двух осях, одна пара датчиков фонит существенно больше другой. диаграмма скоростей по осямСкорее всего дело в проводах, которыми я удлинил датчики. Придется переделывать.

Вторая версия

Есть еще одна причина все переделать. Как отмечалось в первой теоретической части, скорость звука изменится на 1 м/с при изменении температуры примерно на 1.5 °С. Погрешности измерений по обоим осям складываются. Нужно понимать, что порывы теплого или холодного воздуха могут существенно исказить показания такого анемометра. Нет смысла в показаниях 4 м/с при легком дуновении теплого ветерка. диаграмма температуры и скорости Из диаграммы натурного эксперимента видно, что даже медленное изменение температуры вызывает дрейф измеренной скорости, а быстрое изменение температуры на 1 градус скачком поменяло измеренную скорость ветра на 1.5 м/с, в то время как датчик температуры медленно отрабатывает это изменение. Важно заметить, что эксперимент этот проходил прямо у меня на столе и изменение температуры было естественным — я ничего не трогал и искусственно ничего не нагревал.

И тут на помощь приходит тот же принцип, что и при измерении расстояния. Если помним, датчики у оригинального HC-SR04 расположены вместе, поэтому результаты не зависят от наличия ветра. Если измерить скорость звука на известном расстоянии сначала в одном направлении, а затем в другом, то разница этих двух показаний, деленная пополам и будет искомой скоростью ветра в проекции на эту ось. При этом, изменение температуры в диапазоне ±25°С дает погрешность ±4%, что абсолютно не критично и мы можем обойтись вообще без термометра. Да и зачем нам термометр? Если мы знаем время прохождения сигнала в обоих направлениях, то по формулам из прошлой статьи мы легко вычислим температуру, а значит сможем уточнить скорость ветра.
Есть лишь одна маленькая загвоздка — придется использовать два HC-SR04 на одной оси. В промышленных образцах датчики попеременно выполняют роль приемника и передатчика. В нашем случае для этого придется подключить пищалки напрямую к arduino и программно генерировать 8 импульсов 40 кГц на одной, после чего вычленять их из другой. Зная про определенные сложности на этом пути, мне представляется проще купить еще 2 датчика по 55 рублей и попытаться обойтись малой кровью. Этим я займусь в следующий раз. А пока на двух датчиках сделаю измерение скорости ветра по одной оси и измерение температуры в такой конфигурации. Главная проблема здесь убрать помехи, которые дают такой большой разброс показаний в спокойном воздухе.

Конструкция

Вооружившись паяльником конструкция была беспощадно распаяна на составляющие. Новую версию решил не делать так основательно, а зря. Никогда не угадаешь, где найдешь, где потеряешь. Получилось как-то так.
прототип 2 датчика вместе
Во-первых, приемник расположил как можно ближе к плате, а передатчик удалил всего лишь на 20 см. Второй комплект перевернул на 180 градусов и пищалки скрепил попарно изолентой. Чем точнее соблюсти соосность обоих пар датчиков, тем лучше. В идеале мы должны получить абсолютно идентичные показания скорости прохождения сигнала в обоих направлениях в спокойном воздухе. Натурные испытания подтвердили нашу теорию. В такой конфигурации получается мало помех и весьма точные показания независимо от температуры, что подтверждается графиком ниже.
диаграмма температур и скорости v2
Вначале я пробовал просто дуть по направлению от синей пары к черной. Моих легких явно недостаточно. Но любопытный факт — воздух в легких успел нагреться на 1°, что раньше вызвало бы скачок скорости на 1.5 м/с, т.к. DS18B20 просто ничего не заметил. Отметим, что мои легкие способны дать всего лишь 0.5 м/с. Дальше я включил большой напольный вентилятор и направил все также от синего к черному. Видно как пошел более прохладный воздух из глубины комнаты и даже DS18B20 начал отрабатывать это снижение, но теперь его значения не используются для расчета скорости. Сделал открытие, что мой вентилятор дует со скоростью около 2 м/с. Дальше в течение паузы видим постепенное увеличение температуры и отличную корреляцию между рассчитанной и измеренной температурой. В конце поставил вентилятор с другой стороны и получил 2 м/с в обратном направлении с падением температуры. Ура, товарищи, это работает!

Про анемометры:  Variable Area Flow Meters Working Principle - InstrumentationTools

Программа расчета скорости ветра


#include <dht.h>
#include <OneWire.h>
#include <DallasTemperature.h>
#define Trig 4         // HC-SR04 №1
#define Echo 2
#define Trig2 8        // HC-SR04 №2
#define Echo2 12
#define ONE_WIRE_BUS 7 // DS18B20
#define Steps

dht DHT;

#define DHT21_PIN 0    // DHT21
static const float defDist  = .2121; // m
static const float defDist2 = .2121; // m
float Tcalc = 0;

// Setup a oneWire instance to communicate with any OneWire devices (not just Maxim/Dallas temperature ICs)
OneWire oneWire(ONE_WIRE_BUS);

// Pass our oneWire reference to Dallas Temperature. 
DallasTemperature sensors(&oneWire);
void setup() 
{ 
pinMode(Trig, OUTPUT);
pinMode(Echo, INPUT);
pinMode(Trig2, OUTPUT);
pinMode(Echo2, INPUT);
Serial.begin(57600); 
  // Start up the library
  sensors.begin();
Serial.println("X Distance  Tds18820  Tcalc Tdht  Hum V");
} 
unsigned long impulseTime=0; 

void loop() 
{
  float temp = 0;
  float DHTtemp = 0; 
  float DHThum = 50;
  // READ DHT DATA
  int chk = DHT.read21(DHT21_PIN);
  if (chk == DHTLIB_OK) 
    {
      DHTtemp =DHT.temperature; 
      DHThum = DHT.humidity;
    }
  if (sensors.getDeviceCount() > 0)
    {
      sensors.requestTemperatures(); // Send the command to get temperatures DS18820
      temp = sensors.getTempCByIndex(0); //DHTtemp;
    }
  float dist = 0;
  float dist2 = 0;

  unsigned long impulseTime=0; 
  unsigned long impulseTime2=0; 
  int N=50;
  for (int i = 0; i <N; i++)
  {

  digitalWrite(Trig, HIGH); 
  delayMicroseconds(10);
  digitalWrite(Trig, LOW);
  impulseTime +=pulseIn(Echo, HIGH);
  delay(50);
  digitalWrite(Trig2, HIGH); 
  delayMicroseconds(10);
  digitalWrite(Trig2, LOW);
  impulseTime2 +=pulseIn(Echo2, HIGH);
  delay(50);
  
  }

  //float P = 101325;
  float P = 761 * 133.3;
  float M = (28.95-10.934*DHThum/100*(133.3*4.579*exp(17.14*Tcalc/(235.3+Tcalc)))/P)/1000;  //M = 0.02895;
  float R= 8.31447;
  float X = 1.4 * R/M ;     
  Tcalc = sq((defDist+defDist2)*N/(impulseTime+impulseTime2) * 1e6)/X - 273.15;
  float c = sqrt( X *(Tcalc+273.15));
  dist = impulseTime * c / 1e6 /N;
  dist2 = impulseTime2 * c / 1e6 /N;

  float Speed_of_sound = defDist*N/impulseTime * 1e6;
  float Speed_of_sound2 = defDist2*N/impulseTime2 * 1e6;

  float v = (Speed_of_sound-Speed_of_sound2)/2;
  //float v2 = c- Speed_of_sound2;
  //float v3 = sqrt(sq(v) + sq(v2));
  //int wd = int(atan(-v/v2)*180/3.1416);
  //if (v>0) {wd+=90;} else {wd+=270;}

  Serial.println(String(impulseTime) + char(9) + String(impulseTime2) + char(9) + String(dist, 5) + char(9) + String(dist2, 5) + char(9) 
  + String(temp) + char(9) + String(Tcalc) + char(9) + String(DHTtemp)+ char(9) + String(DHThum)+ char(9) + String(M,5) + char(9) + String(v));

}

Программа будет работать и без датчиков DHT-21 и DS18B20. DS18B20 для вычислений в этом коде нигде не задействован — только выводится в терминал как эталон. Без датчика влажности температура будет рассчитываться как для воздуха с 50% влажностью. На практике это вносит очень маленькую погрешность. На измерения скорости ветра эти датчики вообще не оказывают никакого влияния.

Собственно это все что можно выжать из двух HC-SR04. Для получения вектора скорости ветра на плоскости нужно добавить еще 2 датчика перпендикулярно первым и по формулам первой версии получить полную скорость и направление. Этим займусь как только приедут заказанные дополнительные датчики.

P.S.

Датчики давно приехали, конструкцию переделывал еще 2 раза и в конце концов он заработал как надо, но до крыши этот ультразвуковой анемометр так и не доехал, поэтому до сих пор продолжения и не написал, хотя идея рабочая.

P.P.S. 2018

По многочисленным просьбам выкладываю итоговый скетч, который не требует никаких библиотек (кроме стандартной EEPROM) и работает с 4 датчиками. Код со всякими вкусностями типа встроенной калибровки и сохранением калибровочных значений в энергонезависимую память. И самое главное. Описанная выше проблема с погрешностями по одной из осей была связана не с проводами, а с работающими в одной комнате с датчиками импульсными блоками питания компьютера, монитора и т.п. (их схема преобразования работает на близкой частоте 40 кГц). Я остановился на проблеме выноса датчика на улицу подальше от помех (с передачей данных по блютус). В остальном это работает. Это версия для распаянных датчиков, но есть способ не распаивать. Если вернусь к проекту — реализую.
Для этого кода неважно какое расстояние между датчиками. Нужно поместить устройство в безветренное пространство (и без импульсных помех) и через терминал несколько раз отдать 2 команды:

t21.5
u

Первая — текущая температура по эталонному термометру (любой уличный), вторая — говорит контроллеру что сейчас скорость ветра 0. Согласно этим данным он вычислит расстояние между датчиками и запишет их в EEPROM. Все дальнейшие измерения будут отталкиваться от этих значений.


// WindSpeed v.4 - Анемометр
// Copyright  Evgeny Istomin gena@regimov.net, blog.regimov.net
// Используются 4 датчика HC-SR04. Приемник и передатчик разнесены на противоположные концы крестовины
// На схеме изображено положение приемников для правильного расчета направления и силы ветра
//                    HC-SR04 №1
//                    Север (0 гр)
//                         o
//                         |
//                         |
//   HC-SR04 №2    o-------|---------o  HC-SR04 №4
//   Запад (270гр)         |           Восток (90 гр)
//                         |
//                         o
//                    HC-SR04 №3
//                    Юг (180 гр)
// при выборе материала крестовины руководствоваться http://temperatures.ru/pages/temperaturnyi_koefficient_lineinogo_rasshireniya
// лучший выбор материала - труба инвар 36H, но и обычное железо вполне годится :-)

#define DEFINE_DISTANCE 0.22  // примерное расстояние между датчиками, измеренное линейкой, в метрах.
#define MES_PAUSE       90     // Пауза между измерениями для затухания отражений. В реальности нужно не менее 1, мс.
#define MES_AVERAGE     8     // сколько измерений усреднять для температуры. 
#define PRINT_PERIOD    500  // период вывода измерений в терминал, ms


#include <EEPROM.h>
#define FALSE 0
#define TRUE  1
#define Echo1 2
#define Echo2 3
#define Echo3 8
#define Echo4 5
#define Trig1 6        // HC-SR04 №1
#define Trig2 7        // HC-SR04 №2
#define Trig3 4        // HC-SR04 №3
#define Trig4 9        // HC-SR04 №4
#define Pow1  10
#define Pow2  11
#define Pow3  12
#define Pow4  13

#define T_ABS       273.15    // температура абсолютного нуля https://ru.wikipedia.org/wiki/%D0%90%D0%B1%D1%81%D0%BE%D0%BB%D1%8E%D1%82%D0%BD%D1%8B%D0%B9_%D0%BD%D1%83%D0%BB%D1%8C_%D1%82%D0%B5%D0%BC%D0%BF%D0%B5%D1%80%D0%B0%D1%82%D1%83%D1%80%D1%8B
#define PRINT_LOOP  PRINT_PERIOD/(4*(MES_PAUSE)) // сколько полных циклов пропустить перед выводом измерений в терминал

float defDist1 = DEFINE_DISTANCE;
float defDist3 = DEFINE_DISTANCE;
float defDist2 = DEFINE_DISTANCE;
float defDist4 = DEFINE_DISTANCE;
float Tcalc = 0;            // температура воздуха (расчетная)
const float DHThum = 50;    // % влажности
float M = 0.02895;          // молярная масса кг/моль https://ru.wikipedia.org/wiki/%D0%9C%D0%BE%D0%BB%D1%8F%D1%80%D0%BD%D0%B0%D1%8F_%D0%BC%D0%B0%D1%81%D1%81%D0%B0
const float R = 8.31447;    // Универса́льная га́зовая постоя́нная Дж/(моль*К) https://ru.wikipedia.org/wiki/%D0%A3%D0%BD%D0%B8%D0%B2%D0%B5%D1%80%D1%81%D0%B0%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F_%D0%B3%D0%B0%D0%B7%D0%BE%D0%B2%D0%B0%D1%8F_%D0%BF%D0%BE%D1%81%D1%82%D0%BE%D1%8F%D0%BD%D0%BD%D0%B0%D1%8F
const float P = 761 * 133.3;// давление в Па. 101325 на уровне моря
float X = 1.4 * R / M ;
float c = sqrt( X * (Tcalc + T_ABS)); // скорость звука м/с https://ru.wikipedia.org/wiki/%D0%A1%D0%BA%D0%BE%D1%80%D0%BE%D1%81%D1%82%D1%8C_%D0%B7%D0%B2%D1%83%D0%BA%D0%B0
float impulseTime1 = defDist1 / c;
float impulseTime2 = defDist2 / c;
float impulseTime3 = defDist3 / c;
float impulseTime4 = defDist4 / c;
unsigned char count = 0;    // счетчик циклов

///////////////////////////////////////////////////////////////////////////////////////////////////////////////
// простой фильтр-усреднитель
float filterA(float y1, float y)
{
  return  ((MES_AVERAGE - 1) * y1 + y) / MES_AVERAGE;
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
// измеряем задержку прохождения звука между датчиками, сек
float measument(unsigned char Trig, unsigned char Echo, unsigned char Pow) {
  float y;
  digitalWrite(Pow, HIGH);
  delay(MES_PAUSE);
  digitalWrite(Trig, HIGH);
  delayMicroseconds(10);
  digitalWrite(Trig, LOW);
  y =  pulseIn(Echo, HIGH);
  if (count > PRINT_LOOP) Serial.print(String(y, 0) + char(9));
  digitalWrite(Pow, LOW);
  return y * 1e-6;
};
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
// запоминаем в flash-памяти расстояния между датчиками
void StoreDefDist()
{
  EEPROM.put(0, defDist1);
  EEPROM.put(1 * sizeof(float), defDist2);
  EEPROM.put(2 * sizeof(float), defDist3);
  EEPROM.put(3 * sizeof(float), defDist4);
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
// читаем из flash-памяти расстояния между датчиками
float GetDefDist(int adress)
{
  float dd;
  EEPROM.get(adress, dd);
  if (dd <= 0) dd = DEFINE_DISTANCE;
  return dd; 
} /////////////////////////////////////////////////////////////////////////////////////////////////////////////// 
// расчет скорости звука в зависимости от температуры, давления и влажности 
void GetC(float t) { 
  M = (28.95 - 10.934 * DHThum * 0.01 * (133.3 * 4.579 * exp(17.14 * t / (235.3 + t))) / P) / 1000; 
  X = 1.4 * R / M ; 
  c = sqrt( X * (t + T_ABS)); 
} /////////////////////////////////////////////////////////////////////////////////////////////////////////////// 
void setup() { 
  pinMode(Pow1, OUTPUT); 
  pinMode(Pow2, OUTPUT); 
  pinMode(Pow3, OUTPUT); 
  pinMode(Pow4, OUTPUT); 
  pinMode(Trig1, OUTPUT); 
  pinMode(Trig2, OUTPUT); 
  pinMode(Trig3, OUTPUT); 
  pinMode(Trig4, OUTPUT); 
  pinMode(Echo1, INPUT); 
  pinMode(Echo2, INPUT); 
  pinMode(Echo3, INPUT); 
  pinMode(Echo4, INPUT); 
  digitalWrite(Pow1, HIGH); 
  digitalWrite(Pow4, HIGH); 
  digitalWrite(Pow3, HIGH); 
  digitalWrite(Pow2, HIGH); 
  defDist1 = GetDefDist(0); // читаем из flash-памяти расстояния между датчиками 
  defDist2 = GetDefDist(1 * sizeof(float)); 
  defDist3 = GetDefDist(2 * sizeof(float)); 
  defDist4 = GetDefDist(3 * sizeof(float)); 
  Serial.begin(57600); 
  while (!Serial) { 
  ; // wait for serial port to connect. Needed for native USB port only 
  } 
  Serial.println("impT1\timpT3\timpT2\timpT4\tdist1\tdist3\tdist2\tdist4\tTcalc\tv1\tv2\tWD\tv3 " + String(PRINT_LOOP)); 
} 
/////////////////////////////////////////////////////////////////////////////////////////////////////////////// 
void loop() { 
  // период измерений = 1 / ( 4e-3 * (MES_PAUSE + 1)) 
  impulseTime1 = measument(Trig1, Echo1, Pow1); 
  impulseTime3 = measument(Trig3, Echo3, Pow3); 
  impulseTime2 = measument(Trig2, Echo2, Pow2); 
  impulseTime4 = measument(Trig4, Echo4, Pow4); 
  //if (count > MES_AVERAGE) Serial.print(String(impulseTime1*1e6) + char(9));

  Tcalc = filterA(Tcalc, sq((defDist2 + defDist4 + defDist1 + defDist3) /
                            (impulseTime1 + impulseTime3 + impulseTime2 + impulseTime4) ) / X - T_ABS);
  if ((Tcalc > 70) | (Tcalc < -50)) Tcalc = 0;

  GetC(Tcalc);
  float Speed_of_sound1 = defDist1 / impulseTime1 ;
  float Speed_of_sound2 = defDist2 / impulseTime2 ;
  float Speed_of_sound3 = defDist3 / impulseTime3 ;
  float Speed_of_sound4 = defDist4 / impulseTime4 ;

  float v1 = ((Speed_of_sound3 - Speed_of_sound1) / 2); 
  float v2 = ((Speed_of_sound2 - Speed_of_sound4) / 2); 
  float v3 = sqrt(sq(v1) + sq(v2));
  int wd = int(atan(v2 / v1) * 180 / 3.1416);
  if (v1 < 0) {
    wd += 180;
  } else if (v2 < 0) { 
    wd += 360; 
  } 
  if (count > PRINT_LOOP) {
    Serial.println(
      String(c, 5) + char(9) + String(Tcalc) + char(9) + String(v1) + char(9)
      + String(v2) + char(9) + String(wd)   + char(9) + String(v3)
    );
    count = 0;
  }

  while (Serial.available() > 0) {
    char inCh = Serial.read();
    // установка температуры. формат команды: t21.5
    if (inCh == 't') {
      String a = Serial.readString();
      Tcalc = a.toFloat();
      GetC(Tcalc);
    }
    // u - юстировка (установка на 0). формат команды: u
    if ((inCh == 't') | (inCh == 'u')) {
      defDist1 = impulseTime1 * c ;
      defDist2 = impulseTime2 * c ;
      defDist3 = impulseTime3 * c ;
      defDist4 = impulseTime4 * c ;
      StoreDefDist();
    }
  }
  count++;
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////

Простите, ваш браузер не прошел проверку.

Error Code: 200 OK

2 Схемы

Принципиальные электросхемы, подключение устройств и распиновка разъёмов

Ультразвуковой анемометр на двух HC-SR04

Анемометр своими руками

Ультразвуковой анемометр на двух HC-SR04

Анемометр – прибор для измерения скорости ветра. Классический чашечный анемометр представляет собой чисто механический прибор, способный измерять скорость ветра в диапазоне от 2 до 20 м/с. Анемометр просто подсчитывает количество оборотов крыльчатки. Для определения скорости ветра надо отмерить количество оборотов за некоторый промежуток времени, например 30 с, а затем рассчитать количество делений которые проходит стрелка анемометра за 1 с. После этого для определения скорости ветра следует воспользоваться графиком.

Ультразвуковой анемометр на двух HC-SR04

Сконструировать его аналог проще всего на основе маломощного электромотора, например ДМ-03-3АМ 3 91, который выступает в роли генератора. Четырехлопастная крыльчатка анемометра взята готовая, приобретена на Aliexpress примерно за 1 доллар.

Ультразвуковой анемометр на двух HC-SR04

Диаметр крыльчатки 10 см, а высота 6 см.

Ультразвуковой анемометр на двух HC-SR04

Электромотор располагается в корпусе, сделанном из емкости для холодной сварки, в крышке которой прорезано отверстие для вала электродвигателя и ведущих от двигателя проводов.

Ультразвуковой анемометр на двух HC-SR04

К электродвигателю подключен диодный мост VD1 собранный на диодах Шоттки 1N5817. На выходе диодного моста подключен электролитический конденсатор C1 1000 мкФ х 16 В.

Схема подключения анемометра

Ультразвуковой анемометр на двух HC-SR04

Диоды Шоттки выбраны из-за того, что скорость вращения крыльчатки, в обычных условиях (если нет урагана) не очень велика. При скорости ветра около 6 м/с, на выходе прибора появляется напряжение около 0,5 В. В таких условиях рационально минимизировать потери на всех элементах схемы. По этой же причине в качестве соединительных проводов используются проводники избыточно большого сечения.

Ультразвуковой анемометр на двух HC-SR04

К выводам выпрямителя можно подключить любой вольтметр постоянного тока на 2 В. С его ролью отлично справляется мультиметр. Хотя использование отдельного стрелочного прибора позволяет непосредственно градуировать шкалу в скорости ветра.

Ультразвуковой анемометр на двух HC-SR04

Так как устройство планировалось эксплуатировать на улице диодный мост был залит в эпоксидную смолу. Как оказалось конденсатор был взят избыточно емкий так, что быстрые перепады напряжения и соответственно, порывы ветра прибор зафиксировать не может. Автор обзора Denev.

Про анемометры:  Счетчики газа и воды Sensus - огромный выбор по лучшим ценам

Здравствуйте. А зачем устанавливать диодный мост и тем самым иметь потери? Разве микродвигатель выдает на клеммах не постоянный ток? За конденсатор на 47-100 мкФ согласен, — для сглаживания показаний при резких порывах ветра. А далее через резистивный делитель можно подать сигнал на стрелочную головку вольтметра, например, на 100 мкА.

Источник

Детский мир

Ультразвуковой анемометр на двух HC-SR04Анемометр – это измерительный прибор для определения скорости ветра. Сегодня мы с вами сделаем этот прибор для измерения скорости ветра самостоятельно. Наш самодельный анемометр очень прост в изготовлении, но вместе с тем, скорость ветра он измеряет не хуже, чем настоящий анемометр. Вот как ты можешь сделать самодельный анемометр.

Для того чтобы сделать самодельный анемометр нам понадобится

• Трубочка для коктейля, шампур или что-либо подобное

• Хлопчатобумажная швейная нитка или нейлоновая рыболовная леска

• Мяч для большого тенниса стандартного веса

Что нужно делать, чтобы получился самодельный анемометр

1. Иголкой проделай в теннисном мяче два крошечных отверстия одно напротив другого. Проще всего это сделать, нагрев кончик иглы на огне.

2. Продень швейную нитку или рыболовную леску сквозь мячик, оставив с одной стороны, примерно сорок пять сантиметров. Крепко привяжи ее и отрежь излишнюю длину.

3. Привяжи второй конец лески к палочке и обмотай ее ниткой, пока расстояние между палочкой и верхом мяча не достигнет тридцать сантиметров.

4. С помощью клейкой ленты прикрепи палочку к транспортиру. Нитка должна свисать с его наружной стороны из центральной точки.

5. Чтобы измерить скорость ветра, расположи транспортир в направлении ветра. Держи его за углы как можно дальше от себя. Нитка не должна касаться транспортира. При нулевой скорости ветра нитка будет висеть прямо вниз вдоль отметки девяносто градусов. Когда подует ветер, сними показания градусов и затем проверь по таблице скорость ветра.

Ультразвуковой анемометр на двух HC-SR04

Ультразвуковой анемометр на двух HC-SR04

Мы с вами провели очередной опыт и на этот раз измерили скорость ветра, которая постоянна в регионе, где вы проживаете. Проводить различные опыты и эксперименты очень интересно, увлекательно и познавательно. Особенно для таких любознательных мальчиков и девочек, как вы. Вы можете провести и другие опыты по различным направлениям и предметам. Например, очень интересно будет узнать, как же ведут себя муравьи в своей колонии, что делают под землей черви, как можно вырастить собственный кристалл или извлечь ДНК, как сделать самому электромагнит, научится ходить по воде, сконструировать свой телескоп для наблюдения за звездами, построить самодельный компас и многое, многое другое.

Источник

Самая простая схема. Анемометр из почти подручных средств Измеритель направления ветра своими руками

Анемометр – прибор, предназначенный для измерения скорости воздушного (газового) потока. Ниже приводится авторизованный сокращенный пересказ статьи о том, как можно сделать самодельный анемометр из электрического моторчика. Оригинал статьи размещен на этом сайте. .

Если вы собираетесь в своем хозяйстве использовать ветровой генератор, вам потребуются для первоначальной оценки узнать ветровую обстановку на месте, где предполагается установка ветряка. Это даст вам исходную, базовую оценку, какой мощности ветряк и генератор вы можете построить. Коммерческие анемометры достаточно дороги, поэтому можно сделать анемометр самостоятельно. В качестве лопастей анемометра прекрасно подходят половинки пластиковых пасхальных яиц.

Еще нам потребуется небольшой бесщеточный электродвигатель на постоянных магнитах. Основной критерий выбора — минимальное сопротивление подшипников на валу двигателя. Так как ветер может быть весьма слабый и из-за трения он не сможет провернуть вал двигателя. В данном случае я использовал двигатель от неисправного старого жесткого диска. (Такие диски можно очень дешево купить на интернет аукционах, развалах местного радиорынка или магазинах и мастерских, занимающихся ремонтом и продажей компьютеров. сайт ). Впрочем, конструкция анемометра понятна из фотографий.

Ультразвуковой анемометр на двух HC-SR04

Такой двигатель представляет собой 12 катушек, расположенных на статоре и ротор, на котором находится постоянный магнит. Для управления таким двигателем используются специальные контроллеры и драйверы. Но если начать вращать ротор, то на катушках начнут наводиться электрический ток. Причем частота этого тока будет, естественно, напрямую связана с частотой вращения ротора. А она, в свою очередь, зависит от скорости ветра. Именно эти факты мы и будем использовать при построении самодельного анемометра.

Основная трудность при строительстве — это сделать исключительно сбалансированный ротор анемометра. Сам двигатель установлен на массивном основании, а на его ротор насажен диск из толстого пластика. Из пластиковых яиц мы вырезаем 3 совершенно одинаковых полусферы. С помощью стальных стержней или шпилек мы закрепляем полусферы на диске, тщательно разметив его на сектора по 120 градусов. Тщательная балансировка выполняется в помещении, где нет никакого движения ветра при горизонтальном положении оси анемометра. Подгонка веса производится при помощи надфилей. Ротор должен останавливаться в любом положении, а не в одном и том же.

Ультразвуковой анемометр на двух HC-SR04

Поскольку мы используем совершенно случайный электродвигатель и самодельный ветряк, мы совершенно не знаем, как он будет взаимодействовать с ветром. Нам придется калибровать наш анемометр самостоятельно. И для этого нам потребуется сделать простейший частотомер. Он будет преобразовывать частоту на его входе в напряжение или ток. Схемы таких частотомеров можно найти в журналах для радиолюбителей. Самый простейший такой преобразователь — это обычный интегратор (НЧ-фильтр), состоящий из диода и конденсатора. На выходе мы используем стрелочный миллиамперметр. (Примерные схемы простого частотомера см на оригинале статьи) .

Если вы используете какой либо усилитель в схеме частотомера, и питаете его от батарейки, вы должны понимать, что снижение ее напряжение могут оказывать влияние на показания прибора.

Ультразвуковой анемометр на двух HC-SR04

Калибровать самодельный анемометр лучше всего с помощью автомобиля. Правда потребуется какая то мачта, что бы анемометр не попадал в зону возмущенного воздуха, создаваемую автомобилем. Иначе его показания будут сильно искажены. Да и сам спидометр автомобиля проверяют с помощью GPS-навигатора, показывающего истинную скорость автомобиля.

Для калибровки выбирают безветренный день. Тогда калибровку можно произвести быстро. Если же дует какой либо ветер, то придется довольно долго ездить туда и обратно по дороге, что бы скорость ветра сначала прибавлялась в скорости движения, а затем вычиталась. И придется вычислять какие то средние значения. Да еще и ветер при этом не должен меняться. Это сложно и муторно. Поэтому лучше дождаться штиля и при движении по прямой дороге быстро откалибровать анемометр. Учтите, что спидометр нам будет показывать км/час, а скорость ветра нас интересует в м/сек. И соотношение между ними — 3,6. Т.е. показания спидометра надо делить на 3,6. Если автомобиль едет со скоростью 40 км/час, то значит скорость ветра, обдувающего анемометр равна 11,12 м/сек. При калибровке удобно использовать диктофон. Вы просто надиктовываете показания спидометра и прибора, а дома, в спокойной обстановке сможете сделать новую шкалу для своего анемометра.

Ультразвуковой анемометр на двух HC-SR04

Теперь, располагая анемометром, мы сможем собрать весьма достоверную информацию о ветровой обстановке в зоне будущей работы ветряка. И это позволит нам сделать правильный выбор и в плане конструкции и типа ветряка, а также мощности генератора.

(пересказ Константина Тимошенко).

Ультразвуковой анемометр на двух HC-SR04

Сделав своими руками очень простое приспособление и используя это приложение вы получите настоящий анемометр для измерения скорости ветра или потока воздуха в вентиляционной системе. Можно выбрать конструкцию анемометра которая будет лучше соответствовать вашим требованиям.

Определение скорости ветра основано на измерении скорости вращения магнита магнетометром телефона. Для каждой конструкции анемометра определена зависимость скорости вращения от скорости потока воздуха. Эти зависимости можно редактировать.

Вы можете усовершенствовать предложенные конструкции или сделать свою и откалибровать её.

Чтобы выбрать единицы измерения (m/s, km/h, ft/s, mph, knots, Bft, Hz (оборотов в секунду), RPM (оборотов в минуту)) или среднее значение («Avg1» — последнее значение, «Avg3» и «Avg7» — среднее значение) нажмите на семисегментный дисплей.

Не пренебрегайте защитным чехлом для телефона.

«Уличный» анемометр

Ультразвуковой анемометр на двух HC-SR04

Ультразвуковой анемометр на двух HC-SR04

Если нужно измерять скорость ветра на открытом воздухе, то этот тип лучше всего подойдет для этого. На изменения не влияет направление ветра (крыльчатый анемометр) и крыльчатку не унесет сильный порыв ветра («Чувствительный» анемометр).

Технические характеристики:
Диапазон измерения от 0.5 м/с до 15 м/с.
Точность 0.5 м/с.

Ультразвуковой анемометр на двух HC-SR04

Для изготовления анемометра нужно вырезать из алюминиевой банки квадрат размером 3х3 дюйма (7.6х7.6 см).

Ультразвуковой анемометр на двух HC-SR04

Ультразвуковой анемометр на двух HC-SR04

Ультразвуковой анемометр на двух HC-SR04

Ультразвуковой анемометр на двух HC-SR04

На получившимся листе нужно сделать разметку.

Ультразвуковой анемометр на двух HC-SR04

Ультразвуковой анемометр на двух HC-SR04

Сделать разрезы ножницами до меток.

Ультразвуковой анемометр на двух HC-SR04

Ультразвуковой анемометр на двух HC-SR04

Очень аккуратно придать нужную форму. Если крыльчатка сразу не принимает нужную форму, то она может выровняться после проделывания отверстия в центре.

Ультразвуковой анемометр на двух HC-SR04

Ультразвуковой анемометр на двух HC-SR04

Ультразвуковой анемометр на двух HC-SR04

Ультразвуковой анемометр на двух HC-SR04

Ультразвуковой анемометр на двух HC-SR04

Все острые углы нужно отрезать. Это нужно делать так чтобы отрезанный угол не попал кому-нибудь в глаз.

Ультразвуковой анемометр на двух HC-SR04

Ультразвуковой анемометр на двух HC-SR04

Крыльчатка прикручивается винтом к стержню шариковой ручки. Внутренний диаметр стержня может очень сильно различаться. Поэтому трудно написать какой размер винта подойдет. На фото используется винт с размером резьбы 2×6 мм. Головка винта должна быть плоской (потайной), потому что на ней должен хорошо лежать магнит. Предпочтителен шлиц винта Pozidriv (PZ), т.к. такой шлиц нужен в другой конструкции анемометра.

Ультразвуковой анемометр на двух HC-SR04

Ультразвуковой анемометр на двух HC-SR04

Вместо винта можно использовать очень маленькие шурупы, гвоздики, или даже приклеить крыльчатку и магнит жевательной резинкой (жвачке нужно дать время подсохнуть). Если гвоздик чуть меньше чем нужно, тогда сделайте на нем зазубрины.

Ультразвуковой анемометр на двух HC-SR04

Ультразвуковой анемометр на двух HC-SR04

Ультразвуковой анемометр на двух HC-SR04

Ультразвуковой анемометр на двух HC-SR04

Теперь нужно сделать маленький крестик из квадрата размером 1/2 дюйма (1.2 см) с маленькой вмятиной в центре. Можно использовать квадратик меньшего размера, например если внутренний диаметр ручки меньше.

Ультразвуковой анемометр на двух HC-SR04

Ультразвуковой анемометр на двух HC-SR04

Крестик аккуратно вставляется в ручку и проталкивается до упора.

Ультразвуковой анемометр на двух HC-SR04

Ультразвуковой анемометр на двух HC-SR04

Ультразвуковой анемометр на двух HC-SR04

Анемометр почти готов. Он должен легко крутиться если на него подуть. СТЕРЖЕНЬ ДОЛЖЕН КАСАТЬСЯ КРЕСТИКА ТОЛЬКО ШАРИКОМ (возможно для этого придется сделать крестик чуть меньше). ЧТОБЫ ЭТО ВИДЕТЬ, ШАРИКОВАЯ РУЧКА ДОЛЖНА БЫТЬ ПРОЗРАЧНОЙ.

Ультразвуковой анемометр на двух HC-SR04

Теперь нужно сделать так чтобы стержень не болтался в ручке. Для этого отрезается верхняя часть заглушки слой за слоем, до размера отверстия когда стержень будет свободно вращаться.

Ультразвуковой анемометр на двух HC-SR04

Ультразвуковой анемометр на двух HC-SR04

Ультразвуковой анемометр на двух HC-SR04

Осталось прикрепить магнит и анемометр готов. Используется неодимовый магнит размером 4x4x4 мм (неодимовый магнит большего размера плохо центрируется на головке винта и его придется приклеивать). Полюса магнита должны быть направлены радиально. Найти полюса у кубика поможет другой магнит. Если есть маркер, обязательно сделайте им метки на магните.

Про анемометры:  Магнитное поле в физике - формулы и определения с примерами решения задач

Ультразвуковой анемометр на двух HC-SR04

Ультразвуковой анемометр на двух HC-SR04

Чтобы крыльчатка не вылетела из ручки при сильном порыве ветра, можно примотать несколько слоев клейкой ленты до диаметра не проходящего в отверстие заглушки. Нельзя мотать слишком много слоев чтобы не было задевания ручки при вращении.

Ультразвуковой анемометр на двух HC-SR04

Ультразвуковой анемометр на двух HC-SR04

Для изготовления анемометра можно использовать ручки других типов (например «Bic Cristal»).

Ультразвуковой анемометр на двух HC-SR04

Чтобы снять заглушку, поместите лезвие ножа как показано на фото и надавите.

Ультразвуковой анемометр на двух HC-SR04

Для этой ручки нужно использовать крестик меньшего размера сделанный из квадратика размером 3/8 дюйма (9 мм).

Ультразвуковой анемометр на двух HC-SR04

Ультразвуковой анемометр на двух HC-SR04

Ультразвуковой анемометр на двух HC-SR04

Ультразвуковой анемометр на двух HC-SR04

Ультразвуковой анемометр на двух HC-SR04

Размер используемого винтика 2.5х6 мм (#3) (или гвоздь 1.8 мм с зазубриной).

Ультразвуковой анемометр на двух HC-SR04

Если нет возможности купить маленький неодимовый магнит, тогда можно использовать магниты для маркерной доски.

Ультразвуковой анемометр на двух HC-SR04

Ультразвуковой анемометр на двух HC-SR04

Ультразвуковой анемометр на двух HC-SR04

Ультразвуковой анемометр на двух HC-SR04

Гибкие магниты очень слабые и не могут быть использованы.

Ультразвуковой анемометр на двух HC-SR04

Зависимость частоты вращения от скорости ветра:
2 Hz — 1.5 m/s
4 Hz — 2.7 m/s
6 Hz — 3.8 m/s

«Чувствительный» анемометр

Ультразвуковой анемометр на двух HC-SR04

Технические характеристики:
Диапазон измерения от 0.5 м/с до 3.5 м/с.
Точность 0.5 м/с.
Интервал обновления 2-5 сек.

Ультразвуковой анемометр на двух HC-SR04

Вырезать прямоугольник размером 3×2 дюйма (7.6×5.1 см).

Ультразвуковой анемометр на двух HC-SR04

Ультразвуковой анемометр на двух HC-SR04

Ультразвуковой анемометр на двух HC-SR04

Сделать разметку на три прямоугольника шириной 1 дюйм (2.53 см).

Ультразвуковой анемометр на двух HC-SR04

Ультразвуковой анемометр на двух HC-SR04

Ультразвуковой анемометр на двух HC-SR04

Ультразвуковой анемометр на двух HC-SR04

Ультразвуковой анемометр на двух HC-SR04

Ультразвуковой анемометр на двух HC-SR04

Ультразвуковой анемометр на двух HC-SR04

Ультразвуковой анемометр на двух HC-SR04

Ультразвуковой анемометр на двух HC-SR04

Ультразвуковой анемометр на двух HC-SR04

Ультразвуковой анемометр на двух HC-SR04

Очень важно использовать винтик со шлицем Pozidriv (PZ). Потому что в таком шлице игла не задевает боковых стенок. Длинна винта должна быть наименьшей, чтобы магнит находился как можно ниже. На фото используется винт 2×6 мм.

Ультразвуковой анемометр на двух HC-SR04

После закручивания винта, «крылья» аккуратно разводятся и крыльчатки придается нужная форма.

Ультразвуковой анемометр на двух HC-SR04

Ультразвуковой анемометр на двух HC-SR04

Ультразвуковой анемометр на двух HC-SR04

Ультразвуковой анемометр на двух HC-SR04

Ультразвуковой анемометр на двух HC-SR04

Чтобы магнит хорошо держался на винте, нужно прикрутить еще одну гайку. Но не закручивать её.

Ультразвуковой анемометр на двух HC-SR04

Ультразвуковой анемометр на двух HC-SR04

Из-за прикрепления неодимового магнита (размером 4x4x4 мм), поднимается центр тяжести крыльчатки и она становится нестабильной на игле. Чтобы опустить цент тяжести, к ВНУТРЕННЕЙ части «крыльев» нужно приклеить грузики (используются шайбы для винта 4 мм).

Ультразвуковой анемометр на двух HC-SR04

Крыльчатка может крутится не только на шиле, но и на ОЧЕНЬ ХОРОШО заточенных карандашах или на швейной игле прикрепленной к карандашу. На швейной игле крыльчатка крутится лучше всего, однако такой вариант требует большой осторожности и КАТЕГОРИЧЕСКИ НЕ ПОДХОДИТ ДЛЯ ДЕТЕЙ.

Ультразвуковой анемометр на двух HC-SR04

Ультразвуковой анемометр на двух HC-SR04

Зависимость частоты вращения от скорости ветра (на механическом карандаше 0.5 мм):
1.5 Hz — 1.4 m/s
4 Hz — 2.85 m/s
6 Hz — 3.4 m/s

Крыльчатый анемометр

Ультразвуковой анемометр на двух HC-SR04

Предназначен для измерения скорости потока воздуха в системах вентиляции.

Технические характеристики:
Диапазон измерения от 1.75 м/с до 3.0 м/с.
Точность 0.2 м/с.
Интервал обновления 2-5 сек.

Этот анемометр делается из вентилятора с подшипниками качения. Можно выбрать вентилятор любого размера, но нужно учитывать что чем меньше размер вентилятора тем меньше будет чувствительность анемометра. Здесь используется вентилятор размером 80x80x25 мм.

Ультразвуковой анемометр на двух HC-SR04

Чтобы вентилятор легко вращался, из него нужно вытащить кольцевой магнит.

Ультразвуковой анемометр на двух HC-SR04

Ультразвуковой анемометр на двух HC-SR04

При съёме стопорного кольца, его нужно придерживать рукой чтобы оно не улетело и не потерялось.

Ультразвуковой анемометр на двух HC-SR04

Ультразвуковой анемометр на двух HC-SR04

Ультразвуковой анемометр на двух HC-SR04

Чтобы вытащить кольцевой магнит, под него нужно просунуть плоскую отвертку и чуть-чуть повернуть отвертку. От этого магнит должен чуть-чуть выдвинуться. Повторяя это действие нужно РАВНОМЕРНО приподнять весь магнит.

Ультразвуковой анемометр на двух HC-SR04

Ультразвуковой анемометр на двух HC-SR04

Когда магнит поднимется до положения когда отверткой его больше не приподнять, нужно использовать винт (4×30(>30) мм).

Ультразвуковой анемометр на двух HC-SR04

Ультразвуковой анемометр на двух HC-SR04

Ультразвуковой анемометр на двух HC-SR04
Ультразвуковой анемометр на двух HC-SR04

Ультразвуковой анемометр на двух HC-SR04

Теперь вентилятор собирается. И если не одевать стопорное кольцо, тогда вентилятор будет легче крутиться, но при этом крыльчатка может выпадать.

Зависимость частоты вращения от скорости потока воздуха:
4 Hz — 1.85 m/s
6 Hz — 2.3 m/s
8 Hz — 2.55 m/s
12 Hz — 2.7 m/s
18 Hz — 2.8 m/s

Если что-то непонятно, обязательно пишите на email.

Измеритель скорости ветра своими руками

Появилась задача собрать для одного проекта анемометр, чтобы снимать данные можно было на компьютере по интерфейсу USB. В статье речь пойдет больше о самом анемометре, чем о системе обработки данных с него:

Итак, для изготовления изделия понадобились следующие компоненты:
Шариковая мышь Mitsumi — 1 шт.
Мячик для пинг-понга — 2 шт.
Кусок оргстекла подходящего размера
Медная проволока сечением 2,5 мм2 — 3 см
Стержень от шариковой ручки — 1 шт.
Палочка от конфеты чупа-чупс — 1 шт.
Клипса для кабеля — 1 шт.
Полый латунный бочонок 1 шт.

2. Изготовление крыльчатки

Ультразвуковой анемометр на двух HC-SR04

К латунному бочонку были припаяны 3 куска медной проволоки длиной 1 см каждый под углом 120 градусов. В отверстие бочонка я припаял стойку из китайского плеера с резьбой на конце.

Трубочку от конфеты разрезал на 3 части длиной около 2 см.

Разрезал пополам 2 шарика и с помощью мелких шурупов из того же плеера и полистирольного клея (клеевым пистолетом) прикрепил половинки шарика к трубочкам от чупа-чупса.

Трубочки с половинками шарика надел на припаянные куски проволоки, сверху все закрепил клеем.

3. Изготовление основной части

Ультразвуковой анемометр на двух HC-SR04

Ультразвуковой анемометр на двух HC-SR04

Несущим элементом анемометра является металлический стержень от шариковой ручки. В нижнюю часть стержня (куда вставлялась пробка) я вставил диск от мышки (энкодер). В конструкции самой мышки нижняя часть энкодера упиралась в корпус мышки образуя точечный подшипник, там была смазка, поэтому энкодер легко крутился. Но нужно было зафиксировать верхнюю часть стержня, для этого я подобрал подходящий кусок пластика с отверстием точно по диаметру стержня (такой кусок был вырезан из системы выдвигания каретки CD-ROMa). Оставалось решить проблему с тем, чтобы стержень с энкодером не выпадал из точечного подшипника, поэтому на стержне непосредственно перед удерживающим элементом я напаял несколько капель припоя. Таким образом, стержень свободно крутился в удерживающей конструкции, но не выпадал из подшипника.

Причина, по которой была выбрана схема с энкодером, следующая: все статьи о самодельных анемометрах в Интернете описывали их изготовление на базе двигателя постоянного тока от плеера, CD-ROMa или еще какого изделия. Проблема с такими устройствами во первых в их калибровке и малой точности при малой скорости ветра, а во вторых — в нелинейной характеристике скорости ветра по отношению к выходному напряжению, т.е. для передачи информации на компьютер есть определенные проблемы, нужно просчитывать закон изменения напряжения или тока от скорости ветра. При использовании энкодера такой проблемы нет, так как зависимость получается линейной. Точность высочайшая, так как энкодер дает около 50 импульсов на один оборот оси анемометра, но несколько усложняется схема преобразователя, в котором стоит микроконтроллер, считающий количество импульсов в секунду на одном из портов и выдающий это значение в порт USB.

4. Испытания и калибровка

Для калибровки был использован лабораторный анемометр

Анемометр – это измерительный прибор для определения скорости ветра. Сегодня мы с вами сделаем этот прибор для измерения скорости ветра самостоятельно. Наш самодельный анемометр очень прост в изготовлении, но вместе с тем, скорость ветра он измеряет не хуже, чем настоящий анемометр. Вот как ты можешь сделать самодельный анемометр.

Для того чтобы сделать самодельный анемометр нам понадобится

Трубочка для коктейля, шампур или что-либо подобное

Хлопчатобумажная швейная нитка или нейлоновая рыболовная леска

Мяч для большого тенниса стандартного веса

Что нужно делать, чтобы получился самодельный анемометр

1. Иголкой проделай в теннисном мяче два крошечных отверстия одно напротив другого. Проще всего это сделать, нагрев кончик иглы на огне.

2. Продень швейную нитку или рыболовную леску сквозь мячик, оставив с одной стороны, примерно сорок пять сантиметров. Крепко привяжи ее и отрежь излишнюю длину.

3. Привяжи второй конец лески к палочке и обмотай ее ниткой, пока расстояние между палочкой и верхом мяча не достигнет тридцать сантиметров.

4. С помощью клейкой ленты прикрепи палочку к транспортиру. Нитка должна свисать с его наружной стороны из центральной точки.

5. Чтобы измерить скорость ветра, расположи транспортир в направлении ветра. Держи его за углы как можно дальше от себя. Нитка не должна касаться транспортира. При нулевой скорости ветра нитка будет висеть прямо вниз вдоль отметки девяносто градусов. Когда подует ветер, сними показания градусов и затем проверь по таблице скорость ветра.

Ультразвуковой анемометр на двух HC-SR04

Ультразвуковой анемометр на двух HC-SR04

Мы с вами провели очередной опыт и на этот раз измерили скорость ветра, которая постоянна в регионе, где вы проживаете. Проводить различные опыты и эксперименты очень интересно, увлекательно и познавательно. Особенно для таких любознательных мальчиков и девочек, как вы. Вы можете провести и другие опыты по различным направлениям и предметам. Например, очень интересно будет узнать, как же в своей колонии, что делают

Для изготовления прибора, который измеряет скорость воздушного потока, потребуются подручные средства. К примеру, в качестве лопастей анемометра можно использовать половинки пластиковых пасхальных яиц. Также обязательно потребуется компактный бесщеточный двигатель на постоянных магнитах. Главное, чтобы сопротивление подшипников на валу моторчика было минимальным. Такое требование обусловлено тем, что ветер может быть совсем слабым, и тогда вал двигателя просто не будет проворачиваться. Для создания анемометра сгодится двигатель от старого жесткого диска.

Главная трудность при сборке анемометра заключается в том, чтобы сделать сбалансированный ротор. Двигатель потребуется установить на массивное основание, а на его ротор насадить диск из толстого пластика. Затем из пластиковых яиц нужно аккуратно вырезать три одинаковые полусферы. Они закрепляются на диске при помощи шпилек или стальных стержней. При этом диск предварительно надо разделить на сектора по 120 градусов.

Балансировку рекомендуется проводить в помещении, где полностью отсутствуют всякие движения ветра. Ось анемометра должна находиться в горизонтальном положении. Подгонку веса обычно выполняют с помощью надфилей. Смысл в том, чтобы ротор останавливался в любом положении, а не в одном и том же.

Калибровка прибора

Самодельный прибор обязательно должен быть откалиброван. Для калибровки лучше всего использовать автомобиль. Но понадобится какая-то мачта, чтобы не попал в зону возмущенного воздуха, создаваемого автомобилем. В противном случае показания будут сильно искажены.

Калибровку следует проводить только в безветренный день. Тогда процесс не затянется. Если же будет дуть ветер, придется долго ездить по дороге и вычислять средние значения скорости ветра. Нужно учитывать, что скорость спидометра измеряется в км/ч, а скорость ветра в м/с. Соотношение между ними – 3,6. Это значит, что показания спидометра потребуется разделить на это число.

Некоторые люди в процессе калибровки используют диктофон. Можно просто надиктовать показания спидометра и анемометра на электронное устройство. В вы сможете создать новую шкалу для своего самодельного анемометра. Только с помощью правильно откалиброванного прибора можно получить достоверные данные о ветровой обстановке в необходимой зоне.

Источник

Оцените статью
Анемометры
Добавить комментарий

Adblock
detector