我正在玩一个8x8 led矩阵,并且设法获得了各种形状和字母来显示和滚动。目前,我正在使用一些代码来使用595个移位寄存器滚动文本,我设法将单词中的每个字母滚动到矩阵上和滚动出矩阵,但是我试图弄清楚如何删除字母之间的空格。空格是由我产生的,使用<<和>>来移位位,以使字母在矩阵上上下移动,从而产生滚动效果。
在将字节移入并连接下一个字节时,是否可以做一些数学运算来拆分字节?这就是我在想的解决方案,但不知道如何解决。
请原谅我的编程恐惧,我仍在学习,并且愿意接受建设性的批评。
// Entire for loop block first moves each letter in from the right then scrolls it out the left
for(int numOfLetters = 0; numOfLetters < 2; numOfLetters++){
// This for loop block scrolls the each letter in from the right to the middle of the matrix
for(int z = 8; z > 0; z--){
for(int speedOfScroll = 0; speedOfScroll < 5; speedOfScroll++){
for(int i = 0; i < 8; i++){
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, LSBFIRST, row[i]); // Rows
shiftOut(dataPin, clockPin, LSBFIRST, column1[numOfLetters][i] >> z); // Columms
digitalWrite(latchPin, HIGH);
delay(2);
}
}
}
// This for loop block scrolls each letter from the middle of the matrix to the left
for(int y = 0; y < 8; y++){
for(int speedOfScroll = 0; speedOfScroll < 5; speedOfScroll++){
for(int i = 0; i < 8; i++){
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, LSBFIRST, row[i]); // Rows
shiftOut(dataPin, clockPin, LSBFIRST, column1[numOfLetters][i] << y); // Columms
digitalWrite(latchPin, HIGH);
delay(2);
}
}
}
}
}