Гикам на проверку - кнопка к аналоговому входу Wemos d1

Тема в разделе "Arduino & Shields", создана пользователем kt315where, 27 дек 2017.

  1. kt315where

    kt315where Гик

    Здравствуйте

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

    именно к аналоговому входу, т.к все цифровые пины будут в будущем заняты реле и gsm модулем

    Конкретно для Wemos схему не нашел

    Подключил по этой схеме. Резистор впаял на 10ком

    g4cMUU1OcFw.jpg


    Скетч вот такой

    Код (C++):

    void setup() {
       pinMode(A0, INPUT);
      Serial.begin(9600);
     
    }
    void loop() {
      int sensorValue = analogRead(A0);
     

      if (analogRead(A0) > 300)
      {
        Serial.println("OFF");
      }
     
    }
    Использую обычную пружинную кнопку ON-OFF без фиксации
    Когда кнопка нажата, то на аналоговый вход подается 3.3в, то в сериал пишет "OFF"

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

    Да, собственно мой вопрос - правильно ли я подключил кнопку и зачем в этой схеме нужен резистор? Обязателен ли он или можно убрать?
     
  2. REMBOV

    REMBOV Воскреситель Матрёшек

    Аналоговый выход может быть и цифровым А резистор поставить надо
     
  3. b707

    b707 Гуру

    Вариантов подключения кнопки несколько. Ваш - почти "правильный". Резистор в этой схеме нужен для того, что при отжатой кнопке на ней был четкий "ноль", а не наводки из эфира. Для полноты стоило бы добавить еще один резистор - между входом А0 и кнопкой -сопростивлением 300 Ом - 3 КОм. Зачем он нужен - недавно обсуждали вот тут (сообщение #15 и далее)
     
    kt315where нравится это.
  4. ZAZ-965

    ZAZ-965 Гуру

    Если используете аналоговый пин - выгоднее использовать R-2R клавиатуру, как на LCD Keypad Shield.
     

    Вложения:

    • R-2R-key.png
      R-2R-key.png
      Размер файла:
      16,1 КБ
      Просмотров:
      884
    Igor68 и kt315where нравится это.
  5. kt315where

    kt315where Гик

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


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

    и спасибо всем за ответы в теме. С наступающим!
     
  6. REMBOV

    REMBOV Воскреситель Матрёшек

    взаимно
     
    kt315where нравится это.
  7. kt315where

    kt315where Гик

    Здравствуйте, подниму тему еще раз

    Решил все-таки подключить несколько кнопок к одному аналоговому входу A0, согласно вот этой схеме:

    connection.jpg

    в статье откуда взята схема написано, что все резисторы используются номиналом 1 Ком

    три резистора на кнопки и один резистор к GND, для защиты от наводок

    С резисторами на кнопках всё понятно, а вот про резистор подтягивающий землю - на других проектах с кнопками видел что между A0 и GND ставят резистор 2Ком или 10Ком, объясните пожалуйста - какие еще номиналы резистора на GND допустимы и от чего это зависит?
     
  8. b707

    b707 Гуру

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

    Но вообще, как и в случае подтяжки - конкретный номинал резистора не так и важен. В случае обычной кнопки подтяжка к GND. к примеру. будет работать и при резисторе 1к, и 10к, и 50к. Разницы в большинстве случаев вы не заметите. Так и в этой схеме - резистор к GND можно поставить и 1к, и 2к, и 5. и 10... И резисторы между кнопками тоже могут быть в очень широком диапазоне, а не только 1к. Главное - понимать, как это работает и зачем этот резистор нужен.
     
    Последнее редактирование: 19 янв 2018
    kt315where нравится это.