Драйвер светодиодных индикаторов MAX7219 служит для динамического управления светодиодными индикаторами, соединёнными в матрицу. Соберём и запрограммируем игру пинг-понг с MAX7219.
Микросхема драйвера MAX7219 имеет 24 ножки. 16 выводов драйвера (Seg DP, Seg A,..., Seg G, Dig 0,..., Dig 7) служат для подключения матричного светодиодного индикатора или 8-ми семисегментных индикаторов. Микросхемы MAX7219 можно каскадировать, то есть подключать одну за другой. В каскадном подключении сигналы управления Clk и Load всех микросхем микросхем MAX7219 подключаются параллельно, а DIn каждой следующей микросхемы подключается к DOut предыдущей.
Рис. 1. Схема подключения драйвера светодиодных индикаторов MAX7219, светодиодной матрицы 8х8 и Arduino.
На схеме рис. 1 потенциометр R1 служит манипулятором при создании игр. Так в игре пинг-понг резистором R1 задают позицию ракетки. Необходимо отметить, что китайская электронная промышленность наладила выпуск модулей, содержащих микросхему MAX7219 и светодиодную матрицу 8х8. С таким модулем сборка схемы рис. 1 сводится к подключению пяти проводов от модуля к плате Arduino.
// © Диордица A.A. 2019г.
#define MANIPUL A0
#include "LedControl.h"
LedControl lc = LedControl(12, 11, 10, 1);
byte xb, yb, racket, temp;
int vx, vy;
void setup() { // New Game
xb = 3; yb = 0; vx = 1; vy = 1; temp = 250;
lc.shutdown(0, false);
lc.setIntensity(0, 8);
lc.clearDisplay(0);
lc.setRow(0, yb, 128 >> xb);
delay (temp);
}
void loop() {
lc.setRow(0, yb, 0);
xb = xb + vx; yb = yb + vy;
if (xb == 7 || xb == 0) {
vx *= -1;
}
if (yb == 6 || yb == 0) {
vy *= -1;
}
lc.setRow(0, yb, 128 >> xb);
racket = map(analogRead(MANIPUL), 50, 1000, 0, 9);
racket = constrain(racket, 0, 9);
lc.setRow(0, 7, 896 >> racket);
delay (temp);
// Gameplay //
if (yb == 6) {
if ((xb + vx) > racket || (xb + vx + 2) < racket) {
lc.setRow(0, yb, 0);
lc.setRow(0, yb + 1, (896 >> racket) | (128 >> xb + vx));
delay (temp);
setup();
}
else {
if ((xb > racket) || ((xb + 2) < racket)) {
vx *= -1;
}
}
if (temp > 50) {
temp = temp - 2 ;
}
}
}
Скетч 1. Игра пинг-понг.