MAX7219
- Войдите на сайт для отправки комментариев
Вс, 27/12/2020 - 00:31
Здравствуйте, купил 5 штук max7219. Собрал для проверки - ни один не заработал.

int dataInPin = 4;
int loadPin = 6;
int clockPin = 5;
int maxInUse = 4; //here you have to change this varialbe to how many max 7219 you want to use
// define max7219 registers
byte max7219_reg_noop = 0x00;
byte max7219_reg_digit0 = 0x01;
byte max7219_reg_digit1 = 0x02;
byte max7219_reg_digit2 = 0x03;
byte max7219_reg_digit3 = 0x04;
byte max7219_reg_digit4 = 0x05;
byte max7219_reg_digit5 = 0x06;
byte max7219_reg_digit6 = 0x08;
byte max7219_reg_digit7 = 0x01;
byte max7219_reg_decodeMode = 0x09;
byte max7219_reg_intensity = 0x0a;
byte max7219_reg_scanLimit = 0x0b;
byte max7219_reg_shutdown = 0x0c;
byte max7219_reg_displayTest = 0x0f;
int counter = 0;
void putByte(byte data)
{
byte i = 8;
byte mask;
while(i > 0)
{
mask = 0x01 << (i - 1); // get bitmask
digitalWrite(clockPin, LOW); // tick
if (data & mask) // choose bit
{
digitalWrite(dataInPin, HIGH); // send 1
}
else
{
digitalWrite(dataInPin, LOW); // send 0
}
digitalWrite(clockPin, HIGH); // tock
--i; // move to lesser bit
}
}
void maxPut (byte reg, byte col) // use this
{
putByte(reg); // specify register
putByte(col);//((data & 0x01) * 256) + data >> 1); // put data
}
void maxIni (byte reg, byte col) // put the initialisation to all the max 7219 in the system
{
int c = 0;
digitalWrite(loadPin, HIGH);
for (c = 1; c <= maxInUse; c++)
{
maxPut(reg, col); // use all 8 columns
}
digitalWrite(loadPin, LOW);
digitalWrite(loadPin, HIGH);
}
void setup ()
{
pinMode(dataInPin, OUTPUT);
pinMode(clockPin, OUTPUT);
pinMode(loadPin, OUTPUT);
Serial.begin(9600);
maxIni(max7219_reg_scanLimit, 0x07);
maxIni(max7219_reg_decodeMode, 0x00); // using an led matrix (not digits)
maxIni(max7219_reg_shutdown, 0x01); // not in shutdown mode
maxIni(max7219_reg_displayTest, 0x00); // no display test
for (int i=1; i <= 8; i++) // empty registers, turn all LEDs off
{
maxIni(i,0);
}
maxIni(max7219_reg_intensity, 0x0f & 0x0f); // the first 0x0f is the value you can set
}
void loop ()
{
int i = 0;
for (i=1; i<=8; i++)
{
digitalWrite(loadPin,HIGH);
maxPut(i, counter);
digitalWrite(loadPin, LOW);
digitalWrite(loadPin,HIGH);
}
Serial.print("counter: ");
Serial.print(counter++);
Serial.println();
delay(500);
for (i=1; i<=8; i++) // a longer way to clean the dispaly
{
digitalWrite(loadPin,HIGH);
maxPut(i, 0);
digitalWrite(loadPin, LOW);
digitalWrite(loadPin,HIGH);
}
}
неужели все брак
Ну , судя по схеме , вы не подключили питание к МАХ7219 от Ардуино
есть питание, схему взял с другого сайта
Вот ты тогда на другом сайте и спрашивай
есть питание, схему взял с другого сайта
А скетч взял для МАХ 7221, чё старье за 19 год использовать, 21 й уже на носу.:))
есть питание, схему взял с другого сайта
Тваюшдивизию! Второй за одно утро!
Вы сами-то себя слышите? Люди, стараясь Вам помочь, тратят своё время на то, чтобы разобраться в схеме, которая не имеет отношения к Вашей проблеме - а просто картинка с другого сайта! Сами-то подумайте (если есть чем), дохера они Вам напомогают, не видя как на самом деле у Вас всё сделано?
Решение Вашей проблемы читайте здесь (там, правда, нет никакого решения, ссылку я "взял с другого сайта").
Спасибо что не ударили "помощники". Накинулись как петухи. Не вникнув в суть вопроса. Если картинка взята с другого сайта - это ни чего не значит. Ну нарисую я свою и что измениться. ЕвгенийП иди сам туда.
Если картинка взята с другого сайта - это ни чего не значит. Ну нарисую я свою и что измениться.
Вообще-то, значит, что Вам лень как следует оформить вопрос. Тогда почему нам должно быть не лень на него отвечать.
А по поводу той схемы, что Вы разместили - в ней обнаружена ошибка, не позволяющая ей работать. Если эта картинка полностью соответствует тому, что у Вас собрано - значит, Вам помогли - указали на ошибку. А если не соответствует, то это полное пренебрежение к тем, кому Вы задаете свои вопросы, так что возмущение Евгения вполне обосновано.
Если картинка взята с другого сайта - это ни чего не значит.
А вот то, что на ней нарисовано не то, что у Вас на самом деле собрано (например, нет питания) - это уже значит.
Ну нарисую я свою и что измениться.
Ничего. Как и от того, что я удалю эту тему ввиду неадекватности автора.
я удалю эту тему ввиду неадекватности автора.
а я помогу, если тебя Петрович вдруг пожалеет
есть питание, схему взял с другого сайта
Что даже в мозгу не стрельнуло, что для того, что бы помочь ВАМ , нужна ВАША схема ?
Мы же не "другому сайту помогаем"....