Ультразвуковой датчик HC-SR04 и Arduino UNO - Аквафорум - форум аквариумистов и террариумистов
На сайт Всеукраинской Ассоциации аквариумистов
На главную страницу форума



 


Вернуться   Аквафорум - форум аквариумистов и террариумистов > Аквариум и оборудование > "Самоделкин" > Аквариумная автоматика
Аукцион Регистрация Дневники Справка Пользователи Календарь Поиск Сообщения за день Все разделы прочитаны

Важная информация

Ответ
 
Опции темы Опции просмотра
Старый 24.09.2017, 14:19   #1
Ультразвуковой датчик HC-SR04 и Arduino UNO
 
Аватар для Сергій М
Живу я тут

Регистрация: 31.12.2014
Адрес: Львов
Сообщений: 1,310
 

Поблагодарил(а) : 239
Поблагодарили 785 раз(а) в 497 сообщениях
Сергій М Сергій М поза форумом 24.09.2017, 14:19
Рейтинг: ()

Добрый вечер коллеги аквариумисты!

Для создания девайса для своего аквариума нужна Ваша помощь, о чём я и прошу. Речь идёт о автодоливе воды.
Имеется Arduino UNO, датчик расстояния HC-SR04, обычный светодиод и зуммер, и всякая нужная мелочь.
В сети нашёл самый простой и наиболее подходящий скетч:
Скрытый текст

Понравился тем что в рамках заданного расстояния можно отслеживать уровень воды. Вместо/или в парралель светодиоду установив пищалку получится "алярм", в случае когда уровень воды от автослива опустится ниже нужного уровня(20см, 5-я строчка скетча) или выше(4см, 6-я строчка) - светодиод и пищалка дадут знать.

Но это в вышеописанном скетче присутствует. Моя просьба в другом. Можете добавить ещё один диапазон, чтоб он как раз и управлял столь желаемым мной -автодоливом, посредством подключения через реле??? Тот диапазон что есть сейчас (4см-20см) - останется для аварийного сигнализирования. Новый нужен в внутренних рамках, например 5см-19см, получается по 1см до аварийного срабатывания диапазона 4см-20см. Данные расстояния приблизительные.
И можно ли сдетать так - чтоб светодиод /пищалка, диапазона 4-20 не просто включался - а моргал/пищал зуммером.

Огромная просьба откликнуться нашим программистам и отполировать код !!
Просмотров: 3761
Ответить с цитированием
Пользователь, который поблагодарил Сергій М за данный пост:
alexbrutalcore (25.09.2017)
Старый 24.09.2017, 16:31   #2
Живу я тут
  
 
Аватар для yarishNEW
 
Регистрация: 13.10.2010
Адрес: г.Кременчуг Полтавской обл.
Сообщений: 550
Поблагодарил(а) : 555
Поблагодарили 417 раз(а) в 245 сообщениях
Re: Ультразвуковой датчик HC-SR04 и Arduino UNO ===www.aquaforum.ua===

Актуальность в автодоливе для каких функций?

Arduino UNO - избыточное решение для такой функции как автодолив, если только он не завязан с другим функционалом который вы собираетесь завести на этот контроллер.


Последний раз редактировалось yarishNEW; 24.09.2017 в 16:41..
yarishNEW поза форумом   Ответить с цитированием
Старый 24.09.2017, 17:52   #3
Живу я тут
  
 
Аватар для Сергій М
 
Регистрация: 31.12.2014
Адрес: Львов
Сообщений: 1,310
Поблагодарил(а) : 239
Поблагодарили 785 раз(а) в 497 сообщениях
Re: Ультразвуковой датчик HC-SR04 и Arduino UNO ===www.aquaforum.ua===

yarishNEW,
1) Для автодолива ... Автослив будет реализован тем контроллером который у меня сейчас (Мега 2560).
2) Arduino UNO у меня валялась в ящике (для другого проекта, пока не завершённого)
, вот и использовал это. Есть ещё где-то Нано, но не могу найти.

Если как Вы говорите - избыточна для такого проекта, то конечно было бы круто - полностью сделать отдельный, самодостаточный контроллер по автоматизации подмена воды в акве. С часами, реле управляющими клапанами слива, долива, с возможностью выбора графика подмен - 2 раза в день, 1раз в день, через день, 1 раз в неделю или любой другой режим.
Но для этого нужно уже намного сложнее код, я же не умею программировать вообще, кроме как выставить время, расстояния, таймеры и т.п в скетче.

Сергій М поза форумом   Ответить с цитированием
Старый 24.09.2017, 18:44   #4
Живу я тут
  
 
Регистрация: 21.07.2009
Адрес: Оболонь / дв.Украина
Сообщений: 498
Поблагодарил(а) : 74
Поблагодарили 92 раз(а) в 73 сообщениях
Отправить сообщение для alex_palace с помощью ICQ
Re: Ультразвуковой датчик HC-SR04 и Arduino UNO ===www.aquaforum.ua===

Попробуйте что-то из описанных тут сайтов https://www.drive2.ru/b/2729013/ и думаю все получится У себя с логической частью уже разобрался а вот с визуализацией как раз проблема но с ней таких инструментов пока нет
__________________
реанимация компьютеров, серверов, сетей, телефонов-планшетов.

alex_palace поза форумом   Ответить с цитированием
Старый 24.09.2017, 19:04   #5
Живу я тут
  
 
Аватар для Сергій М
 
Регистрация: 31.12.2014
Адрес: Львов
Сообщений: 1,310
Поблагодарил(а) : 239
Поблагодарили 785 раз(а) в 497 сообщениях
Re: Ультразвуковой датчик HC-SR04 и Arduino UNO ===www.aquaforum.ua===

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

Сергій М поза форумом   Ответить с цитированием
Реклама помогает развиваться
Старый 24.09.2017, 19:21   #6
Живу я тут
  
 
Аватар для Сергій М
 
Регистрация: 31.12.2014
Адрес: Львов
Сообщений: 1,310
Поблагодарил(а) : 239
Поблагодарили 785 раз(а) в 497 сообщениях
Re: Ультразвуковой датчик HC-SR04 и Arduino UNO ===www.aquaforum.ua===

Возможно я в шапке сложно описал потребности.
Сейчас есть :
0-4см - включается светодиод
4-20см - выключается светодиод
20-∞ - включается светодиод
Всё.

Нужно :
0-4см - включается светодиод 1
4-20см - выключается светодиод 1
20- ∞ включается светодиод 1
5-19см - включается светодиод 2
0-5см и 19-∞ - выключается светодиод 2
4-5см и 19-20 - включается светодиод 3
0-4, 5-19 и 20-∞ - выключается светодиод 3

Сищалку я запараллелю с светодиодом 1, функция "Алярм" - это в случае если клапана слива или долива перестараются, и уровень выйдет за рамки 4-20см. Пищать зумером и моргать если сложно программно, решу подключением через реле задержки ))) так смогу и посерьёзнее колокол сигнализации подключить, и прожектор вместо светодиода
А Реле автодолива подключу к светодиоду 2, так клапан откроется и пойдёт долив воды.


Последний раз редактировалось Сергій М; 24.09.2017 в 19:39..
Сергій М поза форумом   Ответить с цитированием
Старый 24.09.2017, 22:02   #7
Живу я тут
  
 
Аватар для AquaGomel
 
Регистрация: 31.07.2010
Адрес: Белоруссия, Гомель
Сообщений: 287
Поблагодарил(а) : 32
Поблагодарили 150 раз(а) в 63 сообщениях
Отправить сообщение для AquaGomel с помощью ICQ Отправить сообщение для AquaGomel с помощью Skype™
Re: Ультразвуковой датчик HC-SR04 и Arduino UNO ===www.aquaforum.ua===

Если я правильно понял. Можно сделать изящнее, но если честно то лень. И естественно код нужно проверять. Если что не так пишите.
Скрытый текст

AquaGomel поза форумом   Ответить с цитированием
Старый 24.09.2017, 23:41   #8
Живу я тут
  
 
Аватар для Сергій М
 
Регистрация: 31.12.2014
Адрес: Львов
Сообщений: 1,310
Поблагодарил(а) : 239
Поблагодарили 785 раз(а) в 497 сообщениях
Re: Ультразвуковой датчик HC-SR04 и Arduino UNO ===www.aquaforum.ua===

ого !!!!!!! прямо сейчас проверю !

Сергій М поза форумом   Ответить с цитированием
Старый 25.09.2017, 00:11   #9
Живу я тут
  
 
Аватар для Сергій М
 
Регистрация: 31.12.2014
Адрес: Львов
Сообщений: 1,310
Поблагодарил(а) : 239
Поблагодарили 785 раз(а) в 497 сообщениях
Re: Ультразвуковой датчик HC-SR04 и Arduino UNO ===www.aquaforum.ua===

AquaGomel, Всё просто идеально работает !! Огромное спасибо.
Хотел визуально проконтролировать работу сенсора с помощью "Монитор порта", а там пусто ))) прописал - Serial.begin(9600); // Starts the serial communication и ниже : Скрытый текст
и понял что даже прописать Serial.println(distance); в нужных местах я не умею, пока что. Так как значения в "Мониторе порта" изменялись исключительно при перемещении сенсора, дальше замирали до следующего перемещения.

Сергій М поза форумом   Ответить с цитированием
Старый 25.09.2017, 00:20   #10
Живу я тут
  
 
Аватар для Сергій М
 
Регистрация: 31.12.2014
Адрес: Львов
Сообщений: 1,310
Поблагодарил(а) : 239
Поблагодарили 785 раз(а) в 497 сообщениях
Re: Ультразвуковой датчик HC-SR04 и Arduino UNO ===www.aquaforum.ua===

Ах да, забыл - исправил (временно) для точности проверки :
с - distance = duration / 58.2; на distance = duration / 5.82; что следовательно привело к исправлению всех значений в мм, 0-40-50-190-200мм.

Сергій М поза форумом   Ответить с цитированием
Старый 25.09.2017, 01:44   #11
Живу я тут
  
 
Аватар для AquaGomel
 
Регистрация: 31.07.2010
Адрес: Белоруссия, Гомель
Сообщений: 287
Поблагодарил(а) : 32
Поблагодарили 150 раз(а) в 63 сообщениях
Отправить сообщение для AquaGomel с помощью ICQ Отправить сообщение для AquaGomel с помощью Skype™
Re: Ультразвуковой датчик HC-SR04 и Arduino UNO ===www.aquaforum.ua===

Если я правильно понял то: Serial.println(distance); установлены внутри блока когда срабатывает включение или отключение канала. Если ван нужен реал-тайм значения distance просто добавьте строку Serial.println(distance); сразу за distance = duration / 5.82; А остальные Serial.println можно убрать. Однако в боевом применении не желательно оставлять Serial

AquaGomel поза форумом   Ответить с цитированием
Старый 25.09.2017, 09:34   #12
Живу я тут
  
 
Аватар для Сергій М
 
Регистрация: 31.12.2014
Адрес: Львов
Сообщений: 1,310
Поблагодарил(а) : 239
Поблагодарили 785 раз(а) в 497 сообщениях
Re: Ультразвуковой датчик HC-SR04 и Arduino UNO ===www.aquaforum.ua===

Понял, учту, сейчас мне данная статистика о дистанции нужна исключительно для тонкой настройки автодолива, при окончательной установке на акву - данные строки будут удалены.
А пока - вечером всё ещё пару раз проверю и перейду к этапу сборки корпуса и прикручивания к акве ))

Сергій М поза форумом   Ответить с цитированием
Старый 26.09.2017, 00:30   #13
Живу я тут
  
 
Аватар для Сергій М
 
Регистрация: 31.12.2014
Адрес: Львов
Сообщений: 1,310
Поблагодарил(а) : 239
Поблагодарили 785 раз(а) в 497 сообщениях
Re: Ультразвуковой датчик HC-SR04 и Arduino UNO ===www.aquaforum.ua===

AquaGomel, Ещё один вопрос - есть ли возможность установки гистерезиса на включения, так как дребезжания на границах сумасшедшие, всему виной точность самого датчика - 3мм !!! из-за этого нет грани при переходе с одного режима в другой. Например мы установим условие 0-4см Led1, и 5-10см Led2,получится грань 4.5см (45мм), из-за проклятых 3мм точности как выясняется грани 45мм просто не существует, показания мелькают со скоростью пропорциональной обновлению информации ( delay(50); ), и меняются в радиусе 3мм - 44-47мм, 43-46мм, что приводит к постоянному дребезжанию. Даже в переключении на см, данный конфуз остаётся ((
Есть ли лекарство от этого ? Придётся отказываться от какой либо из функций (например LEDWarning3) и решит ли это проблему ?

Сергій М поза форумом   Ответить с цитированием
Старый 26.09.2017, 09:41   #14
Живу я тут
  
 
Аватар для AquaGomel
 
Регистрация: 31.07.2010
Адрес: Белоруссия, Гомель
Сообщений: 287
Поблагодарил(а) : 32
Поблагодарили 150 раз(а) в 63 сообщениях
Отправить сообщение для AquaGomel с помощью ICQ Отправить сообщение для AquaGomel с помощью Skype™
Re: Ультразвуковой датчик HC-SR04 и Arduino UNO ===www.aquaforum.ua===

Дребезжание я так понимаю постоянное включение выключение каналов? Могу предположить что точность данного устройства достаточно невысокая, вернее даже не точность а разброс значений которые оно выдает. По даташиту у него разрешение: 0.3 cm поэтому между значениями "включить текущий канал выключить предыдущий" должен быть зазор не менее 30мм, однако смею предположить что естественные колебания воды на поверхности резко увеличат этот самый зазор. Мой вам совет: сделать зазор как минимум в 0.5 см между зонами включения светодиодов. Логику выключения выключения сделать такой: светодиоды включать при достижении какой либо зоны, остальные выключать только если зона смениться на другую. Если значение попадает в зазор между зонами светодиоды не выключать. Как-то так...

AquaGomel поза форумом   Ответить с цитированием
Пользователь, который поблагодарил AquaGomel за данный пост:
yarishNEW (26.09.2017)
Старый 26.09.2017, 23:04   #15
Живу я тут
  
 
Аватар для Сергій М
 
Регистрация: 31.12.2014
Адрес: Львов
Сообщений: 1,310
Поблагодарил(а) : 239
Поблагодарили 785 раз(а) в 497 сообщениях
Re: Ультразвуковой датчик HC-SR04 и Arduino UNO ===www.aquaforum.ua===

То-есть сделать так ?:
Сейчас (в мм) - Led1 0-40, Led2 40-50, Led3 50-190, Led2 190-200, Led1 200<
Сделать (в мм) - Led1 0-37, Led2 42-50, Led3 55-190, Led2 195-200, Led1 205<

Сергій М поза форумом   Ответить с цитированием


Share/Bookmark

Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход




Текущее время: 06:16. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd. Перевод: zCarot
(с)Бешлега Александр Анатольевич, 2002-2015. Использование материалов сайта без ссылки на источник запрещено.
Благодарим за лицензионную версию форума компанию Барбус, представителя торговой марки Sera в Украине.

Друзья форума: www.akvariumi.com.ua/; Интернет-магазин аквариумных товаров "У Водяного" https://eshop.aqua.in.ua/; Интернет-магазин https://ezoo.com.ua/

AQA.ru  - все об аквариумах

no new posts