福州布衣 发表于 2019-4-4 20:20:47

Processing 控制 8x8 点阵

Processing控制 8x8 点阵
在上位机上画出 8x8 点阵的图案,发送到Arduino 显示. 数字信号就是 1111000011110000.......(共64位) )连续一次发送到串口.


Arduino 代码

int R[] = {2,7,A5,5,13,A4,12,A2}; //行
int C[] = {6,11,10,3,A3,4,8,9};   //列   
char command;
int mark = 0;
int numdata;
int data;
char xh;
void setup(){
Serial.begin(9600);   
for(int i = 0;i<8;i++){
pinMode(R,OUTPUT);
pinMode(C,OUTPUT);
}
for(int i = 0;i<8;i++){
for(int j = 0;j<8;j++){
      numdata=0;
}
}

}

void loop(){
recv_data();
updateServo();
}

void recv_data(){   
while(Serial.available()){
for(int i=0;i<8;i++){
    numdata=Serial.read();
    delay(10);
    numdata=Serial.read();
    delay(10);
    numdata=Serial.read();
    delay(10);
    numdata=Serial.read();
    delay(10);
    numdata=Serial.read();
    delay(10);
    numdata=Serial.read();
    delay(10);
    numdata=Serial.read();
    delay(10);
    numdata=Serial.read();
    }
    delay(10);
}
mark = 1;
}


void updateServo(){
if(mark == 1){
for(int i = 0 ; i < 100 ; i++) {      
for(int c = 0; c< 8;c++){
digitalWrite(C,LOW);//选通第c列
for(int r = 0;r< 8;r++){
digitalWrite(R,numdata);
}
delay(1);
Clear();//清空显示去除余晖
}
}
mark == 0;
}
}

void Clear(){
for(int i = 0;i<8;i++){
    digitalWrite(R,LOW);
    digitalWrite(C,HIGH);
}
}

问题:8x8点阵最后一个点(64点)总是不对,有没高手能找出问题所在?

福州布衣 发表于 2019-4-4 20:58:22




页: [1]
查看完整版本: Processing 控制 8x8 点阵