前言
今天,我要做一个跳动的心来自我救赎,我要拿起它,向心爱的女生表白!
这个爱心作品使用8×8点阵LED,没有用到驱动模块,直接用Ardunio的IO口控制,差不多用完所有IO口来控制8x8=64个LED,整个制作过程非常简单,初学者很容易上手。
材料
Arduino Uno *1共阳8x8点阵LED 16脚 *1面包板 *2杜邦线若干
步骤
点阵LED
一般数码管有出厂信息:比如型号为LG5011AH,LG5011BH这里面的AH、BH中的A代表共阴极、B代表共阳极,H代表高亮。
另外,关于8*8点阵共阳和共阴的解释:1. 有的朋友认为:共阳就是LED正极全部接在一起,而负极则不是,共阴相反但也是类似。这种说法是错误的哦!(数码管的共阳和共阴是这样的),但点阵8*8点阵共阴 和共阳都是接在一起的。
2. 所谓共阳和共阴只是管脚排列名称相同(也就是说无论共阳还是共阴管脚编号一 致),但行和列的极性则相反。既然这样,那么我反过方向接共阳不就是变成了共阴吗?理论上是的,但要注意行和列相交的位置发生了变化。
3. 注意8*8点阵的管脚不是有顺序的排列。
引脚说明
接线图
代码
int R[] = {2,7,A5,5,13,A4,12,A2}; //行int C[] = {6,11,10,3,A3,4,8,9}; //列 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,LOW);//选通第c列 //循环 for(int r = 0;r<8;r++) { digitalWrite(R[r],dat[r]); } delay(1); Clear(); //清空显示去除余晖 }} void Clear() //清空显示{ for(int i = 0;i<8;i++) { digitalWrite(R[i],LOW); digitalWrite(C[i],HIGH); }}