INPUT PIN постоянно в состоянии HIGH?

Тема в разделе "Схемотехника, компоненты, модули", создана пользователем DenisP, 28 апр 2016.

  1. DenisP

    DenisP Нуб

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

    Что у нас есть.
    Я собрал простенькую схемку, в которой присутствует четыре диода и одна кнопка.
    Четыре пина в режиме OUTPUT и один пин в INPUT.

    На INPUT подается сигнал через кнопку, которая запитывается с выхода 5V на плате.
    И вот какая штука происходит.

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

    Я не сильно еще шарю во всем этом и в чем же проблема мне не совсем ясно.


    Код (C++):


    bool isButtonDown = false;

    void setup() {
      // put your setup code here, to run once:
      pinMode(4,OUTPUT);
      pinMode(5,OUTPUT);
      pinMode(6,OUTPUT);
      pinMode(7,OUTPUT);
      pinMode(9,INPUT);
    }

    void loop() {
      // put your main code here, to run repeatedly:
      bool isButtonDown = digitalRead(9);
      if (isButtonDown){

        digitalWrite(4, HIGH);
        delay(300);
        digitalWrite(4, LOW);
        delay(100);

        digitalWrite(5, HIGH);
        delay(300);
        digitalWrite(5, LOW);
        delay(100);

        digitalWrite(6, HIGH);
        delay(300);
        digitalWrite(6, LOW);
        delay(100);

        digitalWrite(7, HIGH);
        delay(300);
        digitalWrite(7, LOW);
        delay(100);
     
        isButtonDown = false;
        delay(100);
      }
    }

     
     
  2. Tomasina

    Tomasina Сушитель лампочек Модератор

    поэтому и ловит все наводки.
    Все элементы управления должны быть подключены "с подтяжкой", чтобы наводки утекали либо в плюсовую линию питания, либо на землю:
    120.png 121.png
     
    DenisP нравится это.
  3. DenisP

    DenisP Нуб

    Ага, все понял. Буду пробовать. Спасибо