Нужна помощь в проекте с кнопкой на Ардуино!

aleksaleons
Offline
Зарегистрирован: 10.04.2021

Есть вот такое задание: Соберите светодиодную шкалу из 10-и светодиодов. Реализуйте два любых вида световых эффекта бегущих огней, переключаемых одной кнопкой.

Я разобрался как подключать это все, как включать и выключать кнопкой один светодиод, но выполнить данное задание не получилось. Перепробовал разные способы, если это можно назвать способами, но корректной работы получить не удалось. Вот код:

const int Led_1 = 2;
const int Led_2 = 3;
const int Led_3 = 4;
const int Led_4 = 5;
const int Led_5 = 6;
const int Led_6 = 7;
const int Led_7 = 8;
const int Led_8 = 9;
const int Led_9 = 10;
const int Led_10 = 11;
 
const int Button = 12;
 
int tekButton = LOW;
 
int prevButton = LOW;
 
boolean ledOn = false;
 
int reg_1 = 0;
 
int reg_2 = 0;
 
void setup()
{
pinMode (Led_1, OUTPUT);
pinMode (Led_2, OUTPUT);
pinMode (Led_3, OUTPUT);
pinMode (Led_4, OUTPUT);
pinMode (Led_5, OUTPUT);
pinMode (Led_6, OUTPUT);
pinMode (Led_7, OUTPUT);
pinMode (Led_8, OUTPUT);
pinMode (Led_9, OUTPUT);
pinMode (Led_10, OUTPUT);
 
pinMode (Button, INPUT);
}
 
boolean debounce(boolean last)
{
boolean current = digitalRead(Button);
if (last != current)
{
delay(5);
current = digitalRead(Button);
return current;
}
  
}
void loop()
{
tekButton = debounce(prevButton);
if (prevButton == LOW && tekButton == HIGH)
{
ledOn = !ledOn;
}
prevButton = tekButton;
  
}
v258
v258 аватар
Offline
Зарегистрирован: 25.05.2020

Для начала забудьте о кнопке. Проработайте два вида бегущих огней. Например: 1) один огонек бежит вправо; 2) один огонек бежит влево. Когда сделаете это, можно будет думать о переключении между режимами

Morroc
Offline
Зарегистрирован: 24.10.2016

Кнопку как подключили ? Обычно включают подтяжку ноги к + и делают замыкание кнопкой на землю, а у вас срабатывание на "было 0 стало 1" и подтяжка программно не включена. И эта... а где собственно подача сигнала на светодиод ? по меньшей мере один digitalWrite должен быть.

b707
Offline
Зарегистрирован: 26.05.2017

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

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

b707 пишет:

пусть сначала оформит код как положено

Пусть лучше сначала вармию сходит

Morroc
Offline
Зарегистрирован: 24.10.2016

Там учат правильно вставлять код или программировать ардуино ? :)

anatoli_nik
Offline
Зарегистрирован: 17.01.2019

Судя по всему там где вы сейчас тоже не учат....

А потом эти неучи лезут работать на заводы или еще куда... Потом аварии и т.д.

Так что в армию и точка!

BOOM
BOOM аватар
Offline
Зарегистрирован: 14.11.2018

Да в армии сейчас тоже не лучше, сопли вытирают целый год...