MAX7219 вывод чисел

Мария Тесля
Offline
Зарегистрирован: 22.12.2020

Вывести числа от 0 до 1023 в разбросанном порядке на 7-сегментный дисплей MAX7219.

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Есть, мэм!

Мария Тесля
Offline
Зарегистрирован: 22.12.2020

Здравствуйте! Вот задание такое, числа до 9 я могу вывести, и то, без промежутка времени, а все вместе от 0 до 9. Как мне сделать чтобы числа менялись? от 0 до 1023?

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Ответ банальный: нужно менять числа. Вероятно, после каждой смены числа нужно немного подождать.

Мария Тесля
Offline
Зарегистрирован: 22.12.2020

#define MAX7219_Data_IN 11

#define MAX7219_Chip_Select  9

#define MAX7219_Clock 13

 

void shift(byte send_to_address, byte send_this_data)

{

  digitalWrite(MAX7219_Chip_Select, LOW);

  shiftOut(MAX7219_Data_IN, MAX7219_Clock, MSBFIRST, send_to_address);

  shiftOut(MAX7219_Data_IN, MAX7219_Clock, MSBFIRST, send_this_data);

  digitalWrite(MAX7219_Chip_Select, HIGH);

}

 

void init_MAX7219() //Setup of MAX7219 chip

{

  shift(0x0f, 0x00); //display test register - test mode off

  shift(0x0c, 0x01); //shutdown register - normal operation

  shift(0x0b, 0x07); //scan limit register - display digits 0 thru 7

  shift(0x0a, 0x0f); //intensity register - max brightness

  shift(0x09, 0xff); //decode mode register - CodeB decode all digits

}

 

void setup() {

  pinMode(MAX7219_Data_IN, OUTPUT);

  pinMode(MAX7219_Chip_Select, OUTPUT);

  pinMode(MAX7219_Clock, OUTPUT);

  digitalWrite(MAX7219_Clock, HIGH);

  delay(200);

 

  init_MAX7219();  //Setup of MAX7219 chip

 

  //Data transfer (adr, num):

  shift(0x08, 0x02);

  shift(0x07, 0x03);

  shift(0x06, 0x04);

  shift(0x05, 0x05);

  shift(0x04, 0x06);

  shift(0x03, 0x07);

  shift(0x02, 0x08);

  shift(0x01, 0x09);

}

 

void loop() {

}

 
Мария Тесля
Offline
Зарегистрирован: 22.12.2020

ну значит мне нужно millis добавлять?

Мария Тесля
Offline
Зарегистрирован: 22.12.2020

init_MAX7219();  //Setup of MAX7219 chip

теперь shiftы мне надо заменять? и мне как, все числа до 1023 что ли расписывать?Можно использовать массив?

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Можно и через millis. А если не планируется дальнейшее расширение функциональности, можно и через delay.

Я не совсем понял, что такое "разбросанный порядок", но если выводить 1024 числа, то лучше это делать в цикле, а не ручками.

Можно.