Ардуино не считывает сигнал

jmijAirline
Offline
Зарегистрирован: 22.01.2020

Ребят, помогите. Китайская Ардуино не считывает сигнал через digitalRead, но может отправлять.

То есть код с миганием светодиода на определенный пин работает, но как только я поставлю какое-то условие (если кнопка нажата), все перестает работать. В диспетчере устройств ардуино распознается как "USB-SERIAL CH340". Порты установлены правильно. Стоит сказать, что при выборе ATmega 328p выдает ошибку, с ATmega 328p (old bootloader) загружается на плату, но не работает.

jmijAirline
Offline
Зарегистрирован: 22.01.2020
Код же правильный? А ни черта не работает...
bool val;
void setup() {
  // put your setup code here, to run once:
pinMode(2, OUTPUT);
pinMode(5, INPUT);
val = digitalRead(5);
}

void loop() {
  // put your main code here, to run repeatedly:
if(val == 1) {
  digitalWrite(2, 1);
}

if(val == 0){
  digitalWrite(2,0);
}
}

 

Kakmyc
Offline
Зарегистрирован: 15.01.2018

Строку 7 опусти в loop.
Ты один раз пин опра́шиваешь только. В момент включения

SLKH
Offline
Зарегистрирован: 17.08.2015

jmijAirline пишет:

Код же правильный? А ни черта не работает...
bool val;
void setup() {
  // put your setup code here, to run once:
pinMode(2, OUTPUT);
pinMode(5, INPUT);
val = digitalRead(5);
}

void loop() {
  // put your main code here, to run repeatedly:
if(val == 1) {
  digitalWrite(2, 1);
}

if(val == 0){
  digitalWrite(2,0);
}
}

 

"Код же правильный? "

Нет.

"А ни черта не работает..."

работает, как написано.

 

Во-первых: как подключена кнопка к пину 5? нужна схема или хотя бы словесное описание.

Во вторых: в стр. 07 ардуина считала сигнал и присвоила значение переменной val - 1 раз. Затем в цикле loop она читает это значение val, которое не меняется до маланьиной свадьбы, никакие кнопки при этом не опрашиваются.

 

jmijAirline
Offline
Зарегистрирован: 22.01.2020

Всем спасибо, затупил немного.

p.s. кнопка в основном коде была подключена через INPUT_PULLUP к GND.