您的位置:首页 > 产品设计 > UI/UE

模块初探:Arduino 8×8点阵显示菱形

2019-01-14 17:07 323 查看
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_36169781/article/details/86480467

使用Arduino UNO IO口输出至8×8LED点阵显示图案,可以改变数组内容来更改显示图案。

材料准备

  1. Arduino UNO开发板
  2. 面包线/面包板
  3. 8×8LED点阵

共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)。
  共阳数码管在应用时应将公共极COM接到+,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。当某一字段的阴极为高电平时,相应字段就不亮。
  共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)。
  共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮。当某一字段的阳极为低电平时,相应字段就不亮。
  手中的点阵串码为M15088B,根据资料可知这个点阵为共阳管。

下图为共阳管的电路:

根据测定,8*8LED点阵的针脚不是有序排列,所以需要测定每个针脚所控制的行与列。
测定方法为:在Arduino中取两数字针脚,将一脚设为高电平输出,一脚设定为低电平输出,将点阵接入面包板,依次实验接口观察点亮的行与列,进而逐步推出针脚对应控制的行列。
因为该点阵为共阳点阵,所以行给一个高电平,列给一个低电平时,LED为点亮状态。

Arduino源程序

int H[]={9,4,17,6,10,16,11,14};//行针脚
int L[]={5,12,13,8,15,7,3,2};//列针脚
unsigned char pic[8][8] =
{
0,0,0,1,1,0,0,0,
0,0,1,1,1,1,0,0,
0,1,1,1,1,1,1,0,
1,1,1,1,1,1,1,1,  //定义8×8点阵的图案
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,
};
void setup()
{
for(int i = 0;i<8;i++)
{
pinMode(H[i],OUTPUT);  //定义UNO板针脚模式
pinMode(L[i],OUTPUT);
}
}

void loop()
{
display(pic);  //显示图案
}
void display(unsigned char pic[8][8])
{
for(int l = 0; l<8;l++)    //显示第l列
{
digitalWrite(L[l],LOW);   //列设低电平
for(int h = 0;h<8;h++)    //循环
{
digitalWrite(H[h],dat[h][l]);  //行设高电平
}
delay(1);
clear();//清除当前列的未定义点
}
}

void clear()
{
for(int i = 0;i<8;i++)
{
digitalWrite(H[i],LOW);
digitalWrite(L[i],HIGH);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: