如何使用Arduino 控制 5*5 LED 点阵

kuku_peng 于 2012-7-12 17:19 编辑



55 LED点阵,可以显示简单的表情、数字、字母,也可以进行一些动态的花式,

是进行更复杂的LED点阵或LED立方的基础。这里介绍如何使用arduino进行简单的5
5LED控制。



你需要准备

■55 LED

■电阻10个

■洞洞板一块

■Arduino Uno 一块

■连线若干



显示原理

5
5 LED 有10个pin脚,5个一组,分别对应X和Y方向,形成一个55的矩阵。通过控制矩阵的X和Y的高低电平,从而实现对25个LED中某一个LED的控制。



如果,某一块LED点阵,对应X方向的pin脚为低电平为点亮LED,对应Y方向的pin脚为高电平为点亮LED,



那么 x1=LOW,y1=HIGH,则表明(x1,y1)位置的LED点亮



2组(共10个)pin中,哪一组是x,哪一组是y;



每个pin是高电平点亮,还是低电平点亮,是需要搭建好硬件后,测试后才能确定的,不同的LED点阵可能不同。





安装5
5 LED



一般LED点阵需要串联电阻后使用,否则可能烧毁。我们这块5*5 LED点阵可以在每个pin脚上都串联一个220的电阻,然后再引出pin脚,接到Arduino的IO上,使用洞洞板,将LED、电阻和插针放置好,并焊好。


led-300x268.jpg


led2-300x287.jpg



将LED点阵连到Arduino



将LED点阵的10pin用杜邦线分别连到Arduino的IO口上。完成硬件连接


led3-300x168.jpg



撰写代码,控制LED点阵



首先定义好pin脚对应的arduino的IO口ARDUINO 代码复制打印

const int x1 = 3;
const int x2 = 4;
const int x3 = 5;
const int x4 = 6;
const int x5 = 7;

const int y1 = 8;
const int y2 = 9;
const int y3 = 10;
const int y4 = 11;
const int y5 = 12;


这种5*5 LED点阵需要使用动态显示的方式,如果你需要显示一个数字1,组成数字1的所有LED点不能同时显示,如果同时显示,可能导致电路问题。这时候需要一个一个的显示,利用视觉暂留,看上去好像全部显示一样。所以我们需要一些基础方法。

显示某一个坐标的LED

ARDUINO 代码复制打印
void x_y_on(int x,int y)
{
digitalWrite(x,x_light);
digitalWrite(y,y_light);
delay(LED_on_off_time);
digitalWrite(x,1-x_light);
digitalWrite(y,1-y_light);
}



使用二进制数组,设计显示内容


ARDUINO 代码复制打印
byte one[5]={B00100,
B01100,
B00100,
B00100,
B01110};
byte * p_one = one;


取二进制位的方法

ARDUINO 代码复制打印
int get_bit_val(byte b,int b_order)
{
switch (b_order)
{
case 4:
return b & 0x1;
break;
case 3:
return (b & 0x2)>>1;
break;
case 2:
return (b & 0x4)>>2;
break;
case 1:
return (b & 0x8)>>3;
break;
case 0:
return (b & 0x10)>>4;
break;
}

}


对取出的二进制位值,进行相应的显示,bit为1的显示,位置为0的不显示

ARDUINO 代码复制打印
void show_symbol(byte * p,int time)
{
int light_val=0;
for (int times =0;times< time/25;times++)
{
for (int i=0;i<5;i++)
{
for( int j=0;j<5;j++)
{
light_val = get_bit_val(p[i],j);
if (light_val == 1)
{
x_y_on(x_pin_convert(j),y_pin_convert(i));
}
}
}
}
}
完成后,即可显示如图,可按照自己的需要显示图形。(完 个人新blog www.robot91.com)

led4-300x226.jpg



俺这个5*5 LED购于 这里

via - 极客工坊

标签: Arduino教程