Некорректно определяется состояние поплавкового датчика
- Войдите на сайт для отправки комментариев
Вс, 28/05/2017 - 16:21
Помогите новичку. Делаю контроллер для аквариума, использую Могу из-за большого количества памяти и ног.
Одна из функций - контроль уровня воды, стоит поплавковый датчик, который замыкает на землю. Пин определен как input_pullup.
В замкнутом состоянии считывает 0 стабильно, в разомкнутом - редкая единица.
Провод до датчика метра полтора. Могут это быть какое-нить наводки? Правильно ли определять Пин как input_pullup или лучше digital write туда? Или лучше размыкать плюс с подтяжкой резистором?
Инициализируйте как input и прописывайте туда high
Тго , что вы делаете ни разу не встречал.
https://www.google.com/search?q=arduino+подтяжка+входа
Инициализируйте как input и прописывайте туда high
Если использовать INPUT_PULLUP, то pinMode именно это и делает.
Инициализируйте как input и прописывайте туда high
Если использовать INPUT_PULLUP, то pinMode именно это и делает.
Вот в этом то и вопрос, почему это не работает.
Вот в этом то и вопрос, почему это не работает.
У вас тестер есть. Вот и звоните ваш датчик. Скорее он у вас или коротит и сопротивление в незамкнутом состоянии около 1 кОМ
Сам себе отвечу - подтянул сопротивлением 10 ком к плюсу и все стало определяться четко. Возможно для Меги не работает input_pullup или есть проблема в моей плате
подтянул сопротивлением 10 ком ... Возможно для Меги не работает input_pullup или есть проблема в моей плате
Думаю, работает (вы можете легко проверить это) , но, возможно просто внутренний pull-up слишком слабый. Там 20-50К и этого, возможно, много для Вашей конкретной ситуации.
Добрый день!
У меня почти аналогичная проблема только с кнопкой.
Плата Arduino nano 328p (AliExpress)
Кнопка подключена 15 метровым кабелем 0,75 мм.
Пробовал добавить резистор на 20КОм от входа 8 пина к VCC, количество ложных срабатываний уменьшилось но не очень сильно.
Также обратил внимание, что если при выполнении данного кода коснуться пина отверткой, то происходит ложное срабатывание.
Подскажите, пожалуйста, как это победить?
Спасибо.
Я бы уменьшил подтягивающий резистор до 1 кОм. Еще можно добавить интегрирующую цепь или хотя бы конденсатор - для ослабления импульсных помех.
15 метров это уже сильно. Особенно для грозы. Рекомендую подключить кнопку через оптопару. И внутренней подтяжки при этом обычно хватает.
Оптопары в наличии нет, но есть много аналоговых (не твердотельных) релюшек на 5В. Попробую с ними.
Но всё равно, даже при внутренней подтяжке от прикосновения отверткой уже ложный сигнал идёт :(
Грозы не боюсь, т.к. в помещении всё происходит :)
А если программно попробовать избавиться от дребезга? например, взять класс bounce или из темы http://arduino.ru/forum/programmirovanie/klass-titanovyi-velosiped-dlya-taktovoi-knopki?page=1
хз насколько умный совет, но глянь на эту либу:
runningMedian
Мож ее как костылек заюзать )
При таком длинном кабеле наиболее помехоустойчивый вариант- в неактивном состоянии на вход подается логический "0" (вход замкнут на землю). При србатывании кнопки, через внешний подтягивающий резистор 0,5-1 кОм подается логическая "1". Конденатор на землю 0,1-10 мкФ, тоже улучшит ситуацию. Но оптрон, все-таки лучше. Еще может помочь применение витой пары и экранирование. Релюшки тоже вариант, но менее бюджетный.
Грозы не боюсь, т.к. в помещении всё происходит :)
Электромагнитному импульсу похрену где напряжение генерировать. Или вы в клетке Фарадея живете?
Грозы не боюсь
Отважный человек!
При таком длинном кабеле наиболее помехоустойчивый вариант- в неактивном состоянии на вход подается логический "0" (вход замкнут на землю). При србатывании кнопки, через внешний подтягивающий резистор 0,5-1 кОм подается логическая "1". Конденатор на землю 0,1-10 мкФ, тоже улучшит ситуацию. Но оптрон, все-таки лучше. Еще может помочь применение витой пары и экранирование. Релюшки тоже вариант, но менее бюджетный.
Спасибо за совет,
но у меня вопрос: я же могу выставить режим кнопки NC и тогда на вход (с input_pullup) всегда будет подаваться 0, а кнопка будет производить размыкание и подавать тем самым 1. Или я не прав в своих суждениях и даже при замкнутом контуре через кнопку я все равно смогу словить помеху? Дребезг контактов в данном случае будет скомпенсирован delay(2000) (чтобы дважды не жали случайно :) )
kast2k, ну Вы считайте, что длинный провод - это генератор помехи. Обычно - по току. Т.е. между землей и входом у Вас имеется генератор тока. Напряжение помехи вычисляется как произведение тока на входное сопротивление, в данном случае сопротивление подтяжки. Уменьшая это сопротивление, Вы уменьшаете напряжение помехи на входе. Когда ставите конденсатор, тем самым снижаете входной импеданс на высоких частотах, тем самым уменьшая напряжение высокочастотной помехи.
Коллеги,
я надеюсь правильно понял, что вы хотели до меня донести.
Абсолютно.
Теперь осталось объяснить ТС опупею с электролитами.
А керамические не подойдут? они вроде как лучше с высокими частотами справляются