Arduino с 8 светодиодами и выключателем
У меня есть задание, в котором у нас есть 8 светодиодов, подключенных к Arduino Uno, у которого есть переключатель. Эти светодиоды загораются в соответствии со счетчиком Джонсона, но каждый раз, когда я выключаю переключатель, он должен сбрасываться к началу. Например, если я выключу переключатель, когда пин находится на 8, возвращаясь к 1, то когда я включаю его, он должен снова вернуться к 1. Я правильно понял часть сброса с 1 на 8, но с 8 на 1 у меня возникли проблемы.
Вот мой код:
int pin;
int sw3 = 10;
void setup() {
// put your setup code here, to run once:
for (pin = 2; pin <= 9; pin++) {
pinMode(pin, OUTPUT);
}
pinMode(sw3, INPUT);
}
void loop() {
pin == 2;
if (digitalRead(sw3) == HIGH) {
for (pin = 2; pin <= 9; pin++) {
digitalWrite(pin, HIGH);
delay(200);
}
}
else {
digitalWrite(pin, LOW);
}
delay(200);
for (pin = 2; pin <= 9; pin++)
{
digitalWrite(pin, LOW);
}
delay(200);
if (digitalRead(sw3) == HIGH) {
for (pin = 9; pin >= 2; pin--) {
digitalWrite(pin, HIGH);
delay(200);
}
}
else {
digitalWrite(pin, LOW);
}
delay(200);
for (pin = 9; pin >= 2; pin--) {
digitalWrite(pin, LOW);
}
delay(200);
{
if (digitalRead(sw3) == LOW) {
digitalWrite(pin, LOW);
}
else {
digitalWrite(pin, LOW);
}
}
}
1 ответ
Лучший ответ:
Некоторые исправления:
pin==2;
здесь должно быть только 1 =
. ==
— это сравнение.
pinMode(sw3,INPUT);
сделайте это INPUT_PULLUP
, чтобы включить внутренний подтягивающий резистор
if(digitalRead(sw3)==HIGH){
измените это на LOW
и подключите переключатель/кнопку так, чтобы при нажатии контакт подключался к GND. Внутренний подтягивающий резистор не будет гарантировать, что контакт находится в состоянии HIGH, когда он не нажат, а кнопка/переключатель переведет его в состояние LOW при нажатии. Таким образом, контакт не может «плавать» и возвращать случайное значение HIGH или LOW.
Я думаю, что они используют внешний выпадающий список., @Gerben
проблема, вероятно, в штифте == 2., @CrossRoads
- Несколько условий оператора if
- Светодиоды: разница между общим анодом и общим катодом
- Остановить мигание светодиодов
- Интеграция 2 кнопок для включения и выключения светодиода.
- Управление цифровой адресной светодиодной лентой RGB 12 В с помощью Arduino
- Код Arduino для управления 4 светодиодами с 4 кнопок
- Нужен ли подтягивающий/понижающий резистор для цепи светодиода кнопки?
- Мигните светодиодом 5 раз с помощью цикла for
Я не могу понять, в чем ваша проблема. Код также, похоже, не делает счетчик Джонсона. Не могли бы вы перефразировать свой вопрос и, возможно, отметить в коде, где у вас проблема?, @Gerben