pull-down резистор и подключение кнопки к Arduino

Val8a
Offline
Зарегистрирован: 28.03.2011

 Вопрос наверно ламерский. Если я все правильно понимаю, то кнопка подключается такподключение кнопки к Arduino
Согласующий резистор (pull-down), должен быть 10кОм.
Хочу понять как в общем случае расчитывается номинал этого резистора? Просто я скорее программист и поэтому такие вопросы возникают.
 

Zaliv
Offline
Зарегистрирован: 05.03.2011

 В случае Arduino, по-моему достаточно запомнить, что pulldown 10kOhm. В принципе, как пишут, он может быть и больше 100kOhm и меньше 4 kOhm, Но я как-то эксперементировал, считывал значение analogRead подключив выход через pull-Down  к земле, так вот у меня при 5 kOhm, значение значительно гуляло, а при 10 стабильно давало 0, изредка проскакивали значения отличные от 0, но в пределах 5. 

Nikelbak
Nikelbak аватар
Offline
Зарегистрирован: 22.03.2011

 В общем случае в подобной схеме PD резистор лучше подбирать вручную начиная с 10кОм, иногда требуется и больше. Так как я пользуюсь в основном трансформаторным блоком питания да и тесловки рядом разряды пускают, я ставлю около 5 кОм чтобы всякие наводки сливались на землю. Кстати в буржуйской стороне света видел пометку что можно последовательно кнопке воткнуть дросселек дабы избежать паразитной емкости между контактами кнопки хотя она и так предельно мола.

Probelzaelo
Offline
Зарегистрирован: 15.04.2011

Эти резисторы не расчитываются, есть рекомендация производителя использовать 10КОм этого номинала и следует придерживаться, при необходимости можно заменить на поменьше, на сколько это может быть поменьше можно прикинуть ...

На сайте производителя есть документ хороший http://www.atmel.com/dyn/resources/prod_documents/doc8161.pdf в котором описываютсч микроконтроллеры ATmega48PA/88PA/168PA/328P там стр. 313 есть следующую информация по предельным токовым нагрузкам на выводы:  

DC Current per I/O Pin ............................................... 40.0 mA. Вот отсюда уже можно сплясать
Зная что перегружать выходы мы не хотим, то получим что, при максимльно допустимом напряжении питания 6.0V и заданном предельном токе, сопротивление нагрузки не должно быть менее 150 Ом.  Следовательно более 150 Ом уже безопасно для выходов контроллера в плане перегрузки, конечно такие токи ни кому не интересны ведь при таких подпорах сразу на всех 20 портах в сумме это составит до 800мА потерянные в тепло - зимний вариант ;)).  Поэтому подпорки желательно ставить с максимально большим сопротивлением, но в разумных пределах, учитывая что чем выше рабочая частота тем сопротивление поменьше. Рекомендуемое значение - 10 КОм оно всегда и гарантированно работает, дальнейшее увеличение делает подпор менее эффективным, особенно при работе на более высоких частотах, и могут наблюдаться эффекты неопределенности состояния, такие же как на полностью висящих выводах (при чтении не подключенного порта могут быть прочитаны или 0, или 1 без системы)  Вот как то так...  

Куда подпирать кнопку на землю или питание? Открытый вопрос, все зависит от того какое значение хотите иметь по умолчанию... 

 

Val8a
Offline
Зарегистрирован: 28.03.2011

 Спасибо. Ясность некоторая наступила. Буду просто использовать 10кОм и не заморачиваться :)

Adessit
Adessit аватар
Offline
Зарегистрирован: 12.04.2011

А не кто не помнит что есть встроенные в ардуино пуллдаун резисторы  20К которые по умолчанию отключены)))

из книги дневник програмиста ардуино:

pinMode(pin, INPUT); // настраиваем пин на вход

digitalWrite(pin, HIGH); //включаем подтягивающий резистор на 20К

 

Probelzaelo
Offline
Зарегистрирован: 15.04.2011

Если внимательнее то в схеме резистор "тянет" к земле, а встроенные пуллдаун тянут к питанию...

Впрочем мне лично, тоже больше нравится подавать на вход землю через кнопку, а тянуть вход "вверх". чем так как показано на макете наизнанку...

Nikelbak
Nikelbak аватар
Offline
Зарегистрирован: 22.03.2011

Если топик-стартер задал этот вопрос, то на мой взгляд пусть разберется сначало с базовым вопросом, к чему собственно и ведет пример. А там он уже сам решит куда и как подтягивать.

kikia99
Offline
Зарегистрирован: 22.03.2011

тянуть к плюсу это жрать энергию в ожидание да и зазамлится в статике всетаки луч а номинал   вытекает из напряж питания  и таков потребления  самого контроллера  читайте даташи там все это есть  на разных ардуино стоят хоть и похожие  но немного разные контроллеры  и подходы к ним то же немного разные 

Adessit
Adessit аватар
Offline
Зарегистрирован: 12.04.2011

kikia99 пишет:

тянуть к плюсу это жрать энергию в ожидание 

Немного разгребу завалы и померяю токи, думаю, они будут не еденицы мили-, а микроамперы, что соовсем не значительно. В масштабах проекта. Тогда уже следует говорить и о другом МК для долгоиграющих вариантов.

От статики спасает только хорошее заземление(радиатор-батарея отопления не вариант вообще) ну и экранирование никто не отменял. Браслеты и прочие пренадлежности тоже кстате. Про что все всегда в основном все забывают, я не исключение. Видимо горького опыта еще нету.

Вобщем тему жевали миллион раз. Еще нужно не забывать про дребезг контактов.

Nikelbak
Nikelbak аватар
Offline
Зарегистрирован: 22.03.2011

да уж реально в дебри залезли 

Probelzaelo
Offline
Зарегистрирован: 15.04.2011

Мерять то особо нечего. игнорим полвольта падения на ключах, остается 5 вольт и 10кОм.. итого теряем от источника ток на каждой подпорке до 0.5 мА или всего до 10-15 мА плюс к току потребления контроллером и остальными элементами... не много для устройства питающегося нормального источника, порядочно для микромощного(долгоиграющего).

Заземление на батарею не вариант. статику конечно уберет, но наводку от сети до 110 в может и сохранить.
 

 

Nikelbak
Nikelbak аватар
Offline
Зарегистрирован: 22.03.2011

Вы забываете о том что иногда крайне необходимо создать на входе логическую единицу. ТОгда как ни крути к плюсу тянуть придется. 

Probelzaelo
Offline
Зарегистрирован: 15.04.2011

К плюсу прекрасно подтянет и встроенная подпорка. Для лог.единицы на входе ненужно ни какого гимора снаружи создавать ...

2 копии этого сообщения ласково удалил. С уважением Adessit

kadushkin
Offline
Зарегистрирован: 18.12.2011

Adessit пишет:

А не кто не помнит что есть встроенные в ардуино пуллдаун резисторы

 

Probelzaelo пишет:

К плюсу прекрасно подтянет и встроенная подпорка. Для лог.единицы на входе ненужно ни какого гимора снаружи создавать ...

А схемой подключения кнопки с использованием внутренней подтяжки цифрового входа кто-нибудь поделится?

Probelzaelo
Offline
Зарегистрирован: 15.04.2011

Probelzaelo пишет:

К плюсу прекрасно подтянет и встроенная подпорка. Для лог.единицы на входе ненужно ни какого гимора снаружи создавать ...

2 копии этого сообщения ласково удалил. С уважением Adessit

Премного благодарен ;) умысла по два раза повторять не было, народ доходчив )

kadushkin пишет:
А схемой подключения кнопки с использованием внутренней подтяжки цифрового входа кто-нибудь поделится?

ЗАчем схема? просто кнопка, с порта на землю. внутренний резистор включить...  смотрим прямо тут http://arduino.ru/Tutorial/DigitalPins

 

kadushkin
Offline
Зарегистрирован: 18.12.2011

Типа вот так?

Кнопка (переключатель - микрушка), входы с подтяжками.

Probelzaelo
Offline
Зарегистрирован: 15.04.2011

kadushkin пишет:

Типа вот так?

Кнопка (переключатель - микрушка), входы с подтяжками.

Это что, кнопка - переключатель? для чего ее на два порта используешь? или D1  не участвует и тут просто "под руку попалось"

у кнопки всего 2 состояния, а значит для ввода состояняния  кнопки достаточно порта D2.

pinMode(D2_pin, INPUT); // назначить выводу порт ввода
digitalWrite(D2_pin, HIGH); // включить подтягивающий резистор

все! теперь

при замкнутой кнопке D2=0, а при разомкнутой кнопке D2=1.

kadushkin
Offline
Зарегистрирован: 18.12.2011

Спасибо!

Да верно, всего два состояния.

Ну значит, я так и подключу, только с использованием одного цифр. входа.

leshak
Offline
Зарегистрирован: 29.09.2011

Чисто что-бы поучаствовать в такой бурной теме :)

Adessit пишет:

А не кто не помнит что есть встроенные в ардуино пуллдаун резисторы  20К которые по умолчанию отключены)))

 

Когда больше некчему прицепится - цепляются к терминологии :)

пуллдауна у нее как раз и нет.

  • Pull-Up - подтягивающий к питанию
  • Pull-Down - подтягивающий к земле

У арудины (вернее самого камня) есть встроенный первый вариант -  пуллап.

  • Pull - тянуть
  • Up - вверх
  • Down - вниз

 

 

 

 

Probelzaelo
Offline
Зарегистрирован: 15.04.2011

leshak пишет:

Чисто что-бы поучаствовать в такой бурной теме :)

Adessit пишет:

А не кто не помнит что есть встроенные в ардуино пуллдаун резисторы  20К которые по умолчанию отключены)))

 

Когда больше некчему прицепится - цепляются к терминологии :)

пуллдауна у нее как раз и нет.

  • Pull-Up - подтягивающий к питанию
  • Pull-Down - подтягивающий к земле

У арудины (вернее самого камня) есть встроенный первый вариант -  пуллап.

  • Pull - тянуть
  • Up - вверх
  • Down - вниз

Притащил свою масленку, чисто подлить  в пЫламя;))

В подтверждение правоты leshak-а, прокуриваем самый первый попащщий даташит http://www.rlocman.ru/i/File/dat/Atmel/Microcontrollers_MCU/ATMEGA328P_A... страницы 75-81, курить можно с картинками.

Но суть от этого не меняется.  Включаем пин в режим чтения, записываем на выход единицу, с огромным удобольствием, такие счастливые, читаем состояние пина закороченного или нет на землю через кнопку...

ни каких внешних подпорок точно не нужно...

 

leshak
Offline
Зарегистрирован: 29.09.2011

Probelzaelo пишет:

 

В подтверждение правоты leshak-а 

Да я думаю тут и подтверждать нечего. Мне кажется Adessit банально описался в торопях. На 99% уверен что он это и так знал. Я просто "воспользовался случаем" рассказать как и почему они зовутся в "буржуйских даташитах". Может кому пригодится. Что-бы не зазубривать "куда какой тянет" ;)

Probelzaelo пишет:

счастливые, читаем состояние пина закороченного или нет на землю

Тут есть, маловероятная, но "западло" возможно. Если мы где-то случайно включем пин на выход (вместо INPUT , OUTPUT напишем). Дадим туда high, а потом нажмем кнопку.... "получим палево ноги" (в лучшем случае).

А можем быть и скетч правильный. Но, во  время эксперементов, вполне реально "схема собрана старая, а влил новый скетч" (или не тот) и...

Вообщем "по взрослому", для безопастности, между кнопкой и ногой нужно втыкнуть токоограничивающий резистор.  Включаем подтяжку, потом соеденяем PIN->220 Om ->кнопка -> земля.

P.S. Но, честно говоря, в 95% случаев я сам забиваю, из лени,  на эту "страховку" и подключаю PIN->кнопка->земля. Пока везло. Хоть пару раз и "штирлиц был близок к провалу" :)

 

Probelzaelo
Offline
Зарегистрирован: 15.04.2011

leshak пишет:

Вообщем "по взрослому", для безопастности, между кнопкой и ногой нужно втыкнуть токоограничивающий резистор.  Включаем подтяжку, потом соеденяем PIN->220 Om ->кнопка -> земля.

[поскипано]

P.S. Но, честно говоря, в 95% случаев я сам забиваю, из лени,  на эту "страховку" и подключаю PIN->кнопка->земля. Пока везло. Хоть пару раз и "штирлиц был близок к провалу" :) 

Если по взрослому, то экономить на Соп..люшках не следует... или пользоваться Аpдуиной для ленивых ;) с защищенными портами от всего что только бывает, кроме экзотики разумеется ))