Попытка запрограммировать счетчик светодиодов Требует, чтобы светодиод мигал каждые 5 минут, однако он мигает дважды в секунду
Вот код, который я написал, я чувствую, что проблема заключается в том, как я использовал оператор if
int ledPinS = 13; //Классифицирует вывод 13 как подключенный к светодиоду
//Мигает каждую секунду
int ledPinM = 12; //Классифицирует вывод 13 как подключенный к светодиоду
//Мигает каждую минуту
byte seconds;
byte minutes;
void setup() {
pinMode(ledPinS, OUTPUT);
digitalWrite(ledPinS, LOW);
pinMode(ledPinM, OUTPUT);
digitalWrite(ledPinM, LOW);
}
void loop() {
while (seconds<=59){//flash every second and reset when Seconds =59
delay(900);
digitalWrite(ledPinS,HIGH);
delay(100);
digitalWrite(ledPinS,LOW);
seconds++;
}
delay(200); // светодиодная вспышка M Один раз, когда секунды = 59
digitalWrite(ledPinM,HIGH);
delay(100);
digitalWrite(ledPinM,LOW);
seconds = 0;
minutes++; // add a minute
if(minutes=5){ // если минуты = 5, дважды мигните светодиодом и сбросьте
delay(200);
digitalWrite(ledPinM,HIGH);
delay(100);
digitalWrite(ledPinM,LOW);
delay(200);
digitalWrite(ledPinM,HIGH);
delay(100);
digitalWrite(ledPinM,LOW);
minutes = 0;
}
}
Любая помощь будет признательна.
@Ben Seaman, 👍0
Обсуждение1 ответ
Лучший ответ:
Хотя ваш код ужасно отформатирован, он кажется в основном правильным.
Я также рекомендую сделать ваши контакты "const int". Это говорит компилятору, что они не могут быть изменены. В противном случае вы можете случайно изменить эти значения в своем коде.
У вас также есть неинициализированные переменные. Наилучшей практикой было бы объявить и инициализировать их одновременно. Например.
byte seconds = 0;
Реквизит для добавления комментариев, однако. Отлично сработано.
Вам нужен дополнительный знак равенства в вашем заявлении if.
if (minutes = 5) {
должно быть
if (minutes == 5) {
Классическая ошибка. Мы все это делали. Вы присваиваете значение 5 минутам вместо проверки на равенство. Это всегда будет возвращать истину.
Большое спасибо, я знаю, что я очень новичок в программировании на C++, вы мне очень помогли, спасибо., @Ben Seaman
- Какие накладные расходы и другие соображения существуют при использовании структуры по сравнению с классом?
- Что лучше использовать: #define или const int для констант?
- Функции со строковыми параметрами
- Как работать с аналоговыми контактами в цикле?
- Какие есть другие IDE для Arduino?
- Как использовать переменные и функции в нескольких файлах .ino
- Разница между void setup() и void setup(void)
- Будет ли .ino-скетч ардуино компилироваться непосредственно на GCC-AVR?
ваш код очень плохо отформатирован ... правильный отступ очень важен, особенно для начинающего программиста, @jsotola