關於 點亮8*8LED點陣(24腳)的愛心教程
阿新 • • 發佈:2019-02-07
int R[] = {6,11,10,3,9,8,4,A3};
unsigned char biglove[8][8] = //大“心型”的資料
{
0,0,0,0,0,0,0,0,
0,1,1,0,0,1,1,0,
1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,
0,1,1,1,1,1,1,0,
0,0,1,1,1,1,0,0,
0,0,0,1,1,0,0,0,
};
unsigned char smalllove[8][8] = //小“心型”的資料
{
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()
{
//迴圈定義行列PIN 為輸出模式
for(int i = 0;i<8;i++)
{
pinMode(R[i],OUTPUT);
pinMode(C[i],OUTPUT);
}
}
void loop()
{
for(int i = 0 ; i < 100 ; i++) //迴圈顯示100次
{
Display(biglove); //顯示大”心形“
}
for(int i = 0 ; i < 50 ; i++) //迴圈顯示50次
{
Display(smalllove); //顯示小“心形”
}
}
void Display(unsigned char dat[8][8]) //顯示函式
{
for(int c = 0; c<8;c++)
{
digitalWrite(C[c],LOW);//選通第c列
//迴圈
for(int r = 0;r<8;r++)
{
digitalWrite(R[r],dat[r][c]);
}
delay(1);
Clear(); //清空顯示去除餘暉
}
}
void Clear() //清空顯示
{
for(int i = 0;i<8;i++)
{
digitalWrite(R[i],LOW);
digitalWrite(C[i],HIGH);
}
}
unsigned char biglove[8][8] = //大“心型”的資料
{
0,0,0,0,0,0,0,0,
0,1,1,0,0,1,1,0,
1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,
0,1,1,1,1,1,1,0,
0,0,1,1,1,1,0,0,
0,0,0,1,1,0,0,0,
};
unsigned char smalllove[8][8] = //小“心型”的資料
{
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()
{
//迴圈定義行列PIN 為輸出模式
for(int i = 0;i<8;i++)
{
pinMode(R[i],OUTPUT);
pinMode(C[i],OUTPUT);
}
}
void loop()
{
for(int i = 0 ; i < 100 ; i++) //迴圈顯示100次
{
Display(biglove); //顯示大”心形“
}
for(int i = 0 ; i < 50 ; i++) //迴圈顯示50次
{
Display(smalllove); //顯示小“心形”
}
}
void Display(unsigned char dat[8][8]) //顯示函式
{
for(int c = 0; c<8;c++)
{
digitalWrite(C[c],LOW);//選通第c列
//迴圈
for(int r = 0;r<8;r++)
{
digitalWrite(R[r],dat[r][c]);
}
delay(1);
Clear(); //清空顯示去除餘暉
}
}
void Clear() //清空顯示
{
for(int i = 0;i<8;i++)
{
digitalWrite(R[i],LOW);
digitalWrite(C[i],HIGH);
}
}