极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

楼主: xc7981348

手工贴片LED点阵

[复制链接]
 楼主| 发表于 2013-3-19 23:26:33 来自手机 | 显示全部楼层
czad 发表于 2013-3-19 13:48  手艺真好!

谢夸奖 嘿嘿
回复 支持 反对

使用道具 举报

发表于 2013-3-24 11:38:02 | 显示全部楼层
lz也喜欢摄影啊><感觉用光好好!!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-3-24 12:58:14 | 显示全部楼层

RE: 手工贴片LED点阵

biubiu_ 发表于 2013-3-24 11:38
lz也喜欢摄影啊>

是的呢,平时也玩玩摄影 ^_^
回复 支持 反对

使用道具 举报

发表于 2013-3-24 15:27:39 | 显示全部楼层
代码已帮LZ改好
http://pastebin.com/vFrh5XHY
  1. #include <avr/pgmspace.h>
  2. #include <FrequencyTimer2.h>

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

  12. #define ZERO { \
  13.         0b00000000, \
  14.         0b01111110, \
  15.         0b01000010, \
  16.         0b01000110, \
  17.         0b01101010, \
  18.         0b01110010, \
  19.         0b01100010, \
  20.         0b01111110  \
  21. }

  22. #define ONE { \
  23.         0b00000000, \
  24.         0b00111000, \
  25.         0b00001000, \
  26.         0b00001000, \
  27.         0b00011000, \
  28.         0b00011000, \
  29.         0b00011000, \
  30.         0b00111100  \
  31. }

  32. #define TWO { \
  33.         0b00000000, \
  34.         0b01111110, \
  35.         0b01000010, \
  36.         0b00000010, \
  37.         0b01111110, \
  38.         0b01100000, \
  39.         0b01100000, \
  40.         0b01111110  \
  41. }

  42. #define THREE { \
  43.         0b00000000, \
  44.         0b00111110, \
  45.         0b00000010, \
  46.         0b00000010, \
  47.         0b00011110, \
  48.         0b00000110, \
  49.         0b00000110, \
  50.         0b01111110  \
  51. }

  52. #define FOUR { \
  53.         0b00000000, \
  54.         0b01000000, \
  55.         0b01000000, \
  56.         0b01000100, \
  57.         0b01000100, \
  58.         0b01111110, \
  59.         0b00001100, \
  60.         0b00001100  \
  61. }

  62. #define FIVE { \
  63.         0b00000000, \
  64.         0b00111110, \
  65.         0b00100000, \
  66.         0b00100000, \
  67.         0b00111110, \
  68.         0b00000110, \
  69.         0b01000110, \
  70.         0b01111110  \
  71. }

  72. #define SIX { \
  73.         0b00000000, \
  74.         0b01111110, \
  75.         0b01000000, \
  76.         0b01000000, \
  77.         0b01111110, \
  78.         0b01100010, \
  79.         0b01100010, \
  80.         0b01111110  \
  81. }

  82. #define SEVEN { \
  83.         0b00000000, \
  84.         0b01111110, \
  85.         0b01000010, \
  86.         0b00000100, \
  87.         0b00001000, \
  88.         0b00011000, \
  89.         0b00011000, \
  90.         0b00011000  \
  91. }

  92. #define EIGHT { \
  93.         0b00000000, \
  94.         0b00111100, \
  95.         0b00100100, \
  96.         0b00100100, \
  97.         0b01111110, \
  98.         0b01100010, \
  99.         0b01100010, \
  100.         0b01111110  \
  101. }

  102. #define NINE { \
  103.         0b00000000, \
  104.         0b01111110, \
  105.         0b01000010, \
  106.         0b01000010, \
  107.         0b01111110, \
  108.         0b00000110, \
  109.         0b00000110, \
  110.         0b01111110  \
  111. }

  112. #define A { \
  113.         0b00000000, \
  114.         0b00111100, \
  115.         0b00100100, \
  116.         0b01111110, \
  117.         0b01100010, \
  118.         0b01100010, \
  119.         0b01100010, \
  120.         0b01100010  \
  121. }

  122. #define B { \
  123.         0b00000000, \
  124.         0b01111100, \
  125.         0b00100100, \
  126.         0b00111100, \
  127.         0b00110010, \
  128.         0b00110010, \
  129.         0b00110010, \
  130.         0b01111110  \
  131. }

  132. #define C { \
  133.         0b00000000, \
  134.         0b01111110, \
  135.         0b01000010, \
  136.         0b01000000, \
  137.         0b01100000, \
  138.         0b01100000, \
  139.         0b01100010, \
  140.         0b01111110  \
  141. }

  142. #define D { \
  143.         0b00000000, \
  144.         0b01111110, \
  145.         0b01000010, \
  146.         0b01000010, \
  147.         0b01100010, \
  148.         0b01100010, \
  149.         0b01100010, \
  150.         0b01111110  \
  151. }

  152. #define E { \
  153.         0b00000000, \
  154.         0b01111110, \
  155.         0b01000000, \
  156.         0b01000000, \
  157.         0b01111000, \
  158.         0b01100000, \
  159.         0b01100000, \
  160.         0b01111110  \
  161. }

  162. #define F { \
  163.         0b00000000, \
  164.         0b01111110, \
  165.         0b01000000, \
  166.         0b01000000, \
  167.         0b01111000, \
  168.         0b01100000, \
  169.         0b01100000, \
  170.         0b01100000  \
  171. }

  172. #define G { \
  173.         0b00000000, \
  174.         0b01111110, \
  175.         0b01000010, \
  176.         0b01000000, \
  177.         0b01101110, \
  178.         0b01100010, \
  179.         0b01100010, \
  180.         0b01111110  \
  181. }

  182. #define H { \
  183.         0b00000000, \
  184.         0b01000010, \
  185.         0b01000010, \
  186.         0b01000010, \
  187.         0b01111110, \
  188.         0b01100010, \
  189.         0b01100010, \
  190.         0b01100010  \
  191. }

  192. #define I { \
  193.         0b00000000, \
  194.         0b00010000, \
  195.         0b00010000, \
  196.         0b00010000, \
  197.         0b00011000, \
  198.         0b00011000, \
  199.         0b00011000, \
  200.         0b00011000  \
  201. }

  202. #define J { \
  203.         0b00000000, \
  204.         0b00000010, \
  205.         0b00000010, \
  206.         0b00000010, \
  207.         0b00000110, \
  208.         0b00000110, \
  209.         0b01000110, \
  210.         0b00111110  \
  211. }

  212. #define K { \
  213.         0b00000000, \
  214.         0b01000010, \
  215.         0b01000100, \
  216.         0b01001000, \
  217.         0b01111110, \
  218.         0b01100010, \
  219.         0b01100010, \
  220.         0b01100010  \
  221. }

  222. #define L { \
  223.         0b00000000, \
  224.         0b01000000, \
  225.         0b01000000, \
  226.         0b01000000, \
  227.         0b01100000, \
  228.         0b01100000, \
  229.         0b01100000, \
  230.         0b01111110  \
  231. }

  232. #define M { \
  233.         0b00000000, \
  234.         0b01110110, \
  235.         0b01011010, \
  236.         0b01000010, \
  237.         0b01100010, \
  238.         0b01100010, \
  239.         0b01100010, \
  240.         0b01100010  \
  241. }

  242. #define N { \
  243.         0b00000000, \
  244.         0b01110010, \
  245.         0b01001010, \
  246.         0b01001010, \
  247.         0b01101010, \
  248.         0b01101010, \
  249.         0b01101010, \
  250.         0b01100110  \
  251. }

  252. #define O { \
  253.         0b00000000, \
  254.         0b01111110, \
  255.         0b01000010, \
  256.         0b01000010, \
  257.         0b01100010, \
  258.         0b01100010, \
  259.         0b01100010, \
  260.         0b01111110  \
  261. }

  262. #define P { \
  263.         0b00000000, \
  264.         0b01111110, \
  265.         0b01000010, \
  266.         0b01000010, \
  267.         0b01111110, \
  268.         0b01100000, \
  269.         0b01100000, \
  270.         0b01100000  \
  271. }

  272. #define Q { \
  273.         0b00000000, \
  274.         0b01111110, \
  275.         0b01000010, \
  276.         0b01000010, \
  277.         0b01100010, \
  278.         0b01101010, \
  279.         0b01100100, \
  280.         0b01111010  \
  281. }

  282. #define R { \
  283.         0b00000000, \
  284.         0b01111110, \
  285.         0b01000010, \
  286.         0b01000010, \
  287.         0b01111110, \
  288.         0b01100100, \
  289.         0b01100010, \
  290.         0b01100010  \
  291. }

  292. #define S { \
  293.         0b00000000, \
  294.         0b01111110, \
  295.         0b01000010, \
  296.         0b01000000, \
  297.         0b01111110, \
  298.         0b00000110, \
  299.         0b00000110, \
  300.         0b01111110  \
  301. }

  302. #define T { \
  303.         0b00000000, \
  304.         0b01111110, \
  305.         0b00010000, \
  306.         0b00010000, \
  307.         0b00011000, \
  308.         0b00011000, \
  309.         0b00011000, \
  310.         0b00011000  \
  311. }

  312. #define U { \
  313.         0b00000000, \
  314.         0b01000010, \
  315.         0b01000010, \
  316.         0b01000010, \
  317.         0b01100010, \
  318.         0b01100010, \
  319.         0b01100010, \
  320.         0b01111110  \
  321. }

  322. #define V { \
  323.         0b00000000, \
  324.         0b01000010, \
  325.         0b01000010, \
  326.         0b01000010, \
  327.         0b00100100, \
  328.         0b00100100, \
  329.         0b00011000, \
  330.         0b00011000  \
  331. }

  332. #define W { \
  333.         0b00000000, \
  334.         0b01100010, \
  335.         0b01100010, \
  336.         0b01100010, \
  337.         0b01100010, \
  338.         0b01000010, \
  339.         0b01011010, \
  340.         0b01100110  \
  341. }

  342. #define X { \
  343.         0b00000000, \
  344.         0b01000010, \
  345.         0b00100100, \
  346.         0b00011000, \
  347.         0b01111100, \
  348.         0b01100010, \
  349.         0b01100010, \
  350.         0b01100010  \
  351. }

  352. #define Y { \
  353.         0b00000000, \
  354.         0b01000010, \
  355.         0b01000010, \
  356.         0b01000010, \
  357.         0b00111100, \
  358.         0b00011000, \
  359.         0b00011000, \
  360.         0b00011000  \
  361. }

  362. #define Z { \
  363.         0b00000000, \
  364.         0b01111100, \
  365.         0b00000010, \
  366.         0b00011100, \
  367.         0b01100000, \
  368.         0b01100000, \
  369.         0b01100000, \
  370.         0b01111110  \
  371. }

  372. byte col = 0;
  373. byte leds[8];

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

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

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


  380. byte patterns[][8] PROGMEM = {
  381.     SPACE,ZERO,ONE,TWO,THREE,FOUR,FIVE,SIX,SEVEN,EIGHT,NINE,
  382.     A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z
  383. };

  384. #define numPatterns (sizeof(patterns)/sizeof(patterns[0]))

  385. int pattern = 0;

  386. void setup() {
  387.     // sets the pins as output
  388.     for (int i = 1; i <= 16; i++) {
  389.         pinMode(pins[i], OUTPUT);
  390.     }

  391.     // set up cols and rows
  392.     for (int i = 1; i <= 8; i++) {
  393.         digitalWrite(cols[i - 1], LOW);
  394.     }

  395.     for (int i = 1; i <= 8; i++) {
  396.         digitalWrite(rows[i - 1], LOW);
  397.     }

  398.     clearLeds();

  399.     // Turn off toggling of pin 11
  400.     FrequencyTimer2::disable();
  401.     // Set refresh rate (interrupt timeout period)
  402.     FrequencyTimer2::setPeriod(2000);
  403.     // Set interrupt routine to be called
  404.     FrequencyTimer2::setOnOverflow(display);

  405.     setPattern(pattern);
  406. }

  407. void loop() {
  408.     pattern = ++pattern % numPatterns;
  409.     slidePattern(pattern, 150);
  410. }

  411. void clearLeds() {
  412.     // Clear display array
  413.     for (int i = 0; i < 8; i++) {
  414.             leds[i] = 0;
  415.     }
  416. }

  417. void setPattern(int pattern) {
  418.     for (int i = 0; i < 8; i++) {
  419.             leds[i] = pgm_read_byte_near(&patterns[pattern][i]);
  420.     }
  421. }

  422. void slidePattern(int pattern, int del) {
  423.     for (int l = 0; l < 8; l++) {
  424.         for (int i = 0; i < 8; i++) {
  425.                 byte acol = pgm_read_byte_near(&patterns[pattern][i]);
  426.                 leds[i] = (acol << l) | (acol >> (8 - l));
  427.         }
  428.         delay(del);
  429.     }
  430. }

  431. // Interrupt routine
  432. void display() {
  433.     digitalWrite(cols[col], LOW);  // Turn whole previous column off
  434.     col++;
  435.     if (col == 8) {
  436.         col = 0;
  437.     }
  438.     for (int row = 0; row < 8; row++) {
  439.         if ((leds[col] >> row) & 0x1) {
  440.             digitalWrite(rows[row], LOW);  // Turn on this led
  441.         }
  442.         else {
  443.             digitalWrite(rows[row], HIGH); // Turn off this led
  444.         }
  445.     }
  446.     digitalWrite(cols[col], HIGH); // Turn whole column on at once (for equal lighting times)
  447. }
复制代码
演示视频:


回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-3-24 23:28:08 来自手机 | 显示全部楼层
histamine 发表于 2013-3-24 15:27  代码已帮LZ改好  http://pastebin.com/vFrh5XHY演示视频:

非常感谢啊!!太厉害了
回复 支持 反对

使用道具 举报

发表于 2013-4-11 21:14:35 | 显示全部楼层
厉害厉害那么细的导线我总剥不好
回复 支持 反对

使用道具 举报

发表于 2013-4-19 11:19:10 | 显示全部楼层
呵呵,下次焊个立体的点阵出来吧。
回复 支持 反对

使用道具 举报

发表于 2013-5-22 17:16:18 | 显示全部楼层
手活不错啊哈哈哈
回复 支持 反对

使用道具 举报

发表于 2013-5-23 00:07:09 | 显示全部楼层
求方块点阵的购买地址,淘宝上找了好久找不到
回复 支持 反对

使用道具 举报

发表于 2013-5-23 09:42:34 | 显示全部楼层
xc7981348 发表于 2013-3-17 23:17
谢夸奖,已经pm

同求方形点阵地址……
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-6-12 11:01:35 来自手机 | 显示全部楼层
friskit 发表于 2013-5-22 17:16  手活不错啊哈哈哈

谢夸奖啊^_^
回复 支持 反对

使用道具 举报

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

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-7 11:50 , Processed in 0.039322 second(s), 23 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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