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

版权声明:本文为博主原创文章,未经博主允许不得转载。 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);  
  }  
}

猜你喜欢

转载自blog.csdn.net/qq_36169781/article/details/86480467