极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 55056|回复: 54

手工贴片LED点阵

[复制链接]
发表于 2013-3-15 19:50:41 | 显示全部楼层 |阅读模式
本帖最后由 xc7981348 于 2013-3-15 20:02 编辑


DIY了个8*8点阵屏幕送妹子,手工贴片焊接LED,用的是官方直驱点阵的程序,但是只能显示13个字符,再多的字符可以写进去不过显示不出来,求大家帮助编程,非常感谢,以下是我的代码和大量渣图。
还有一个问题,如何制作mega328的最小系统,可以写程序进去不过总是运行错误,比如只能点亮一行点阵而且显示不正常,求大家帮忙啊。


  1. #include <FrequencyTimer2.h>

  2. #define SPACE { \
  3.     {0, 0, 0, 0, 0, 0, 0, 0},  \
  4.     {0, 0, 0, 0, 0, 0, 0, 0}, \
  5.     {0, 0, 0, 0, 0, 0, 0, 0}, \
  6.     {0, 0, 0, 0, 0, 0, 0, 0}, \
  7.     {0, 0, 0, 0, 0, 0, 0, 0}, \
  8.     {0, 0, 0, 0, 0, 0, 0, 0}, \
  9.     {0, 0, 0, 0, 0, 0, 0, 0}, \
  10.     {0, 0, 0, 0, 0, 0, 0, 0} \
  11. }

  12. #define A { \
  13.     {0, 0, 0, 0, 0, 0, 0, 0},  \
  14.     {0, 0, 1, 0, 0, 0, 0, 0}, \
  15.     {0, 1, 0, 1, 0, 0, 0, 0}, \
  16.     {1, 0, 0, 0, 1, 0, 0, 0}, \
  17.     {1, 0, 0, 0, 1, 0, 0, 0}, \
  18.     {1, 1, 1, 1, 1, 0, 0, 0}, \
  19.     {1, 0, 0, 0, 1, 0, 0, 0}, \
  20.     {1, 0, 0, 0, 1, 0, 0, 0} \
  21. }

  22. #define B { \
  23.     {0, 0, 0, 0, 0, 0, 0, 0},  \
  24.     {1, 1, 1, 1, 0, 0, 0, 0}, \
  25.     {1, 0, 0, 0, 1, 0, 0, 0}, \
  26.     {1, 0, 0, 0, 1, 0, 0, 0}, \
  27.     {1, 1, 1, 1, 0, 0, 0, 0}, \
  28.     {1, 0, 0, 0, 1, 0, 0, 0}, \
  29.     {1, 0, 0, 0, 1, 0, 0, 0}, \
  30.     {1, 1, 1, 1, 0, 0, 0, 0} \
  31. }

  32. #define C{ \
  33.     {0, 0, 0, 0, 0, 0, 0, 0},  \
  34.     {0, 1, 1, 1, 0, 0, 0, 0}, \
  35.     {1, 0, 0, 0, 1, 0, 0, 0}, \
  36.     {1, 0, 0, 0, 0, 0, 0, 0}, \
  37.     {1, 0, 0, 0, 0, 0, 0, 0}, \
  38.     {1, 0, 0, 0, 0, 0, 0, 0}, \
  39.     {1, 0, 0, 0, 1, 0, 0, 0}, \
  40.     {0, 1, 1, 1, 0, 0, 0, 0} \
  41. }

  42. #define D { \
  43.     {0, 0, 0, 0, 0, 0, 0, 0},  \
  44.     {1, 1, 1, 1, 0, 0, 0, 0}, \
  45.     {1, 0, 0, 0, 1, 0, 0, 0}, \
  46.     {1, 0, 0, 0, 1, 0, 0, 0}, \
  47.     {1, 0, 0, 0, 1, 0, 0, 0}, \
  48.     {1, 0, 0, 0, 1, 0, 0, 0}, \
  49.     {1, 0, 0, 0, 1, 0, 0, 0}, \
  50.     {1, 1, 1, 1, 0, 0, 0, 0} \
  51. }

  52. #define E { \
  53.     {0, 0, 0, 0, 0, 0, 0, 0},  \
  54.     {1, 1, 1, 1, 1, 0, 0, 0}, \
  55.     {1, 0, 0, 0, 0, 0, 0, 0}, \
  56.     {1, 0, 0, 0, 0, 0, 0, 0}, \
  57.     {1, 1, 1, 1, 0, 0, 0, 0}, \
  58.     {1, 0, 0, 0, 0, 0, 0, 0}, \
  59.     {1, 0, 0, 0, 0, 0, 0, 0}, \
  60.     {1, 1, 1, 1, 1, 0, 0, 0} \
  61. }

  62. #define F { \
  63.     {0, 0, 0, 0, 0, 0, 0, 0},  \
  64.     {1, 1, 1, 1, 1, 0, 0, 0}, \
  65.     {1, 0, 0, 0, 0, 0, 0, 0}, \
  66.     {1, 0, 0, 0, 0, 0, 0, 0}, \
  67.     {1, 1, 1, 1, 0, 0, 0, 0}, \
  68.     {1, 0, 0, 0, 0, 0, 0, 0}, \
  69.     {1, 0, 0, 0, 0, 0, 0, 0}, \
  70.     {1, 0, 0, 0, 0, 0, 0, 0} \
  71. }

  72. #define G { \
  73.     {0, 0, 0, 0, 0, 0, 0, 0},  \
  74.     {0, 1, 1, 1, 1, 0, 0, 0}, \
  75.     {1, 0, 0, 0, 0, 0, 0, 0}, \
  76.     {1, 0, 0, 0, 0, 0, 0, 0}, \
  77.     {1, 0, 0, 0, 0, 0, 0, 0}, \
  78.     {1, 0, 0, 1, 1, 0, 0, 0}, \
  79.     {1, 0, 0, 0, 1, 0, 0, 0}, \
  80.     {0, 1, 1, 1, 1, 0, 0, 0} \
  81. }

  82. #define H { \
  83.     {0, 0, 0, 0, 0, 0, 0, 0},  \
  84.     {1, 0, 0, 0, 1, 0, 0, 0}, \
  85.     {1, 0, 0, 0, 1, 0, 0, 0}, \
  86.     {1, 0, 0, 0, 1, 0, 0, 0}, \
  87.     {1, 1, 1, 1, 1, 0, 0, 0}, \
  88.     {1, 0, 0, 0, 1, 0, 0, 0}, \
  89.     {1, 0, 0, 0, 1, 0, 0, 0}, \
  90.     {1, 0, 0, 0, 1, 0, 0, 0} \
  91. }

  92. #define I { \
  93.     {0, 0, 0, 0, 0, 0, 0, 0},  \
  94.     {1, 1, 1, 0, 0, 0, 0, 0}, \
  95.     {0, 1, 0, 0, 0, 0, 0, 0}, \
  96.     {0, 1, 0, 0, 0, 0, 0, 0}, \
  97.     {0, 1, 0, 0, 0, 0, 0, 0}, \
  98.     {0, 1, 0, 0, 0, 0, 0, 0}, \
  99.     {0, 1, 0, 0, 0, 0, 0, 0}, \
  100.     {1, 1, 1, 0, 0, 0, 0, 0} \
  101. }

  102. #define J{ \
  103.     {0, 0, 0, 0, 0, 0, 0, 0},  \
  104.     {0, 0, 0, 0, 1, 0, 0, 0}, \
  105.     {0, 0, 0, 0, 1, 0, 0, 0}, \
  106.     {0, 0, 0, 0, 1, 0, 0, 0}, \
  107.     {0, 0, 0, 0, 1, 0, 0, 0}, \
  108.     {0, 0, 0, 0, 1, 0, 0, 0}, \
  109.     {1, 0, 0, 0, 1, 0, 0, 0}, \
  110.     {0, 1, 1, 1, 0, 0, 0, 0} \
  111. }

  112. #define K { \
  113.     {0, 0, 0, 0, 0, 0, 0, 0},  \
  114.     {1, 0, 0, 0, 1, 0, 0, 0}, \
  115.     {1, 0, 0, 1, 0, 0, 0, 0}, \
  116.     {1, 0, 1, 0, 0, 0, 0, 0}, \
  117.     {1, 1, 0, 0, 0, 0, 0, 0}, \
  118.     {1, 0, 1, 0, 0, 0, 0, 0}, \
  119.     {1, 0, 0, 1, 0, 0, 0, 0}, \
  120.     {1, 0, 0, 0, 1, 0, 0, 0} \
  121. }

  122. #define L { \
  123.     {0, 0, 0, 0, 0, 0, 0, 0},  \
  124.     {1, 0, 0, 0, 0, 0, 0, 0}, \
  125.     {1, 0, 0, 0, 0, 0, 0, 0}, \
  126.     {1, 0, 0, 0, 0, 0, 0, 0}, \
  127.     {1, 0, 0, 0, 0, 0, 0, 0}, \
  128.     {1, 0, 0, 0, 0, 0, 0, 0}, \
  129.     {1, 0, 0, 0, 0, 0, 0, 0}, \
  130.     {1, 1, 1, 1, 1, 0, 0, 0} \
  131. }

  132. #define M { \
  133.     {0, 0, 0, 0, 0, 0, 0, 0},  \
  134.     {1, 0, 0, 0, 1, 0, 0, 0}, \
  135.     {1, 1, 0, 1, 1, 0, 0, 0}, \
  136.     {1, 0, 1, 0, 1, 0, 0, 0}, \
  137.     {1, 0, 1, 0, 1, 0, 0, 0}, \
  138.     {1, 0, 0, 0, 1, 0, 0, 0}, \
  139.     {1, 0, 0, 0, 1, 0, 0, 0}, \
  140.     {1, 0, 0, 0, 1, 0, 0, 0} \
  141. }

  142. #define N { \
  143.     {0, 0, 0, 0, 0, 0, 0, 0},  \
  144.     {1, 0, 0, 0, 1, 0, 0, 0}, \
  145.     {1, 0, 0, 1, 1, 0, 0, 0}, \
  146.     {1, 1, 0, 0, 1, 0, 0, 0}, \
  147.     {1, 0, 1, 0, 1, 0, 0, 0}, \
  148.     {1, 0, 0, 1, 1, 0, 0, 0}, \
  149.     {1, 0, 0, 0, 1, 0, 0, 0}, \
  150.     {1, 0, 0, 0, 1, 0, 0, 0} \
  151. }

  152. #define O { \
  153.     {0, 0, 0, 0, 0, 0, 0, 0},  \
  154.     {0, 1, 1, 1, 0, 0, 0, 0}, \
  155.     {1, 0, 0, 1, 1, 0, 0, 0}, \
  156.     {1, 0, 0, 0, 1, 0, 0, 0}, \
  157.     {1, 0, 0, 0, 1, 0, 0, 0}, \
  158.     {1, 0, 0, 0, 1, 0, 0, 0}, \
  159.     {1, 0, 0, 0, 1, 0, 0, 0}, \
  160.     {0, 1, 1, 1, 0, 0, 0, 0} \
  161. }

  162. byte col = 0;
  163. byte leds[8][8];

  164. // pin[xx] on led matrix connected to nn on Arduino (-1 is dummy to make array start at pos 1)
  165. int pins[17]= {-1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17};

  166. // col[xx] of leds = pin yy on led matrix
  167. int cols[8] = {pins[1], pins[2], pins[3], pins[4], pins[5], pins[6], pins[7], pins[8]};

  168. // row[xx] of leds = pin yy on led matrix
  169. int rows[8] = {pins[9], pins[10], pins[11], pins[12], pins[13], pins[14], pins[15], pins[16]};

  170. const int numPatterns = 13;
  171. byte patterns[numPatterns][8][8] = {
  172.   A,B,C,D,E,F,G,H,I,J,K,L,M
  173. };

  174. int pattern = 0;

  175. void setup() {
  176.   // sets the pins as output
  177.   for (int i = 1; i <= 16; i++) {
  178.     pinMode(pins[i], OUTPUT);
  179.   }

  180.   // set up cols and rows
  181.   for (int i = 1; i <= 8; i++) {
  182.     digitalWrite(cols[i - 1], LOW);
  183.   }

  184.   for (int i = 1; i <= 8; i++) {
  185.     digitalWrite(rows[i - 1], LOW);
  186.   }

  187.   clearLeds();

  188.   // Turn off toggling of pin 11
  189.   FrequencyTimer2::disable();
  190.   // Set refresh rate (interrupt timeout period)
  191.   FrequencyTimer2::setPeriod(2000);
  192.   // Set interrupt routine to be called
  193.   FrequencyTimer2::setOnOverflow(display);

  194.   setPattern(pattern);
  195. }

  196. void loop() {
  197.     pattern = ++pattern % numPatterns;
  198.     slidePattern(pattern, 150);
  199. }

  200. void clearLeds() {
  201.   // Clear display array
  202.   for (int i = 0; i < 8; i++) {
  203.     for (int j = 0; j < 8; j++) {
  204.       leds[i][j] = 0;
  205.     }
  206.   }
  207. }

  208. void setPattern(int pattern) {
  209.   for (int i = 0; i < 8; i++) {
  210.     for (int j = 0; j < 8; j++) {
  211.       leds[i][j] = patterns[pattern][i][j];
  212.     }
  213.   }
  214. }

  215. void slidePattern(int pattern, int del) {
  216.   for (int l = 0; l < 8; l++) {
  217.     for (int i = 0; i < 7; i++) {
  218.       for (int j = 0; j < 8; j++) {
  219.         leds[j][i] = leds[j][i+1];
  220.       }
  221.     }
  222.     for (int j = 0; j < 8; j++) {
  223.       leds[j][7] = patterns[pattern][j][0 + l];
  224.     }
  225.     delay(del);
  226.   }
  227. }

  228. // Interrupt routine
  229. void display() {
  230.   digitalWrite(cols[col], LOW);  // Turn whole previous column off
  231.   col++;
  232.   if (col == 8) {
  233.     col = 0;
  234.   }
  235.   for (int row = 0; row < 8; row++) {
  236.     if (leds[col][7 - row] == 1) {
  237.       digitalWrite(rows[row], LOW);  // Turn on this led
  238.     }
  239.     else {
  240.       digitalWrite(rows[row], HIGH); // Turn off this led
  241.     }
  242.   }
  243.   digitalWrite(cols[col], HIGH); // Turn whole column on at once (for equal lighting times)
  244. }
  245. ;
复制代码


侧面

正面

背面

用的Atmega8-16PU

5*5点阵1206贴片LED的试验版

0805贴片LED第一版

0805贴片LED第二版,改成了贴片晶振

背面接线

参考论坛做的点阵和驱动板

背面

一开始用面包板做的

用到的FrequencyTimer2库文件,求大家帮忙啊

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

评分

参与人数 1 +2 收起 理由
幻生幻灭 + 2 赞一个!

查看全部评分

回复

使用道具 举报

发表于 2013-3-15 21:07:24 | 显示全部楼层
楼主焊工杠杠的!
请问那个黄色方LED点阵哪里有卖,谢谢!
回复 支持 反对

使用道具 举报

发表于 2013-3-15 21:13:11 | 显示全部楼层
焊功真好....羡慕不已
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-3-15 21:15:12 | 显示全部楼层
windasher 发表于 2013-3-15 21:07
楼主焊工杠杠的!
请问那个黄色方LED点阵哪里有卖,谢谢!

感谢夸奖,已PM链接
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-3-15 21:15:38 | 显示全部楼层
anzedick 发表于 2013-3-15 21:13
焊功真好....羡慕不已

谢夸奖
回复 支持 反对

使用道具 举报

发表于 2013-3-15 21:51:45 | 显示全部楼层
xc7981348 发表于 2013-3-15 21:15
谢夸奖

我焊的老跟鼻屎一样...楼主给出篇电焊的经验贴吧
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-3-15 21:57:08 | 显示全部楼层
anzedick 发表于 2013-3-15 21:51
我焊的老跟鼻屎一样...楼主给出篇电焊的经验贴吧

我是学金融的,玩烙铁才玩了3个月,我用的是T12白光,可以调温,焊锡用的是论坛商店买的整卷的山崎焊锡,其实也没啥经验啦,我一般用300度焊接
回复 支持 反对

使用道具 举报

发表于 2013-3-15 22:04:39 | 显示全部楼层
好精致的手工
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-3-15 22:06:13 | 显示全部楼层
wing 发表于 2013-3-15 22:04
好精致的手工

谢夸奖,不会编程啊不会编程啊
回复 支持 反对

使用道具 举报

发表于 2013-3-15 23:11:40 | 显示全部楼层
厉害厉害,请问LZ是如何对导线剥线的呢。那么细的导线我总剥不好
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-3-15 23:15:34 | 显示全部楼层
本帖最后由 xc7981348 于 2013-3-15 23:18 编辑
bys_1123 发表于 2013-3-15 23:11
厉害厉害,请问LZ是如何对导线剥线的呢。那么细的导线我总剥不好


这个我买了一把10多块的剥线钳,用的是24AWG的线,那线里面铜丝有点缩水,正好够细很合用
回复 支持 反对

使用道具 举报

发表于 2013-3-16 09:19:03 | 显示全部楼层
焊的真不错
回复 支持 反对

使用道具 举报

发表于 2013-3-16 09:38:10 | 显示全部楼层
焊接很漂亮,适合送妹子
回复 支持 反对

使用道具 举报

发表于 2013-3-16 12:49:48 | 显示全部楼层
弄个壳~~送妹子必须的~~
回复 支持 反对

使用道具 举报

发表于 2013-3-16 13:13:48 | 显示全部楼层
那个,led什么的都木有限流电阻的么@@?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-7 16:27 , Processed in 0.045772 second(s), 28 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表