Цепь кнопки отводит всю энергию от светодиодов
Я новичок в 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);
}
}
2 ответа
Лучший ответ:
Согласно вашему заявлению, провод от плюса к ряду, а провод оттуда к другому ряду, обратно к земле
.
Это описывает короткое замыкание между V+ и землей.
Отсоедините провод заземления или положительный провод.
Ваш переключатель закорачивает контакт 1 и V+ на землю, когда вы нажимаете переключатель. не этого делать.
Имеющийся у вас резистор вообще ни на что не влияет. На самом деле это не значимая часть вашей схемы. Он находится в середине одного из рядов макетной платы. Все контакты на одной стороне одного ряда макетной платы соединены друг с другом.
В макете каждая строка с 1 по 30 разделена на столбцы ae и столбцы fj. Все выводы ae в ряду соединены друг с другом, а все столбцы fj соединены друг с другом. У вас есть один конец вашего резистора в строке 7, столбце g, а другой конец в строке 7, столбце h. Таким образом, резистор закорочен макетной платой и не служит никакой цели.
Как будто оба конца вашего резистора подключены к разным точкам провода. Если бы вы измерили сопротивление между выводами этого резистора при его подключении, вы бы получили ноль омов.
Вам нужно переставить проводку, чтобы провод от +5 В шел к одному ряду макетной платы. Назовем это строкой +5V. Имейте резистор 10K с одним выводом в другой контакт в этом ряду, а затем поместите другой конец резистора в другой ряд. Назовем это подтягиванием. (Он слабо подключен через резистор 10 кОм к +5 В. Теперь также подключите свой переключатель к этому ряду. Наконец, протяните провод с противоположной стороны переключателя и заземлите.
Обязательно настройте контакт как ВХОД.
Если вы настроите его как ВЫХОД, установите для него ВЫСОКОЕ значение и замкните переключатель, вы замкнете вывод контакта на землю, что, вероятно, разрушит выходной драйвер этого контакта. НЕ ДЕЛАЙТЕ ЭТОГО.
Теперь, когда переключатель разомкнут, подтягивающий резистор слабо подключает контакт к +5 В, поэтому вы получаете ВЫСОКИЙ сигнал. Когда вы замыкаете переключатель, он закорачивает контакт на землю, переводя вход в НИЗКИЙ уровень.
Обратите внимание, что вы можете пропустить подключения к +5 В и вместо этого установить контакт в режим INPUT_PULLUP. В режиме INPUT_PULLUP вывод подключается к +5 В внутри через резистор с большим сопротивлением.
- Остановить мигание светодиодов
- Интеграция 2 кнопок для включения и выключения светодиода.
- Код Arduino для управления 4 светодиодами с 4 кнопок
- Нужен ли подтягивающий/понижающий резистор для цепи светодиода кнопки?
- Прерывание при нажатии кнопки + устранение дребезга
- Светодиод с кнопочным управлением Arduino со сборкой AVR
- Как повторить другое действие внутри цикла?
- Изменение состояния светодиода с помощью кнопки приводит к нестабильному результату
Это решило проблему. Я удалил провод заземления и резистор., @TheCirclesSquared