Потенциометр
- Войдите на сайт для отправки комментариев
Сб, 24/10/2015 - 22:46
Здраствуйте, у меня подключено несколько потенциометров к ардуино(например 4шт), они у меня служат как кодовый замок,тоесть поворачиваю каждый на свой определенный угол и после этого вкл реле. Вопрос, как можно сделать програмно так, что б если один с потенцеометров выйдет из строя, то что б программа с него уже не считывала значение а сразу делала типа он стоит в верном положении(верный угол)???
Боюсь что никак, при отрыве среднего вывода на аналоговом входе будет анархия. При отрыве крайних либо 0 либо +5в.
Здраствуйте, у меня подключено несколько потенциометров к ардуино(например 4шт), они у меня служат как кодовый замок,тоесть поворачиваю каждый на свой определенный угол и после этого вкл реле. Вопрос, как можно сделать програмно так, что б если один с потенцеометров выйдет из строя, то что б программа с него уже не считывала значение а сразу делала типа он стоит в верном положении(верный угол)???
А если сломать все 4, кодовый замок тоже должен открыться?
Вариантов несколько, в зависимости от необходимости, стоимости и тп.
Самое простое, перед установкой кода, нужно изменить состояние потенциометра от минимума до максимума и обратно, соответственно, программа не откроется, если такого действия не произвели.
Другие варианты, лепить ключи, для размыкания/замыкания цепей потенциометров, писать софт и т.п.
нужно изменить состояние потенциометра от минимума до максимума и обратно, соответственно, программа не откроется, если такого действия не произвели.
Только вот именно этого действия и нельзя будет сделать, если потенциометр вышел из строя...
Все просто. Нужно питать потенциометры не от питания (+5 и GND), а от двух выводов дуины. Тем самым вы сможете определять положение бегунков при прямой полюсации и обратной, при несовпадении считаем потенциометр неисправным.
Этот пример нормально будет определять состояние потенциометра только если он не занимает крайних положений. То есть данный способ не сможет определить оборвался ли крайний провод или потенциометр выкручен до конца в крайнее положение. Но и тут можно выкрутиться воспользовавшись внутенней подтяжкой на аналоговых выводах.
Здраствуйте, у меня подключено несколько потенциометров к ардуино(например 4шт), они у меня служат как кодовый замок,тоесть поворачиваю каждый на свой определенный угол и после этого вкл реле. Вопрос, как можно сделать програмно так, что б если один с потенцеометров выйдет из строя, то что б программа с него уже не считывала значение а сразу делала типа он стоит в верном положении(верный угол)???
поставь рядом с потенциометрами большую кнопку:"Я - пьяный, если меня не пустят домой, то нассу под дверь!".
Есть чисто аппаратное решение. Потенциометры берете, например, от единиц до нескольких десятков килоом. Подключаете каждый к опорному напряжению через дополнительный резистор сопротивлением околоо 10% от сопротивления потенциометра. Таким образом, макимальное значение, которое можно будет снять с бегунка, будет на 10% ниже опорного. Вход Ардуины соединяете с источником опорного напряжения резистором сопротивлением в 100 - 200 кОм. Такой резистор существенного влияния на работу схемы при исправном потенциометре не оказывает. Но как только бегунок потенциометра отрывается, на входе Ардуины оказывается практически все опорное напряжение, что легко фиксируется программно.
нужно изменить состояние потенциометра от минимума до максимума и обратно, соответственно, программа не откроется, если такого действия не произвели.
Только вот именно этого действия и нельзя будет сделать, если потенциометр вышел из строя...
Так это есть признак выхода из строя. Смело игнорируем тот, что не работает.
К тому же автор молчит, что будет если все 4 выйдут из строя, замок станет открытым?
Здраствуйте, у меня подключено несколько потенциометров к ардуино(например 4шт), они у меня служат как кодовый замок,тоесть поворачиваю каждый на свой определенный угол и после этого вкл реле. Вопрос, как можно сделать програмно так, что б если один с потенцеометров выйдет из строя, то что б программа с него уже не считывала значение а сразу делала типа он стоит в верном положении(верный угол)???
А если сломать все 4, кодовый замок тоже должен открыться?
На самом деле их будет 8 и я не думаю что все они одновременно выйдут из строя
Здраствуйте, у меня подключено несколько потенциометров к ардуино(например 4шт), они у меня служат как кодовый замок,тоесть поворачиваю каждый на свой определенный угол и после этого вкл реле. Вопрос, как можно сделать програмно так, что б если один с потенцеометров выйдет из строя, то что б программа с него уже не считывала значение а сразу делала типа он стоит в верном положении(верный угол)???
А если сломать все 4, кодовый замок тоже должен открыться?
На самом деле их будет 8 и я не думаю что все они одновременно выйдут из строя
Вариантов несколько, в зависимости от необходимости, стоимости и тп.
Самое простое, перед установкой кода, нужно изменить состояние потенциометра от минимума до максимума и обратно, соответственно, программа не откроется, если такого действия не произвели.
Другие варианты, лепить ключи, для размыкания/замыкания цепей потенциометров, писать софт и т.п.
тоесть нам надо будеть проверить 2а крайние значения, и если они 0 и 1023 то потенциометр рабочий?
Вариантов несколько, в зависимости от необходимости, стоимости и тп.
Самое простое, перед установкой кода, нужно изменить состояние потенциометра от минимума до максимума и обратно, соответственно, программа не откроется, если такого действия не произвели.
Другие варианты, лепить ключи, для размыкания/замыкания цепей потенциометров, писать софт и т.п.
тоесть нам надо будеть проверить 2а крайние значения, и если они 0 и 1023 то потенциометр рабочий?
два крайних - мало.....
если есть скорость изменения значения потенциометра в "реальных" значениях - он жив
нет - скорее мёртв :(
Самое простое, перед установкой кода, нужно изменить состояние потенциометра от минимума до максимума и обратно... КАЖДОГО потенциометра !!!!! для определения его НЕмёртвости....
это от Kisofta
...или крутнуть его тудым-сюдым - адекватен или нет уже.....
код будет не хилый.....
Еще вариант, опросить 1>2, 2>3, 1>3 сумма сопротивлений 1>2 2>3 должна быть ~1>3. И согласен с предыдущим оратором код будет аццкий.
это другая логика ОТКРЫТИЯ , но не проверка жизни потенциометров :(
нужно изменить состояние потенциометра от минимума до максимума и обратно, соответственно, программа не откроется, если такого действия не произвели.
Только вот именно этого действия и нельзя будет сделать, если потенциометр вышел из строя...
Как программа может понять, что вы крутите потенциометр, если он неисправен?
Все просто. Нужно питать потенциометры не от питания (+5 и GND), а от двух выводов дуины. Тем самым вы сможете определять положение бегунков при прямой полюсации и обратной, при несовпадении считаем потенциометр неисправным.
Этот пример нормально будет определять состояние потенциометра только если он не занимает крайних положений. То есть данный способ не сможет определить оборвался ли крайний провод или потенциометр выкручен до конца в крайнее положение. Но и тут можно выкрутиться воспользовавшись внутенней подтяжкой на аналоговых выводах.
Но судя по всему бессмысленно вам что то объяснять, так как вы либо не смогли развернуть пример кода или от непонимания не можете применить его.
нужно изменить состояние потенциометра от минимума до максимума и обратно, соответственно, программа не откроется, если такого действия не произвели.
Только вот именно этого действия и нельзя будет сделать, если потенциометр вышел из строя...
Как программа может понять, что вы крутите потенциометр, если он неисправен?
Тайм-аут. Если покрутить все 4, то если все сдохли, то ничего не произойдёт, а хотя бы один рабочий, то это даст понять, что все остальные сдохли.
нужно изменить состояние потенциометра от минимума до максимума и обратно, соответственно, программа не откроется, если такого действия не произвели.
Только вот именно этого действия и нельзя будет сделать, если потенциометр вышел из строя...
Как программа может понять, что вы крутите потенциометр, если он неисправен?
крутим КОТОРЫЙ!!! не исправен.....
...никак :(
...нано думать алгоритм проверки резюков ?
правильно выше сказали - если все 4 сломаны - не проверить , нету таких алгоритмов....
ТС - нету доступа ? - проверяем потенциометры омметром ! программно - заморочЬно ! :)
kisoft , молодец....
...логика !
только эту логику в коде реализовать геморройно будет !
нет ?
Да нет, это
Самое простое
Самое простое
Интересно было бы посмотреть на это самое простое.
Самое простое, потому что не требует аппаратных ресурсов, дополнительных.
Реализацию можно показать, только для абстрактной задачи. Если будет время, для пары потенциометров покажу. Конечный автомат, ничего особенного.
При этом, будем считать, что если потенциометр сдох, то ввести код нельзя, т.е. замок не будет работать.
что б программа с него уже не считывала значение а сразу делала типа он стоит в верном положении(верный угол)???
Если дверь должна открываться при одном неисправнеом потенциометре, мне кажется, проще всего посчитать, сколько потенциометром находятся в верном положении, и если их не менее 7, открыть дверь.
Странный кодовый замок какой-то и совсем не практичный. Неужели код для каждого открывания генерится новый? Думаю, что он всегда один и тот же. Это ж надо еще не забывать после каждого успешного открывания замка "скрутить" потенциометры, причем, желательно все 8. Иначе замок останеться открытым. Ладно еще если замком будет пользоваться один человек, т.е. я любимый: забыл "скрутить" - сам себе злобный буратина, а если еще кто-то, да еще и не такой ответственный и с плохой памятью? Постоянно думать, а не забыл ли он это сделать?
Если это конечно не курсовая работа, то делать устройство лучше по принципу работы кодового замка с одним наборным кругом - покрутили влево-вправо-влево-...-открыли.
И еще лучше не на потенциометре, а на энкодере. "Влево на X щелчков (которые, кстати, весьма неплохо ощущаються тактильно) - некоторая пауза (или нажали кнопку, да хотя бы на том же энкодере) - вправо на Y - пауза/кнопка - влево на Z - и т.д." Можно обойтись без паузы/кнопки если каждое следующее число из кода вращать в противоположную сторону. Пауза/кнопка дает возможность следующее число вращать в ту же сторону.
Достоинства очевидны: 1) энкодер надежнее потенциометра, тем более восьми; 2) всего одна "ручка" - а значит устройство дешевле, меньше в габаритах, надежнее; 3) не важно в каком положении осталась "крутилка" после набора - энкодеру все-равно; 4) любое количество чисел в коде (в пределах разумного, конечно); 5) любая размерность чисел кода - хоть "5-3-9000-10-..."; 6) если не наносить шкалу, а считать щелчки, то рядом стоящим "не совсем желательным глазам" будет крайне сложно отследить набираемый код, разве что количество чисел в коде.
Из недостатков приходит на ум пока только два - требуется немного больше времени и аккуратности при наборе.
...и аккуратности при наборе.
Прально!
Нефиг пьяным домой возвращаться!
Прально!
Нефиг пьяным домой возвращаться!
Для такого состояния предусмотреть большую красную кнопку и алкотестер: дыхнул, нажал - дверь и открылась.
может проще поставить 8 кнопок и задать определенный порядок их нажатия?
или вот: http://ru.aliexpress.com/item/4-x-4-Matrix-Keypad-Membrane-Switch-8-pins-connector-SCM-Outside-enlarge-Keypad-For-Arduino/1968204049.html?adminSeq=221078962&shopNumber=1280487