Проблемы с чувствительностью Arduino Uno

karsar
Offline
Зарегистрирован: 03.02.2012

 Всем здрасти. Недавно приобрёл Arduino Uno и Arduino Nano по скольку в электроники не соображаю не особо, начал эксперементировать с разными скетчами, но видемо потом что то сполил :( Изначально Uno работала как надо, но потом беру стандартный скетч (из examples) с кнопкой, при нажатии н которуу загорается свето диод. Диод горит постоянно, отключаю кнопку диод гаснет. Опытным путём было выяснено что при подношени к любому пину настроеному на input металлического предмета или пальца, он сработывает. Atmege328 заменил на новую, прошил bootloader, проблема осталась. Между Uno,й и диодом резистор ставил, Uno,й и кнопкой тоже. После эксперементов с Nano таже проблема :(  Вообщем грешу на то что спалил и там, и там какой то один элемент. Прошу помощи разобраться.
 

 

nestandart
nestandart аватар
Offline
Зарегистрирован: 15.06.2011

>>Между Uno,й и диодом резистор ставил, Uno,й и кнопкой тоже<< 

Вот здесь и проблема.

Резистор нужно ставить не между кнопкой и портом , а притянуть порт к земле или к +5.

Одна нога резистора включается между кнопкой и портом , вторая - к земле.

Резистор 10 - 20КОм.

step962
Offline
Зарегистрирован: 23.05.2011

Цитата:
 Одна нога резистора включается между кнопкой и портом , вторая - к земле.

При таком включении кнопки, когда она нажата, на ногу Arduino подается полное напряжение источника питания. Вроде бы не страшно - ведь вывод микроконтроллера  ATMega, сконфигурированный в качестве входа, имеет большое сопротивление и, соответственно, через него протекает весьма малый ток. Токоограничивающий резистор в таком случае нужен, как собаке - пятая нога.

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

Вы можете сказать что это паранойя и что вы достаточно внимательны и всегда прибираетесь на рабочем месте, прежде чем приступать к новому проекту. На что я отвечу вам, что ТБ (если кто не знает - техника безопасности) это тоже свод глупейших, параноидальных правил. И их тоже вполне можно нарушать. До поры до времени. То же самое и с правилами электротехники - их вполне можно нарушать - до поры до времени. А потом писать на форум: "че эта с маей ардуиной случилось - перестала работать как надо"

nestandart
nestandart аватар
Offline
Зарегистрирован: 15.06.2011

>> Вы можете сказать что это паранойя и что вы достаточно внимательны и всегда прибираетесь на рабочем месте, прежде чем приступать к новому проекту.<<

Когда я купил свою первую дуину , то первым делом я обклеил нижнюю сторону платы толстым двусторонним скотчем.

ТБ действительно соблюдать нужно , когда я делал робота - спалил два МК.

step962
Offline
Зарегистрирован: 23.05.2011

nestandart пишет:

 двусторонним скотчем.

А двухсторонним-то зачем? Чтобы она еще и клеилось к кому ни попадя?

nestandart
nestandart аватар
Offline
Зарегистрирован: 15.06.2011

>>А двухсторонним-то зачем? Чтобы она еще и клеилось к кому ни попадя?<< 

Другого не было.

Он довольно толстый и плотный , а на липкую сторону прилепил кусок бумаги.

karsar
Offline
Зарегистрирован: 03.02.2012

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

Mastino
Offline
Зарегистрирован: 03.12.2011

Вам лучше начать с этого:
http://www.ladyada.net/learn/arduino/starterpack.html
 

nestandart
nestandart аватар
Offline
Зарегистрирован: 15.06.2011

 Если букв вы не понимаете , то вот вам графический вариант включения кнопки (датчиков и т.д.).

 

 

 

karsar
Offline
Зарегистрирован: 03.02.2012

Имеете ввиду так?
http://arduino.cc/it/Tutorial/Button

nestandart
nestandart аватар
Offline
Зарегистрирован: 15.06.2011

>>Имеете ввиду так?<< 

 

То что я имел в виду я написал и нарисовал.

Каким еще способом можно донести до вас информацию ?

karsar
Offline
Зарегистрирован: 03.02.2012

понял большое спасиби, прийду домой, буду пробовать.

siomoko
Offline
Зарегистрирован: 08.01.2012

Из всей переписки так толком никто и не ответил. Куча умников, которые начали отправлять на примитивные примеры.  Человек русским зыком написал "Опытным путём было выяснено что при подношени к любому пину настроеному на input металлического предмета или пальца, он сработывает". У меня та же проблема, не могли бы опытные, вменяемые люди подсказать что это может быть, и как это исправить?

nestandart
nestandart аватар
Offline
Зарегистрирован: 15.06.2011

 siomoko , если вы в упор не видите или не понимаете простейшей схемы включения , то как еще нужно обяснить ?

Пин не притянутый к земле и не подключеный ни к чему будет принимать случайные значения

от случайных  статических , электрических , электромагнитных наводок (помех).

То же самое и с аналоговыми пинами.

Чтобы все нормально работало пин ВВСЕГДА должен быть подключен либо к земле , либо к 

положительному сигналу.

 

carduino.ru
Offline
Зарегистрирован: 06.12.2011

Кнопку вешаем на вход ардуины и GND и программно подключаем внутренний подтягивающий резистор.

При таком подключении не будет срабатывать от наводок и минимум обвеса

nestandart
nestandart аватар
Offline
Зарегистрирован: 15.06.2011

Для первого раза пусть с внешним резистором потренеруется.

Так понятней будет для чего это нужно. 

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

nestandart пишет:

Для первого раза пусть с внешним резистором потренеруется.

Верно. Как человек не поняв принципа подтягивающего резистора может осознанно использовать внутрений? Тем более что он там "только вверх", а если "нужно вниз", то все равно "нужно понимать".

Кстати, я когда начинал, тоже бегал с этим вопросом. Везде видел этот термин "подтягивающий резистор", но нигде не мог найти внятного объяснения что это такое. Все и везде подразумевали что это понятно из самого названия.
Попробую объяснить словами. Хотя лучше картинкой, но лень рисовать.
Представте себе что вход контроллера это такая палочка, которая может качатся вверх-вниз (1/0). Под воздействием внешних сил. Когда мы включаем пин на вход, мы говорим что "эта палочка должна качатся очень легко, от малейшего внешнего воздействия".

Сравниваем схемы из сообщения #6 и #8.
Что происходит когда кнопка разомкнута?

В #6 шесть получается цепи нет. Пин не подключен "никуда". Палочка может "качатся" как ей хочется от легчайших порвывов воздуха (эфирных помех, статики от пальца и т.п.), ноль и единица на ней будет возникать случайным образом.

В #8 будет другая ситуация. Когда кнопка разомкнута, через резистор пин подключен к земле. Если на него случайно наведется какой-то потенциал, он тут же, через резистор, быстро стечет в землю (контроллер его не успеет "заметить", ). Можно представить себе, что этот резистор - это такая тоненькая резиночка или пружинка, которой мы нашу палку-качалку привязали к земле. Она "подтягивает" пин к земле (думаю теперь понятно почему такое название) и он всегда имеет четкое значение, которое не меняется от незначительных внешних воздействий.

Теперь мы нажмем кнопку. То есть подключили к пину еще и +5v. Другими словами "дернули бульдозером нашу палку вверх". Бульдозер, естественно наличие "резиночки" даже не заметит. "Пересилит". Палка поднимется ввех. Примет значение "единица". На пине будет четко 5 вольт. Отпустили кнопку "бульдозер исчез" и резиночка (пружинка) опять опустит палку вниз. В гарантированный ноль.

Теперь про номинал резистора. Почему именно 10-20K?

Давайте рассмотрим крайний случай. Возьмем резистор 0K. То есть тупо проволочку. Перемычку. Прямое соединение. Пока кнопка не нажата - все хорошо. Имеем четкий ноль на пине. Но когда мы нажмем кнопку, у нас получится прямое соединение +5v<->кнопка<->земля. Бешенный ток и карачун блоку питания (USB порту и т.п.), если повезет то только предохранителю. Мы фактически одним бульдозером всегда тянем палку вниз к нулю, а кнопкой подключаем к ней второй бульдозер "вверх". Ну и естесвенно дальше получается либо у бульдозера движок взорвется от нагрузки, либо буксировочный трос лопнет (погорят проводники от большого тока).

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

Рассмотрим противоположный подход. Возмем резистор очень большого номинала. Резистор в 200K. Для тока резистор можно представить как "шланг". 200K - это очень тоненький шланг. Ток в него "еле протискивается". И когда на пин поймается какой-то потенциал из эфира, он может просто не успеть быстро стечь в землю, и контроллер успеет опознать его как единицу. То есть у нас получилась очень слабенькая "подтягивающая резиночка" которую может пересилить любой пук комара и палочка опять начнет "болтатся".
Ну вот опытным путем 10-20K и подобрали. Как компромис между "обычные помехи пересиливает", но при замыкании через него "утекает в потери" терпимое количество тока.

Ну и напоследок. Про упоминаемые "внутренние резисторы". Внутри контроллера, для нашего удобства, производитель уже сделал такие "резиночки-резисторы". Которые можно программно "прицеплять-отцеплять" к пину (но вначале нужно разобраться, как их самому делать). Правда внутренние могут подтягивать только к питанию, а не к земле. То есть подходят только когда нужно что-бы "неподключенный пин" имел гарантированное состояние "1". А при нажимании кнопки "падало в ноль".

 

siomoko пишет:

Из всей переписки так толком никто и не ответил. Куча умников, которые начали отправлять на примитивные примеры. Человек русским зыком 

На всякий случай, вы знаете что вам тут никто ничего не должен? Если вашего мозга не хватает на примитивные примеры, то что вы тут делаете? "Вы ничерта не поняли" и "никто и не ответил" это разные вещи. Что же делать, если ответ примитивен, а вы не способны понять? Если вы хотите гарантированных ответов, то нанимайте платного консультатна и выносите мозг ему.

Вас не смутило даже то, что человек задававший вопрос сказал "понял, спасибо, буду пробовать". Не заронило сомнение "может вы чего-то не поняли"? Ладно "не поняли" это не страшно, переспросили, уточнили. Обычная ситуация. Так нет. Объясняют, видите-ли, не так как вам хочется.

Очень надеюсь что, лично вам, мое объяснение ничем не поможет.