YF-S201 датчик расхода воды и не агрессивных жидкостей
Ардуино датчик расхода воды и не агрессивных жидкостей YF-S201-предназначен для измерения объема прокачанной через него воды. Формула для расчёта потока жидкости л/мин: Q=F/7.5, где F частота импульсов, Q - поток л/мин. Можно использовать коэффициент: 1 литр воды это примерно 516 импульсов. Расходомер воды довольно часто используют в проектах Arduino контроллерами. Счетчик жидкости можно использовать как для подсчета потока воды, так и для измерения объема пройденной через него жидкости.
Характеристики расходомера воды:
- Допустимое напряжение: 5 .. 24 В
- Предельный ток: 16 мА
- Давление: 1.75 МПа
- Пропускная способность: 1 .. 30 л/мин
- Рабочая температура: 0°C .. +95°C
- Длина проводов: 15 см
- Внешний диаметр: 19 мм
- Внутренний диаметр: 11 мм
- Резьбовое соединение: 1/2 дюйма
- Вес: 160 грамм
- Размеры: 58 x 37 x 37 мм
Подключение счетчика:
- Красный провод к +5 В
- Черный провод к GND
- Желтый провод к выводу Arduino D2
Видео демонстрация работы датчика YF-S201 с Arduino UNO
Пример кода для ардуино:
#include "LiquidCrystal.h" LiquidCrystal lcd(8, 9, 4, 5, 6, 7); // пины под LCD shield #define FLOWSENSORPIN 2 // пин для датчика расхода volatile uint16_t pulses = 0; // считает сколько импульсов volatile uint8_t lastflowpinstate; // отслеживает состояние пина FLOWSENSORPIN volatile uint32_t lastflowratetimer = 0; // отсчитывает время между импульсами volatile float flowrate; // и использует это, чтобы вычислить скорость потока // Прерывание вызывается один раз в миллисекунду, ищет любые импульсы от датчика! SIGNAL(TIMER0_COMPA_vect) { uint8_t x = digitalRead(FLOWSENSORPIN); if (x == lastflowpinstate) { lastflowratetimer++; return; // nothing changed! } if (x == HIGH) { //low to high transition! pulses++; } lastflowpinstate = x; flowrate = 1000.0; flowrate /= lastflowratetimer; // в герцах lastflowratetimer = 0; } void useInterrupt(boolean v) { if (v) { // Timer0 уже используется для millis() - просто прерываем // в середине и вызываю "Compare A" функция выше OCR0A = 0xAF; TIMSK0 |= _BV(OCIE0A); } else { // не вызывать функцию прерывания больше TIMSK0 &= ~_BV(OCIE0A); } } void setup() { Serial.begin(9600); Serial.print("---RASHODOMER---"); lcd.begin(16, 2); lcd.print("---RASHODOMER---"); pinMode(12, OUTPUT); // сигнал управления реле digitalWrite(12, LOW); pinMode(3, OUTPUT); // плюс 5в на датчик расхода digitalWrite(3, HIGH); pinMode(FLOWSENSORPIN, INPUT); digitalWrite(FLOWSENSORPIN, HIGH); lastflowpinstate = digitalRead(FLOWSENSORPIN); useInterrupt(true); //delay(2000); // для отображения на LCD "---RASHODOMER---" } void loop() { lcd.setCursor(0, 0); lcd.print("Pulses:"); lcd.print(pulses, DEC); lcd.print(" Hz:"); lcd.print(flowrate); //lcd.print(flowrate); Serial.print("Freq: "); Serial.println(flowrate); Serial.print("Pulses: "); Serial.println(pulses, DEC); // Sensor Frequency (Hz) = 7.5 * Q (Liters/min) // Liters = Q * time elapsed (seconds) / 60 (seconds/minute) // Liters = (Frequency (Pulses/second) / 7.5) * time elapsed (seconds) / 60 // Liters = Pulses / (7.5 * 60) float liters = pulses; liters /= 7.5; liters /= 60.0; Serial.print(liters); Serial.println(" Liters"); lcd.setCursor(0, 1); lcd.print(liters); lcd.print(" Liters "); if (liters > 1) // установка количества литров { digitalWrite(12, HIGH); // если больше 1 литра, включается реле } else { digitalWrite(12, LOW); } delay(100); }
Вес | 30 г |
Цвет | черный |
Категории: Датчики Электро-механика
YF-S201 датчик расхода воды и не агрессивных жидкостей отзывы
Оставьте отзыв об этом товаре первым!