Мазмуну:

Arduino MAX7219 7-сегменттин дисплей үйрөткүчү: 5 кадам
Arduino MAX7219 7-сегменттин дисплей үйрөткүчү: 5 кадам

Video: Arduino MAX7219 7-сегменттин дисплей үйрөткүчү: 5 кадам

Video: Arduino MAX7219 7-сегменттин дисплей үйрөткүчү: 5 кадам
Video: Cool Arduino Hand Gesture Counter with 7 segment display 2024, Июль
Anonim
Arduino MAX7219 7-сегменттеги дисплей үйрөткүчү
Arduino MAX7219 7-сегменттеги дисплей үйрөткүчү

MAX7219-бул 7 сегменттүү диоддорду (8 цифрага чейин), дисплейлерди блокировкалоону (тилкелердин дисплейлерин) жана 64 жеке LED диоддорун катоддор үчүн колдонулган IC. Микроконтроллер менен байланышуу үчүн MAX7219 SPI байланыш системасын колдонот. Ошентип, 64 светодиодду айдаш үчүн микроконтроллердин 3 порту керек.

Бул макалада мен драйвер катары IC MAX7219ду колдонгон 7-Segement модулун кантип колдонууну көрсөтөм.

Керектүү компоненттер:

  • MAX7219 7-сегмент модулу
  • Arduino Nano
  • зым Jumper
  • USB мини

Керектүү китепкана:

LedControl

Бул окуу куралында мен Arduino Nano тактасын колдоном. Эгер сиз аны эч качан колдоно элек болсоңуз. Мен мурунку макаламды окуп чыгууну сунуштайм "Arduino Nano кантип колдонуу керек".

1 -кадам: Бардык компоненттерди чогултуу

Бардык компоненттерди чогултуу
Бардык компоненттерди чогултуу

Arduino тактасын 7-сегмент модулуна туташтырыңыз. Төмөндө жазган сүрөттү же көрсөтмөнү караңыз:

Arduino 7-сегментке

+5V => VCC

GND => GND

D12 => DIN

D11 => CLK

D10 => CS/LOAD

2 -кадам: Китепкана кошуу

Китепкана кошуу
Китепкана кошуу

Район бүткөндөн кийин. "LedControl" китепканасын Arduino IDEге кошуңуз.

Ардуиного китепкана кошуу үчүн, мен аны мурда жасаган "Ардуиного тышкы китепкананы кантип кошуу керек" деген макаладан окуй аласыз.

3 -кадам: Кошумча функциялар

Кошумча Функциялар
Кошумча Функциялар

LedControl китепканасын кошкондон кийин. 7-Segment модулун көзөмөлдөө үчүн кошумча функцияларды колдонсоңуз болот.

Аргумент

addr - дисплейдин дареги

цифра - дисплейдеги цифранын орду (0..7) мааниси - көрсөтүлө турган мааниси. (0x00..0x0F)

dp ондук чекитти коет.

Функция

setChar (addr, цифра, value.dp); // 7-бит ASCII коддоо үчүн char түрүнүн маанисин көрсөтүү үчүн

setDigit (addr, цифрасы, мааниси, болеан дп); // цифраларды жана символдорду бир функцияда көрсөтүү үчүн setRow (addr, цифрасы, мааниси, логикалык dp); // объектти каалаган цифрада көрсөтүү

Көбүрөөк маалымат алуу үчүн бул жерден окуңуз.

4 -кадам: Эскизди жүктөө

Эскизди жүктөө
Эскизди жүктөө

Мен бул 7-сегмент модулунун сыноосунун эскизин түздүм. Төмөндөгү кодду көчүрүп, анан эскизиңизге чаптап койсоңуз болот.

// Биз ар дайым китепкананы камтышыбыз керек

#"LedControl.h" кошуу

/*

Эми биз менен иштөө үчүн LedControl керек. ***** Бул пин номерлери сиздин жабдыктарыңыз менен иштебеши мүмкүн *****

пин 12 DataIn менен туташкан

пин 11 CLK менен туташкан

пин 10 LOADга туташкан

Бизде бир гана MAX72XX бар.

*/

LedControl lc = LedControl (12, 11, 10, 1);

/ * биз дайыма дисплейдин жаңыртууларын күтөбүз */

кол коюлбаган узак кармоо убактысы = 500;

жараксыз орнотуу () {

/ * MAX72XX күйгүзүү учурунда энергияны үнөмдөө режиминде, биз ойготуу чалуу кылышыбыз керек */

lc.shutdown (0, false);

/ * Жарыкты орто мааниге коюңуз */

lc.setIntensity (0, 8);

/ * жана дисплейди тазалоо */

lc.clearDisplay (0);}

жараксыз салам () {

lc.setChar (0, 7, 'H', жалган);

lc.setChar (0, 6, 'E', жалган);

lc.setChar (0, 5, 'L', жалган);

lc.setChar (0, 4, 'L', жалган);

lc.setChar (0, 3, '0', жалган);

lc.setChar (0, 2, '.', false);

lc.setChar (0, 1, '.', жалган);

lc.setChar (0, 0, '.', жалган);

кечигүү (кечигүү убактысы+1000);

lc.clearDisplay (0);

кечигүү (кечигүү убактысы);

lc.setDigit (0, 7, 1, жалган);

кечигүү (кечигүү убактысы);

lc.setDigit (0, 6, 2, жалган);

кечигүү (кечигүү убактысы);

lc.setDigit (0, 5, 3, жалган);

кечигүү (кечигүү убактысы);

lc.setDigit (0, 4, 4, жалган);

кечигүү (кечигүү убактысы);

lc.setDigit (0, 3, 5, жалган);

кечигүү (кечигүү убактысы);

lc.setDigit (0, 2, 6, жалган);

кечигүү (кечигүү убактысы);

lc.setDigit (0, 1, 7, жалган);

кечигүү (кечигүү убактысы);

lc.setDigit (0, 0, 8, жалган);

кечигүү (1500);

lc.clearDisplay (0);

кечигүү (кечигүү убактысы);

}

void loop () {hello ();

}

Же төмөндөгү файлды жүктөп алыңыз:

5 -кадам: Жыйынтык

Жыйынтыгынан кубаныч алыңыз.

Эгерде суроолор болсо, аларды комментарийлерге жазыңыз.

Кийинки макалада көрүшкөнчө.

Сунушталууда: