Добрый вечер коллеги аквариумисты!
Для создания девайса для своего аквариума нужна Ваша помощь, о чём я и прошу. Речь идёт о автодоливе воды.
Имеется Arduino UNO, датчик расстояния HC-SR04, обычный светодиод и зуммер, и всякая нужная мелочь.
В сети нашёл самый простой и наиболее подходящий скетч:
Скрытый текст
#define echoPin 7 // Вывод Echo
#define trigPin 8 // Вывод Trigger
#define LEDPin 13 // Светодиод "вне зоны доступа"
int maximumRange = 20; // Максимально доступный диапазон
int minimumRange = 4; // Минимально доступный диапазон
long duration, distance; // Длительность эхо, расстояния
void setup() {
Serial.begin (9600); //Включаем отладочный вывод
//Настраиваем порты
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(LEDPin, OUTPUT);
}
void loop() {
//Выключаем Trigger
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
//Посылаем 10мкс импульс на Trigger
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
//Считаем длительность сигнала эхо
duration = pulseIn(echoPin, HIGH);
//Рассчитываем расстояние (по скорости звука)
distance = duration/58.2;
if (distance >= maximumRange || distance <= minimumRange){
/* Выводим отрицательное значение расстояния на компьютер и зажигаем светодиод
"Вне зоны доступа"*/
Serial.println("-1");
digitalWrite(LEDPin, HIGH);
}
else {
/* Отправляем расстояние на компьютер и гасим светодио */
Serial.println(distance);
digitalWrite(LEDPin, LOW);
}
//Delay 50ms before next reading.
delay(50);
}
Понравился тем что в рамках заданного расстояния можно отслеживать уровень воды. Вместо/или в парралель светодиоду установив пищалку получится "алярм", в случае когда уровень воды от автослива опустится ниже нужного уровня(20см, 5-я строчка скетча) или выше(4см, 6-я строчка) - светодиод и пищалка дадут знать.
Но это в вышеописанном скетче присутствует. Моя просьба в другом. Можете добавить ещё один диапазон, чтоб он как раз и управлял столь желаемым мной -автодоливом, посредством подключения через реле??? Тот диапазон что есть сейчас (4см-20см) - останется для аварийного сигнализирования. Новый нужен в внутренних рамках, например 5см-19см, получается по 1см до аварийного срабатывания диапазона 4см-20см. Данные расстояния приблизительные.
И можно ли сдетать так - чтоб светодиод /пищалка, диапазона 4-20 не просто включался - а моргал/пищал зуммером.
Огромная просьба откликнуться нашим программистам и отполировать код !!