В данной статье мы рассмотрим подключение датчика анемометра с импульсным выходом NPN к плате Arduino и будем измерять скорость ветра. Анемометр — это устройство, используемое для измерения скорости и направления ветра. Он также является распространенным прибором на метеостанциях.
Для измерения скорости ветра часто используют датчика анемометра Adafruit, но он является аналоговым анемометром и требует для работы питания более 7 В. Поэтому в этом проекте мы будем использовать цифровой анемометр с импульсным выходом NPN. Результаты анемометра с импульсным выходом NPN хорошие, а также они экономически эффективны и работают только при 5 В.
В этом проекте мы соединим анемометр с импульсным выходом NPN с Arduino и отобразим измеренную скорость ветра на ЖК-дисплее 16×2. Этот анемометр способен измерять скорость ветра до 70 м/с или 156 миль/ч, что подходит для большинства приложений.
Также ранее на нашем сайте мы рассматривали измеритель скорости ветра на Arduino с самодельным анемометром.
Необходимые компоненты
- Плата Arduino Uno (купить на AliExpress).
- Anemometer Sensor NPN Pulse (датчик анемометра NPN Импульсный) (купить на AliExpress).
- ЖК дисплей 16x2 с модулем I2C (купить на AliExpress).
- Макетная плата.
- Соединительные провода.
Реклама: ООО "АЛИБАБА.КОМ (РУ)" ИНН: 7703380158
Что такое анемометр?
Анемометр — это устройство, используемое для измерения скорости и направления ветра. Он широко используется для измерения скорости воздушного потока в атмосфере, в аэродинамических трубах и в других приложениях, связанных с потоком газа. Термин происходит от греческого слова anemos, что означает ветер, и используется для описания любого прибора для измерения скорости ветра, используемого в метеорологии.
Наиболее широко используемый анемометр для измерения скорости ветра — электрический анемометр с вращающейся чашкой. Вращающиеся чашки приводят в действие электрический генератор. Выход генератора управляет электрическим счетчиком, который калибруется по скорости ветра. Трехчашечные анемометры в настоящее время используются в качестве отраслевого стандарта для исследований и практики оценки ветровых ресурсов. Вы можете использовать ультразвуковой анемометр, если вам не нужны подвижные части.
Анемометр чашечного типа состоит из 3 или 4 полусферических чашек , установленных на горизонтальных рычагах, которые установлены на вертикальном валу. Воздушный поток, проходящий через чашки в любом горизонтальном направлении, вращает вал со скоростью, которая примерно пропорциональна скорости ветра. Таким образом, подсчет оборотов вала за установленный интервал времени дает значение, пропорциональное средней скорости ветра для широкого диапазона скоростей.
Анемометр с импульсным выходом NPN
Датчик анемометра с импульсным выходом NPN представляет собой анемометр с тремя чашками, способный измерять скорость ветра до 70 м/с или 156 миль/ч. Он состоит из оболочки, ветровой чашки и схемного модуля.
После тестирования многих типов анемометров мы обнаружили, что качество этого анемометра с импульсным выходом NPN является наилучшим, а также экономически эффективным. В отличие от анемометра с аналоговым выходом, этот выходной импульс анемометра точнее отражает скорость ветра. Кроме того, этот анемометр полностью водонепроницаем, имеет устойчивую конструкцию установки и подходит для использования на открытом воздухе.
При работе, если анемометр совершает один оборот за одну секунду, передатчик выдаст 20 импульсов, что означает, что скорость ветра составляет 1,75 м/с.
Характеристики анемометра
- Питание: 5В~30В постоянного тока.
- Связь: импульсный выход.
- Разрешение: 0,0875 м/с (то есть, если обнаружено 20 импульсов за 1 секунду, скорость ветра составит 1,75 м/с, и 3,5 м/с, если обнаружено 40 импульсов).
- Точность: ±(0,2+0,03В)м/с.
- Диапазон измерения: 0~70 м/с.
- Выход: NPN.
- Рабочая среда: -20℃~60℃, относительная влажность 0%~80%.
Внутренняя схема датчика
ВЫХОД NPNR (RL=5.1K)
Проводка и распиновка
Анемометр имеет специальный разъем с четырьмя проводами разного цвета.
Цвет провода | Обозначение | Назначение |
Коричневый | VCC | подача питания |
Черный | GND | земля |
Зеленый | (PNP) OUTPUT | импульсный выход |
Синий | (NPNR) OUTPUT | импульсный выход |
Как видим, распиновка у датчика достаточно простая.
Взаимодействие анемометра с импульсным выходом NPN с Arduino
Теперь давайте подключим анемометр с импульсным выходом NPN к Arduino и измерим скорость ветра.
Анемометр работает в диапазоне 5-30 В постоянного тока. Поэтому нет необходимости во внешнем источнике питания, поскольку мы можем подключить этот датчик напрямую к Arduino. Соединения между анемометром и платой Arduino UNO показаны в следующей таблице.
Arduino UNO | Анемометр |
5V | VCC (коричневый провод) |
GND | GND (черный провод) |
D2 | (NPNR)OUTPUT (синий провод) |
Собранная конструкция проекта показана на следующем рисунке.
Для отображения скорости ветра мы используем ЖК-дисплей 16×2 I2C. Подключите выводы SDA и SCL ЖК-дисплея к выводам Arduino A4 и A5. Аналогично подключите выводы VCC и GND ЖК-дисплея к выводам Arduino 5V и GND.
Исходный код программы
Вот простая программа для сопряжения анемометра (импульсный выход NPN) с Arduino. Код требует I2C LCD Library для компиляции.
Скопируйте следующий код и загрузите его на плату Arduino UNO.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
#include <LiquidCrystal_I2C.h> LiquidCrystal_I2C lcd(0x27,16,2); // set the LCD address to 0x3F for a 16 chars and 2 line display unsigned long lastDebounceTime = 0; // the last time the output pin was toggled unsigned long debounceDelay = 1000; // the debounce time; increase if the output flickers int pinInterrupt = 2; int Count = 0; void onChange() { if ( digitalRead(pinInterrupt) == LOW ) Count++; } void setup() { Serial.begin(115200); //Initialize serial port pinMode( pinInterrupt, INPUT_PULLUP);// set the interrupt pin //Enable attachInterrupt( digitalPinToInterrupt(pinInterrupt), onChange, FALLING); lcd.init(); lcd.clear(); lcd.backlight(); // Make sure backlight is on lcd.setCursor(3, 0); lcd.print("Anemometer"); delay(3000); lcd.clear(); } void loop() { if ((millis() - lastDebounceTime) > debounceDelay) { lastDebounceTime = millis(); Serial.print((Count * 8.75)/100); lcd.setCursor(0, 0); lcd.print("Wind Speed"); lcd.setCursor(0, 1); lcd.print((Count * 8.75)/100); Count = 0; Serial.println("m/s"); lcd.print("m/s"); } delay(1); } |
Тестирование работы проекта
После загрузки кода на плату Arduino ЖК-дисплей начнет отображать скорость ветра. Когда чашечка анемометра стабилизируется, ЖК-дисплей покажет скорость около 0 м/с. Скорость будет меняться или увеличиваться, когда датчик находится в ветреном регионе.
Отображаемые на экране дисплея значения скорости увеличиваются или уменьшаются в зависимости от вращения чашки.