Собрал цепочку из трех модулей 7-сегментников max7219.
Тестовый скетч:
//UNO
//Подключение библиотеки max7219
#include <LedControl.h>
//создаём объект класса LedControl (din,clk,cs,X) X - количество модулей. Провода: din-оранжевый, clk-зеленый, cs-желтый, vcc-коричневый, gnd-красный
LedControl lc_test = LedControl(11, 9, 10, 3);
void setup()
{
pinMode (9, OUTPUT);
pinMode (10, OUTPUT);
pinMode (11, OUTPUT);
//Инициализация max7219
lc_test.shutdown(0, false); //Выводим из спящего режима
lc_test.setIntensity(0, 4); //Яркость дисплея на 4. Всего возможных режимов яркости от 0 до 15
lc_test.clearDisplay(0); //Очистить дисплей
lc_test.shutdown(1, false); //Выводим из спящего режима
lc_test.setIntensity(1, 4); //Яркость дисплея на 4. Всего возможных режимов яркости от 0 до 15
lc_test.clearDisplay(1); //Очистить дисплей
lc_test.shutdown(2, false); //Выводим из спящего режима
lc_test.setIntensity(2, 4); //Яркость дисплея на 4. Всего возможных режимов яркости от 0 до 15
lc_test.clearDisplay(2); //Очистить дисплей
}
void loop()
{
lc_test.setDigit(0, 7, 0, true);
delay(500);
lc_test.setDigit(0, 6, 1, true);
delay(500);
lc_test.setDigit(0, 5, 2, true);
delay(500);
lc_test.setDigit(0, 4, 3, true);
delay(500);
lc_test.setDigit(0, 3, 4, true);
delay(500);
lc_test.setDigit(0, 2, 5, true);
delay(500);
lc_test.setDigit(0, 1, 6, true);
delay(500);
lc_test.setDigit(0, 0, 7, true);
delay(500);
lc_test.clearDisplay(0); //Очистить дисплей
lc_test.setDigit(1, 7, 8, true);
delay(500);
lc_test.setDigit(1, 6, 9, true);
delay(500);
lc_test.setDigit(1, 5, 0, true);
delay(500);
lc_test.setDigit(1, 4, 1, true);
delay(500);
lc_test.setDigit(1, 3, 2, true);
delay(500);
lc_test.setDigit(1, 2, 3, true);
delay(500);
lc_test.setDigit(1, 1, 4, true);
delay(500);
lc_test.setDigit(1, 0, 5, true);
delay(500);
lc_test.clearDisplay(1); //Очистить дисплей
lc_test.setDigit(2, 7, 6, true);
delay(500);
lc_test.setDigit(2, 6, 7, true);
delay(500);
lc_test.setDigit(2, 5, 8, true);
delay(500);
lc_test.setDigit(2, 4, 9, true);
delay(500);
lc_test.setDigit(2, 3, 0, true);
delay(500);
lc_test.setDigit(2, 2, 1, true);
delay(500);
lc_test.setDigit(2, 1, 2, true);
delay(500);
lc_test.setDigit(2, 0, 3, true);
delay(500);
lc_test.clearDisplay(2); //Очистить дисплей
}
После нормальной отработки нескольких циклов (количество их непредсказуемо - от 2 до 8) модули начинают быстро мигать. Повторная загрузка скетча (или просто подача питания) дает ту же ситуацию: несколько циклов нормального перебирания 7-сегментников, потом снова мигание. Друзья, где копать?
Заранее спасибо!