Почему на кнопке всегда написано LOW?
Это код, который я использовал в своем проекте
void setup() {
Serial.begin(9600);
pinMode(6,OUTPUT);
pinMode(7,OUTPUT);
pinMode(8,OUTPUT);
pinMode(9,OUTPUT);
pinMode(10,OUTPUT);
pinMode(11,OUTPUT);
pinMode(12,OUTPUT);
pinMode(5,INPUT);
}
void loop() {
Serial.println(digitalRead(5));
if(digitalRead(5)==HIGH){
blink(12,100);
blink(11,100);
blink(10,100);
blink(9,100);
blink(8,100);
blink(7,100);
blink(6,100);
Serial.println("blink done");
}
}
void blink(int a,int b)
{
digitalWrite(a,HIGH);
delay(b);
digitalWrite(a,LOW);
delay(b);
}
Ссылка на проект https://www.tinkercad.com/things/55vY18FFxDR-blinking- led-wave/editel?sharecode=xQAM80Uu6sJ-hBnLLd04KasomJ2eNNzWLgKZMARe4ig
@KillerJosh345, 👍2
Обсуждение1 ответ
Лучший ответ:
Когда вы нажимаете кнопку, вы замыкаете нижнюю синюю (GND) и нижнюю красную (+5 В) линии. В наименее серьезном случае это приведет к перезагрузке вашего Arduino, но также может повредить кнопку, сжечь провод или конденсатор или вывести Arduino из строя. На плате предусмотрена некоторая защита, позволяющая предотвратить серьезное повреждение или даже травму, но тем не менее вам следует абсолютно избегать замыкания +5 В на GND.
Исправить на самом деле довольно просто: замените короткий синий провод большим резистором, примерно 10 кОм. Тогда кнопка по-прежнему будет читать низкий уровень, когда она не нажата, но читать высокий уровень, когда она нажата. Это называется «вытягиванием вниз». резистор.
ОП запускает симуляцию... короткое замыкание, вероятно, не моделируется... ваш ответ применим только к реальному оборудованию, @jsotola
Это следует отметить, но здесь это не сработало, поскольку это всего лишь симуляция., @KillerJosh345
- Как использовать SPI на Arduino?
- Как решить проблему «avrdude: stk500_recv(): programmer is not responding»?
- Как создать несколько запущенных потоков?
- Как подключиться к Arduino с помощью WiFi?
- avrdude ser_open() can't set com-state
- Как узнать частоту дискретизации?
- Что такое Serial.begin(9600)?
- Я закирпичил свой Arduino Uno? Проблемы с загрузкой скетчей на плату
подключите только переключатель, резистор и светодиод... определите, какие два контакта соединяются при нажатии кнопки... подозреваю, что левый верхний контакт всегда подключен к левому нижнему контакту, @jsotola
L1 и L2 или R1 и R2 (L для левого, R для правого) соединяются, когда кнопка открыта. [ссылка]https://www.tinkercad.com/things/kMT2yOJpFzg-analog-read/editel?returnTo=%2Fdashboard%3Fcollection%3Ddesigns%26type%3Dcircuits&sharecode=OoTMPbTeJWJGX6WAKZCwLJWxiERzOEBsVfjqZH9p4Kw вот я и проверил., @KillerJosh345
у вас коричневый провод подключен к L1, который всегда подключен к L2, а L2 подключен к земле... почему вы удивляетесь, что коричневый провод всегда заземлен?, @jsotola
Да, я знаю об этом, но меня беспокоит то, что он не отображает 1 и не мигает после нажатия кнопки. Я попытался переместить перемычку контакта D5 на j30, и на нем отобразилась 1, и мигание начало работать (поскольку R1 и R2 подключены, но это противоречит назначению переключателя)., @KillerJosh345
Вы имеете в виду, что когда вы замыкаете 5 В на GND, нажимая кнопку (именно так вы его подключили), он не работает? Возможно, Polyfuse требует некоторого времени для сброса или защиты USB-порта., @KIIV
отсоедините провод 5 В от a30... переместите D5 на j30... включите внутренний подтягивающий резистор
pinMode(5,INPUT_PULLUP);
, @jsotolaЯ изменил условие if digitalRead на НИЗКОЕ, и, как сказал @jsotola, я изменил pinMode на INPUT_PULLUP, *ЭТО РАБОТАЛО*... каким-то образом.... Мы будем очень признательны, если вы объясните, почему провод 5 В и это типичное кнопочное соединение не работали., @KillerJosh345
в схеме выше D5 всегда подключен к GND... подключение 5 В к GND не приводит к повышению напряжения на D5... в реальной схеме соединение между 5 В и GND может легко что-то повредить, @jsotola
Понятно, но почему приведенная ниже типичная схема кнопки даже работает, а не здесь. Можно ли переделать вот эту кнопку......? Мои ссылки на симуляции: https://imgur.com/a/jUagd1q (изображение) https://imgur.com/a/vnZSJ6H (видео), @KillerJosh345