#1 2020-09-03 18:37:29

VitaliyGrim
Учасник
Зареєстрований: 2020-09-03
Повідомлень: 2

Подскажите новичку.

решил сделать зажигание светодиодов лесенкой от 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);
  }

Неактивний

#2 2020-09-03 20:51:15

г0сть
Гість

Re: Подскажите новичку.

Выведите в монитор значения i,j и посмотрите что должно быть и что в реальности

#3 2020-09-03 21:27:30

VitaliyGrim
Учасник
Зареєстрований: 2020-09-03
Повідомлень: 2

Re: Подскажите новичку.

Спасибо за совет! Нашел в чем ошибка.
Исправил и заработало=) я не учел что контроллер начинает считать с 0. и соответственно он пытался перебрать несуществующие в массиве элементы.

for(int i=ledsFirstLevel-1; i >= 0; i--){
for(int j=ledsSecondLevel-1; j >= 0; j--){
  ledOff(leds[i][j], 100);
 

P.S. заодно научился работать с монитором.

Неактивний

#4 2021-12-16 18:08:06

Ватага Евгений
Учасник
Зареєстрований: 2021-12-16
Повідомлень: 2

Re: Подскажите новичку.

Добрый вечер всем, есть проблемы с первым подключением Ардуино к компьютеру ОС 7, где можно почитать, на данный момент (ошибка 31) пишет нет цифровий подписи у драйвера. Все делаю по инструкции, пробовал с разных сайтов, эффекта нет. Спасибо

Неактивний

#5 2021-12-16 18:39:27

г0сть
Гість

Re: Подскажите новичку.

Ватага Евгений пише:

Добрый вечер всем, есть проблемы с первым подключением Ардуино к компьютеру ОС 7, где можно почитать, на данный момент (ошибка 31) пишет нет цифровий подписи у драйвера. Все делаю по инструкции, пробовал с разных сайтов, эффекта нет. Спасибо

Проблема в параноидадьности Win7. При загрузке жмакайте F8 и выбираете пункт отключение проверки цифровой подписи. Устанавливаете драйвера на CH340(угадал?) и радуетесь

#6 2022-03-30 14:51:49

Solomon Klase
Учасник
Зареєстрований: 2021-08-06
Повідомлень: 15

Re: Подскажите новичку.

I have encountered a similar problem recently, and I am trying to solve it

Неактивний

Швидке повідомлення

Введіть повідомлення і натисніть Надіслати

Підвал форуму