Ви не увійшли.
Сторінки 1
Спасибо за совет! Нашел в чем ошибка.
Исправил и заработало=) я не учел что контроллер начинает считать с 0. и соответственно он пытался перебрать несуществующие в массиве элементы.
for(int i=ledsFirstLevel-1; i >= 0; i--){
for(int j=ledsSecondLevel-1; j >= 0; j--){
ledOff(leds[i][j], 100);
P.S. заодно научился работать с монитором.
решил сделать зажигание светодиодов лесенкой от 2 до 9 пина с использованием многомерного массива.
И вот когда я по своему разумению инвертировал часть кода с перебором массива для выключения светодиодов сзади-наперед, возникла проблема. Спонтанно тухнет случайный светодиод(или несколько) и зависание(пауза) на полпути назад. Подскажите где, я неправильно что то сделал?
Arduino nano(китай CH340)
листинг выкладываю:
int leds[][4] = {{2,3,4,5},{6,7,8,9}};
int ledsFirstLevel = sizeof(leds) / sizeof(leds[0]);
int ledsSecondLevel = sizeof(leds[0]) / sizeof(int *);
int pause = 1000;
// the setup function runs once when you press reset or power the board
void setup() {
for(int i=0; i < ledsFirstLevel; i++){
for(int j=0; j < ledsSecondLevel; j++){
pinMode(leds[i][j], OUTPUT);
}
}
}
void loop(){
// Цикл for - для, включаем диоды по очереди
for(int i=0; i < ledsFirstLevel; i++){
for(int j=0; j < ledsSecondLevel; j++){
ledOn(leds[i][j], 100);
}
}
// Выключаем диоды по очереди
for(int i=ledsFirstLevel; i > -1; i--){
for(int j=ledsSecondLevel; j > -1; j--){
ledOff(leds[i][j], 100);
}
}
}
void ledOn (int numberPin, int paramPause){
digitalWrite(numberPin, HIGH);
delay(paramPause);
}
void ledOff (int numberPin, int paramPause){
digitalWrite(numberPin, LOW);
delay(paramPause);
}
Сторінки 1