Цепь кнопки отводит всю энергию от светодиодов

Я новичок в Arduino, поэтому, пожалуйста, простите меня, если я не знаю правильных терминов для вещей.

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

Кнопка не нажата Кнопка нажата

Я не могу разместить файлы изображений на imgur и не знаю, насколько хорошо Flikr будет работать с ним.

Сейчас:

Для светодиодов используются резисторы сопротивлением 220 Ом. Тот, что для кнопки, представляет собой резистор на 10 кОм.

Это также происходит без установленного резистора. Я попытался просто заменить кнопку проводом от плюса к ряду, проводом, ведущим оттуда к другому ряду, обратно к земле.

Что мне сделать, чтобы это исправить?

Редактировать: извините за очень низкое качество изображений, они были обновлены.

Вот код, но в основном он не имеет значения:

//DEFINE STUFF BABYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY
int ButtonState2 = 0;
int ButtonState1 = 0;
int ButtonState0 = 0;
const int ButtonPin2 = 2;
const int ButtonPin1 = 1;
const int ButtonPin0 = 0;

void setup() {
  // поместите сюда код установки для однократного запуска:
  Serial.begin(9600);
  pinMode(13, OUTPUT);
  pinMode(12, OUTPUT);
  pinMode(11, OUTPUT);
  pinMode(10, OUTPUT);
  pinMode(9, OUTPUT);
  pinMode(8, OUTPUT);
  pinMode(7, OUTPUT);
  pinMode(6, OUTPUT);
  pinMode(5, OUTPUT);
  pinMode(4, OUTPUT);
  pinMode(3, OUTPUT);
  digitalWrite(13, LOW);
  digitalWrite(12, LOW);
  digitalWrite(11, LOW);
  digitalWrite(10, LOW);
  digitalWrite(9, LOW);
  digitalWrite(8, LOW);
  digitalWrite(7, LOW);
  digitalWrite(6, LOW);
  digitalWrite(5, LOW);
  digitalWrite(4, LOW);
  digitalWrite(3, LOW);
  pinMode(ButtonPin2, INPUT);
  pinMode(ButtonPin1, INPUT);
  pinMode(ButtonPin0, INPUT);
  Serial.print(78);
}

void loop() {
  // поместите сюда ваш основной код для многократного запуска:
  ButtonState2 = digitalRead(ButtonPin2);
  ButtonState1 = digitalRead(ButtonPin1);
  ButtonState0 = digitalRead(ButtonPin0);
  if (ButtonState2 == HIGH){
    digitalWrite(13, HIGH);
    }
    else{
      digitalWrite(13, LOW);
      }
}

, 👍0


2 ответа


Лучший ответ:

1

Согласно вашему заявлению, провод от плюса к ряду, а провод оттуда к другому ряду, обратно к земле.

Это описывает короткое замыкание между V+ и землей.

Отсоедините провод заземления или положительный провод.

,

Это решило проблему. Я удалил провод заземления и резистор., @TheCirclesSquared


1

Ваш переключатель закорачивает контакт 1 и V+ на землю, когда вы нажимаете переключатель. не этого делать.

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

В макете каждая строка с 1 по 30 разделена на столбцы ae и столбцы fj. Все выводы ae в ряду соединены друг с другом, а все столбцы fj соединены друг с другом. У вас есть один конец вашего резистора в строке 7, столбце g, а другой конец в строке 7, столбце h. Таким образом, резистор закорочен макетной платой и не служит никакой цели.

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

Вам нужно переставить проводку, чтобы провод от +5 В шел к одному ряду макетной платы. Назовем это строкой +5V. Имейте резистор 10K с одним выводом в другой контакт в этом ряду, а затем поместите другой конец резистора в другой ряд. Назовем это подтягиванием. (Он слабо подключен через резистор 10 кОм к +5 В. Теперь также подключите свой переключатель к этому ряду. Наконец, протяните провод с противоположной стороны переключателя и заземлите.

Обязательно настройте контакт как ВХОД.

Если вы настроите его как ВЫХОД, установите для него ВЫСОКОЕ значение и замкните переключатель, вы замкнете вывод контакта на землю, что, вероятно, разрушит выходной драйвер этого контакта. НЕ ДЕЛАЙТЕ ЭТОГО.

Теперь, когда переключатель разомкнут, подтягивающий резистор слабо подключает контакт к +5 В, поэтому вы получаете ВЫСОКИЙ сигнал. Когда вы замыкаете переключатель, он закорачивает контакт на землю, переводя вход в НИЗКИЙ уровень.

Обратите внимание, что вы можете пропустить подключения к +5 В и вместо этого установить контакт в режим INPUT_PULLUP. В режиме INPUT_PULLUP вывод подключается к +5 В внутри через резистор с большим сопротивлением.

,