Eu quero usar 4 led matrix max7219 de 8x8 como 16x16 em um cubo só que eu não consigo achar nenhum vídeo ou site que mostre como fazer isso, no meu caso eu quero fazer como se fosse um dado de 20 lado fazendo com que os números apareçam de maneira alternada rapidamente antes de parar em um numero aleatório, eu já consegui fazer de 1 a 6 usando apenas um led matrix, então a maior parte do código eu já tenho, e eu estou tentando fazer isso sem MD_parola, porem se tiver alguma forma de fazer com o MD_parola eu também aceitaria.
Poste o codigo e um esquemático do que vc fez, assim facilita entendermos melhor sua dificuldade, e saber que pinos esta usando e como está ligando as matrizes.
Assim poderemos ajuda-lo melhor.
Eu não consigo enviar um esquemático agora porque é um trabalho que eu estou fazendo para um curso então não tenho os materiais em mãos
#include <LedControl.h>
const int pinoBotao = 7; // Replace with the desired pin number
const int DIN = 12;
const int CS = 11;
const int CLK = 10;
const int rollDelay = 25;
const int maxRollSpeed = 1000;
LedControl lc = LedControl(DIN, CLK, CS, 0);
byte characters[][8] = {
{0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00},
{0x00, 0x00, 0x30, 0x30, 0x0C, 0x0C, 0x00, 0x00},
{0x00, 0x60, 0x60, 0x18, 0x18, 0x06, 0x06, 0x00},
{0x00, 0x66, 0x66, 0x00, 0x00, 0x66, 0x66, 0x00},
{0x00, 0x66, 0x66, 0x18, 0x18, 0x66, 0x66, 0x00},
{0x66, 0x66, 0x00, 0x66, 0x66, 0x00, 0x66, 0x66}
};
int rollSpeed = 0;
bool rolando = false;
int lastPress = LOW;
void setup() {
lc.shutdown(0, false);
lc.setIntensity(0, 0);
lc.clearDisplay(0);
pinMode(pinoBotao, INPUT_PULLUP);
lastPress = digitalRead(pinoBotao);
}
void loop() {
int estadoBotao = digitalRead(pinoBotao);
if (estadoBotao == HIGH && lastPress == LOW) {
rolando = true;
rollSpeed = 0;
printByte(characters[0]);
}
if (rollSpeed <= maxRollSpeed && rolando) {
int valorDado = random(0, 6);
printByte(characters[valorDado]);
delay(rollDelay);
rollSpeed += rollDelay;
} else if (rolando) {
rolando = false;
}
lastPress = estadoBotao;
}
void printByte(byte character[]) {
for (int i = 0; i < 8; i++) {
lc.setRow(0, i, character[i]);
}
}
essa é a versão básica do código que eu usei, é para funcionar como um d6 quando apertasse o botão ia começar a aparecer cada lado do dado no led matrix até rodasse uma quantidade de vez fixa iria parar mostrando o seu resultado, meu objetivo é transformar o d6 em um d20 usando números ao invés de "circulos", e também usando 4 led matrix ao invez de 1, e eu já estou pensando em possibilidades de fazer usando MD_parola, mas não tenho uma ideia boa o suficiente de como o fazer.
Não entendi bem esta parte:
Veja se este código atende sua necessidade:
São 4 matrizes 8x8.
Primeiramente isso é exatamente o que eu estava atrás muito obrigado, e no caso o objetivo era ao invés de usar pequenos "cubos" eu queria usar números mesmo do 0 ao 9 para poder fazer do 1 ao 20, muito obrigado mesmo com isso fica mais fácil de chegar no resultado que eu quero.
This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.