max7219 贴片级联
本帖最后由 nds_shenzhen 于 2014-5-20 13:06 编辑大家好,通过上次我的帖子 初来 免费送 MAX7219点阵PCB 每人限2个:http://www.geek-workshop.com/thread-9645-1-1.html
收到了很多朋友的支持,同时也得到了很多网友的需求信息。我发现很多朋友玩max7219 一个不是很尽兴,都希望能够很多个点阵的级联。当然上次活动的插件max7219板子也是可以级联的,但是不太方便和美观。
为此 我觉得再次画出pcb 这次使用的是贴片 max7219CWG板子也画小点,参考网上的样品做出了,贴片8*8点阵,方便级联。
这个功能和上次插件的一模一样,但是就是调整了贴片和结构,为了能够更好的配合,我没有急着发出去做小批量,而是花了50块钱去嘉立创打样品回来。
只打了10片样品
板子回来后 确实发现了问题 就是排针座的间隙太大了,需要移动下才行,其他没问题。
点亮后 是这样的
特别注意的是 我们这次选用了 如下相对比较特殊的插件,公母链接,很方便级联。
为了能够方便级联 后面点阵 电压压差一样,同时也取消了,防止反插的二极管,大家注意电源第一个的电源不要插错就是了。
其实我以前没有做过很多的级联,这次想玩下,也希望和大家分享,一起玩。
PCB 第二版已经修改好了,准备发出去小批量打样。板子回来后我在做些测试例子来和大家一起分享,当然如果需要PCB空板子的话我也可以提供,象征性的收取板材成本费 {:soso_e113:} 。
pcb第二版我已经发出去了,预计要5月28号才回来。
沙发 我自己做了
附上代码:unsigned char i;
unsigned char j;
/*Port Definitions*/
#define count 6 //级联个数
int Max7219_pinCLK = 10;
int Max7219_pinCS = 9;
int Max7219_pinDIN = 8;
unsigned char disp1={
//{0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF},//0
{0x3C,0x42,0x42,0x42,0x42,0x42,0x42,0x3C},//0
//{0x10,0x18,0x14,0x10,0x10,0x10,0x10,0x10},//1
{0x10,0x30,0x50,0x10,0x10,0x10,0x10,0x38},//1
{0x7E,0x2,0x2,0x7E,0x40,0x40,0x40,0x7E},//2
{0x3E,0x2,0x2,0x3E,0x2,0x2,0x3E,0x0},//3
{0x8,0x18,0x28,0x48,0xFE,0x8,0x8,0x8},//4
{0x3C,0x20,0x20,0x3C,0x4,0x4,0x3C,0x0},//5
{0x3C,0x20,0x20,0x3C,0x24,0x24,0x3C,0x0},//6
{0x3E,0x22,0x4,0x8,0x8,0x8,0x8,0x8},//7
{0x0,0x3E,0x22,0x22,0x3E,0x22,0x22,0x3E},//8
{0x3E,0x22,0x22,0x3E,0x2,0x2,0x2,0x3E},//9
{0x8,0x14,0x22,0x3E,0x22,0x22,0x22,0x22},//A
{0x3C,0x22,0x22,0x3E,0x22,0x22,0x3C,0x0},//B
{0x3C,0x40,0x40,0x40,0x40,0x40,0x3C,0x0},//C
{0x7C,0x42,0x42,0x42,0x42,0x42,0x7C,0x0},//D
{0x7C,0x40,0x40,0x7C,0x40,0x40,0x40,0x7C},//E
{0x7C,0x40,0x40,0x7C,0x40,0x40,0x40,0x40},//F
{0x3C,0x40,0x40,0x40,0x40,0x44,0x44,0x3C},//G
{0x44,0x44,0x44,0x7C,0x44,0x44,0x44,0x44},//H
{0x7C,0x10,0x10,0x10,0x10,0x10,0x10,0x7C},//I
{0x3C,0x8,0x8,0x8,0x8,0x8,0x48,0x30},//J
{0x0,0x24,0x28,0x30,0x20,0x30,0x28,0x24},//K
{0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x7C},//L
{0x81,0xC3,0xA5,0x99,0x81,0x81,0x81,0x81},//M
{0x0,0x42,0x62,0x52,0x4A,0x46,0x42,0x0},//N
{0x3C,0x42,0x42,0x42,0x42,0x42,0x42,0x3C},//O
{0x3C,0x22,0x22,0x22,0x3C,0x20,0x20,0x20},//P
{0x1C,0x22,0x22,0x22,0x22,0x26,0x22,0x1D},//Q
{0x3C,0x22,0x22,0x22,0x3C,0x24,0x22,0x21},//R
{0x0,0x1E,0x20,0x20,0x3E,0x2,0x2,0x3C},//S
{0x0,0x3E,0x8,0x8,0x8,0x8,0x8,0x8},//T
{0x42,0x42,0x42,0x42,0x42,0x42,0x22,0x1C},//U
{0x42,0x42,0x42,0x42,0x42,0x42,0x24,0x18},//V
{0x0,0x49,0x49,0x49,0x49,0x2A,0x1C,0x0},//W
{0x0,0x41,0x22,0x14,0x8,0x14,0x22,0x41},//X
{0x41,0x22,0x14,0x8,0x8,0x8,0x8,0x8},//Y
{0x0,0x7F,0x2,0x4,0x8,0x10,0x20,0x7F},//Z
};
void Write_Max7219_byte(unsigned char DATA)
{
unsigned char i;
digitalWrite(Max7219_pinCS,LOW);
for(i=8;i>=1;i--)
{
digitalWrite(Max7219_pinCLK,LOW);
digitalWrite(Max7219_pinDIN,DATA&0x80);// Extracting a bit data
DATA = DATA<<1;
digitalWrite(Max7219_pinCLK,HIGH);
}
}
void Write_Max7219(unsigned char address,unsigned char dat)
{
digitalWrite(Max7219_pinCS,LOW);
Write_Max7219_byte(address); //写入地址,即数码管编号
Write_Max7219_byte(dat); //写入数据,即数码管显示数字
digitalWrite(Max7219_pinCS,HIGH);
}
void Init_MAX7219(void)
{
// Write_Max7219(0x09, 0x00); //译码方式:BCD码
// Write_Max7219(0x0a, 0x03); //亮度
// Write_Max7219(0x0b, 0x07); //扫描界限;8个数码管显示
// Write_Max7219(0x0c, 0x01); //掉电模式:0,普通模式:1
// Write_Max7219(0x0f, 0x00); //显示测试:1;测试结束,正常显示:0
unsigned chari;
digitalWrite(Max7219_pinCS,LOW);
for(i=0;i<count;i++)
{
Write_Max7219_byte(0x09); //译码方式:BCD码
Write_Max7219_byte(0x00);
}
digitalWrite(Max7219_pinCS,HIGH);
delay(50);
digitalWrite(Max7219_pinCS,LOW);
for(i=0;i<count;i++)
{
Write_Max7219_byte(0x0a); //亮度
Write_Max7219_byte(0x03);
}
digitalWrite(Max7219_pinCS,HIGH);
delay(50);
digitalWrite(Max7219_pinCS,LOW);
for(i=0;i<count;i++)
{
Write_Max7219_byte(0x0b); // //扫描界限;8个数码管显示
Write_Max7219_byte(0x07);
}
digitalWrite(Max7219_pinCS,HIGH);
delay(50);
digitalWrite(Max7219_pinCS,LOW);
for(i=0;i<count;i++)
{
Write_Max7219_byte(0x0c); // //掉电模式:0,普通模式:1
Write_Max7219_byte(0x01);
}
digitalWrite(Max7219_pinCS,HIGH);
digitalWrite(Max7219_pinCS,LOW);
for(i=0;i<count;i++)
{
Write_Max7219_byte(0x0f); //显示测试:1;测试结束,正常显示:0
Write_Max7219_byte(0x00);
}
digitalWrite(Max7219_pinCS,HIGH);
delay(50);
}
void setup()
{
pinMode(Max7219_pinCLK,OUTPUT);
pinMode(Max7219_pinCS,OUTPUT);
pinMode(Max7219_pinDIN,OUTPUT);
delay(50);
Init_MAX7219();
}
void loop()
{
for(i=1;i<9;i++)
{
digitalWrite(Max7219_pinCS,LOW);
for(j=0;j<count;j++)
{
Write_Max7219_byte(i); //写入地址,即数码管编号
Write_Max7219_byte(disp1);//写入数据,即数码管显示数字
}
digitalWrite(Max7219_pinCS,HIGH);
}
delay(1000);
} 一看到有送东西的我就出现了 tgyfish 发表于 2014-5-20 14:37 static/image/common/back.gif
一看到有送东西的我就出现了
哈哈 谢谢支持 支持,很好 看图插好点阵间距很大啊,希望改进下间距最好没有间距更美观些:lol 恩,座等5月28,更完美的产品出来 lmaq 发表于 2014-5-21 02:39 static/image/common/back.gif
看图插好点阵间距很大啊,希望改进下间距最好没有间距更美观些
对啊 有2~3mm
新一版 改进调节了下 Cupid 发表于 2014-5-21 07:57 static/image/common/back.gif
恩,座等5月28,更完美的产品出来
最近在学习 怎么驱动 显示更多的花样 期待新版上架! 期待5.28的新品,到时入手4至8个学习一下,也望楼主可以给个优惠价。:D
sinkr 发表于 2014-5-22 17:42 static/image/common/back.gif
期待5.28的新品,到时入手4至8个学习一下,也望楼主可以给个优惠价。
必须支持:D 佩服! 可是我卻自己做不出來...:'( 版主交一下怎麼弄的 你那塊訂做PCB怎麼接線的好不好?:) 再問一下你那塊可以在級連起來後像跑馬燈一樣嗎? (就是連起來後等同於40*8的跑馬燈)
版主可以順便幫我回答這問題嗎?:o
http://www.geek-workshop.com/thread-9890-1-1.html
chris80124 发表于 2014-5-24 12:02 static/image/common/back.gif
佩服! 可是我卻自己做不出來... 版主交一下怎麼弄的 你那塊訂做PCB怎麼接線的好不好? 再問一下你那塊可 ...
你可以看下我们的图片我可以直公头和母头 链接 很简单的
我第二版 就会链接得很紧凑
页:
[1]
2