宥愆 宥愆
关注数: 46 粉丝数: 342 发帖数: 5,954 关注贴吧数: 228
【arduino】新手关于74HC595和8*8矩阵LED的问题 使用74HC595连到8*8LED矩阵的L上,arduino的5-12口连到8*8LED矩阵的C上 但是之后出现了问题,大概如下: 比如想要电亮第三行第二排,成功之后, 之后再想点亮第四行第五个,上传之后第四行第二排和第五排都亮了不知道是什么原因。 比如我想点亮心形图案,就变成这样了:连接可能不太清晰,大致如下:代码: int big = 2; int push =3; int datain = 4; int lineSignal[8] = {0,0,0,0,0,0,0,0};//8*8矩阵LED的行信号 int col[8]{5,6,7,8,9,10,11,12};//8*8矩阵LED的列数字端口 int matrix[8][8]={//代表8*8LED的输入矩阵 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0, 0,0,1,0,0,1,0,0, 0,1,1,1,1,1,1,0, 0,1,1,1,1,1,1,0, 0,0,1,1,1,1,0,0, 0,0,0,1,1,0,0,0, 0,0,0,0,0,0,0,0, }; void setup() { // put your setup code here, to run once: pinMode(big, OUTPUT); pinMode(push, OUTPUT); pinMode(datain, OUTPUT); digitalWrite(big, LOW); for(int i=0;i<8;i++){ pinMode(col[i],OUTPUT); digitalWrite(col[i],HIGH) ; pushDataIn(LOW); } digitalWrite(big,HIGH); } void loop() { // put your main code here, to run repeatedly: showMatrix(matrix); delay(10000); } void pushDataIn(int i){ digitalWrite(push,LOW); digitalWrite(datain , i); digitalWrite(push,HIGH); } //根据矩阵电亮8*8LED矩阵 void showMatrix(int matrix[8][8]){ for(int i=0;i<8;i++){ for(int j =0;j<8;j++){ if(matrix[i][j] == 1){ digitalWrite(col[j],LOW); lineSignal[i] = 1; } } } digitalWrite(big, LOW); for(int i = 0 ;i <8 ; i++){ pushDataIn(lineSignal[i]); } digitalWrite(big,HIGH); }
1 下一页