Кнопочные ковбои

Тема в разделе "Arduino & Shields", создана пользователем alex_kart, 11 окт 2014.

  1. alex_kart

    alex_kart Нуб

    Есть вопросик по эксперименту №12 - кнопочные ковбои.
    Там к одной ножке кнопки подведена земля, а потенциал второй считывается. Факт нажатия кнопки определяется по наличию сигнала LOW на соответствующем выходе (судя по коду)
    Когда кнопка нажата понятное дело что потенциал ножки будет равен потенциалу земли, т.е напряжение на выходе будет равно 0, что соответствует low сигналу
    Но почему когда кнопка не нажата, на вывод будет подаваться сигнал HIGH? В таком случае цепь разомкнута и фактически как я понимаю меряется разность потенциала разомкнутой ножки и потенциала земли, и это число может быть каким угодно..
    Не было ли более правильным подключить к одной ножке питание, ко второй землю через резистор и мерить сигнал на той ножке, к которой присоединена земля с резистором? Тогда в ненажатом состоянии в этой точке потенциал был бы равен потенциалу земли (т.к через резистор не проходил бы ток, сл-но его напряжение было бы равно 0) а нажатом состоянии мы бы прочитали величину напряжения на резисторе, т.е получили бы HIGH
     
  2. funyfizik

    funyfizik Нерд

    А на практике попробовал так? Самому стало интересно, но еще не делал этот опыт) жду ответа)
     
  3. ets

    ets Нерд

    Внимательно смотри код и предыдущие уроки. Есть такой режим, как INPUT_PULLUP - режим ввода с подтягивающим резистором.

    Цитирую девятый урок:

    Обрати внимание, что в восьмом уроке мы не используем эту фичу и вручную подключаем резисторы между выходом 5 В и кнопкой.
     
  4. funyfizik

    funyfizik Нерд

    Ведь логично, что если его явно настроить то только в том случае пин будет работать с подтягивающим ризистром. А поскольку в коде явного указания нет, то вопрос автора поста абсолютно верный. Почему сигнал без указания на подтягивающий резистор имеет сигнал high а не low?
     
  5. altex

    altex Гик

    Внимательно смотрим код, и видим, что есть.
    Код (Text):
        pinMode(buttonPins[player], INPUT_PULLUP);
     
  6. ets

    ets Нерд

    В коде есть явное указание. Смотри сообщение altex'a. Когда дойдёшь до этого урока и сам всё проделаешь, тогда будет понятнее. А пока можешь поверить нам на слово.
     
    funyfizik нравится это.
  7. funyfizik

    funyfizik Нерд

    понял, спасибо))))

    То есть при таком ввиде мы получаем сигнал high когда кнопка разжата? А где можно прочитать по подробнее о подтягивающем резистре?
     
  8. ets

    ets Нерд

    http://wiki.amperka.ru/конспект-arduino:кнопка
     
    funyfizik нравится это.
  9. funyfizik

    funyfizik Нерд

  10. alex_kart

    alex_kart Нуб

    Спасибо за разъяснения, все почти прояснилось :)

    Остались неясными кое-какие моменты с подтягивающим резистором

    В схеме включения подтягивающего резистора, что по ссылке http://wiki.amperka.ru/конспект-arduino:кнопка при "выключенной" кнопке контакт Vout оказывается соединенным с внешним источником нагрузки через резистор с большим сопротивлением.

    1) Не ясно, какое предназначение этого резистора, если бы его не было то напряжение на Vout и так бы было бы равно Vcc, разве нет?
    2) Разве этот "большой" резистор не должен вызвать сильное падение напряжения Vcc, пропуская его через себя? В результате, напряжение Vout по идее должно оказаться меньшим Vcc?
    3) В эксперименте 9 и 12 - где Vcc из схемы? В разомкнутом состоянии кнопки фактически вход остается не подключенным ни к чему, но тем не менее на нем обнаруживается некое напряжение...
    4) Верно ли, что когда я пишу в скетче analogRead мысленно можно представить что вольтметр подключается к земле и к считываемому пину, и разность потенциалов которую он померил является результатом analogRead, только шкала 0..5 В переводится в шкалу 0..1023 ?
    5) Померил вольтметром напряжение между землей и цифровыми/аналоговыми выходами, в результате пины, для которых не был установлен режим OUTPUT выдают 2 вольта.
    Получается, что даже если не затрагивать пин в скетче он все равно будет выдавать на выход какой то ток? И именно эти вольты и считываются в моем 3м вопросе)
     
  11. ets

    ets Нерд

    1) Цитирую всё ту же статью
    Vout и резистор подключены параллельно, поэтому никакого влияния не будет (ток течёт по пути наименьшего сопротивления)