biubiu_ 发表于 2013-3-24 11:38:02

lz也喜欢摄影啊><感觉用光好好!!

xc7981348 发表于 2013-3-24 12:58:14

RE: 手工贴片LED点阵

biubiu_ 发表于 2013-3-24 11:38 static/image/common/back.gif
lz也喜欢摄影啊>

是的呢,平时也玩玩摄影 ^_^

histamine 发表于 2013-3-24 15:27:39

代码已帮LZ改好
http://pastebin.com/vFrh5XHY#include <avr/pgmspace.h>
#include <FrequencyTimer2.h>

#define SPACE { \
      0b00000000, \
      0b00000000, \
      0b00000000, \
      0b00000000, \
      0b00000000, \
      0b00000000, \
      0b00000000\
}

#define ZERO { \
      0b00000000, \
      0b01111110, \
      0b01000010, \
      0b01000110, \
      0b01101010, \
      0b01110010, \
      0b01100010, \
      0b01111110\
}

#define ONE { \
      0b00000000, \
      0b00111000, \
      0b00001000, \
      0b00001000, \
      0b00011000, \
      0b00011000, \
      0b00011000, \
      0b00111100\
}

#define TWO { \
      0b00000000, \
      0b01111110, \
      0b01000010, \
      0b00000010, \
      0b01111110, \
      0b01100000, \
      0b01100000, \
      0b01111110\
}

#define THREE { \
      0b00000000, \
      0b00111110, \
      0b00000010, \
      0b00000010, \
      0b00011110, \
      0b00000110, \
      0b00000110, \
      0b01111110\
}

#define FOUR { \
      0b00000000, \
      0b01000000, \
      0b01000000, \
      0b01000100, \
      0b01000100, \
      0b01111110, \
      0b00001100, \
      0b00001100\
}

#define FIVE { \
      0b00000000, \
      0b00111110, \
      0b00100000, \
      0b00100000, \
      0b00111110, \
      0b00000110, \
      0b01000110, \
      0b01111110\
}

#define SIX { \
      0b00000000, \
      0b01111110, \
      0b01000000, \
      0b01000000, \
      0b01111110, \
      0b01100010, \
      0b01100010, \
      0b01111110\
}

#define SEVEN { \
      0b00000000, \
      0b01111110, \
      0b01000010, \
      0b00000100, \
      0b00001000, \
      0b00011000, \
      0b00011000, \
      0b00011000\
}

#define EIGHT { \
      0b00000000, \
      0b00111100, \
      0b00100100, \
      0b00100100, \
      0b01111110, \
      0b01100010, \
      0b01100010, \
      0b01111110\
}

#define NINE { \
      0b00000000, \
      0b01111110, \
      0b01000010, \
      0b01000010, \
      0b01111110, \
      0b00000110, \
      0b00000110, \
      0b01111110\
}

#define A { \
      0b00000000, \
      0b00111100, \
      0b00100100, \
      0b01111110, \
      0b01100010, \
      0b01100010, \
      0b01100010, \
      0b01100010\
}

#define B { \
      0b00000000, \
      0b01111100, \
      0b00100100, \
      0b00111100, \
      0b00110010, \
      0b00110010, \
      0b00110010, \
      0b01111110\
}

#define C { \
      0b00000000, \
      0b01111110, \
      0b01000010, \
      0b01000000, \
      0b01100000, \
      0b01100000, \
      0b01100010, \
      0b01111110\
}

#define D { \
      0b00000000, \
      0b01111110, \
      0b01000010, \
      0b01000010, \
      0b01100010, \
      0b01100010, \
      0b01100010, \
      0b01111110\
}

#define E { \
      0b00000000, \
      0b01111110, \
      0b01000000, \
      0b01000000, \
      0b01111000, \
      0b01100000, \
      0b01100000, \
      0b01111110\
}

#define F { \
      0b00000000, \
      0b01111110, \
      0b01000000, \
      0b01000000, \
      0b01111000, \
      0b01100000, \
      0b01100000, \
      0b01100000\
}

#define G { \
      0b00000000, \
      0b01111110, \
      0b01000010, \
      0b01000000, \
      0b01101110, \
      0b01100010, \
      0b01100010, \
      0b01111110\
}

#define H { \
      0b00000000, \
      0b01000010, \
      0b01000010, \
      0b01000010, \
      0b01111110, \
      0b01100010, \
      0b01100010, \
      0b01100010\
}

#define I { \
      0b00000000, \
      0b00010000, \
      0b00010000, \
      0b00010000, \
      0b00011000, \
      0b00011000, \
      0b00011000, \
      0b00011000\
}

#define J { \
      0b00000000, \
      0b00000010, \
      0b00000010, \
      0b00000010, \
      0b00000110, \
      0b00000110, \
      0b01000110, \
      0b00111110\
}

#define K { \
      0b00000000, \
      0b01000010, \
      0b01000100, \
      0b01001000, \
      0b01111110, \
      0b01100010, \
      0b01100010, \
      0b01100010\
}

#define L { \
      0b00000000, \
      0b01000000, \
      0b01000000, \
      0b01000000, \
      0b01100000, \
      0b01100000, \
      0b01100000, \
      0b01111110\
}

#define M { \
      0b00000000, \
      0b01110110, \
      0b01011010, \
      0b01000010, \
      0b01100010, \
      0b01100010, \
      0b01100010, \
      0b01100010\
}

#define N { \
      0b00000000, \
      0b01110010, \
      0b01001010, \
      0b01001010, \
      0b01101010, \
      0b01101010, \
      0b01101010, \
      0b01100110\
}

#define O { \
      0b00000000, \
      0b01111110, \
      0b01000010, \
      0b01000010, \
      0b01100010, \
      0b01100010, \
      0b01100010, \
      0b01111110\
}

#define P { \
      0b00000000, \
      0b01111110, \
      0b01000010, \
      0b01000010, \
      0b01111110, \
      0b01100000, \
      0b01100000, \
      0b01100000\
}

#define Q { \
      0b00000000, \
      0b01111110, \
      0b01000010, \
      0b01000010, \
      0b01100010, \
      0b01101010, \
      0b01100100, \
      0b01111010\
}

#define R { \
      0b00000000, \
      0b01111110, \
      0b01000010, \
      0b01000010, \
      0b01111110, \
      0b01100100, \
      0b01100010, \
      0b01100010\
}

#define S { \
      0b00000000, \
      0b01111110, \
      0b01000010, \
      0b01000000, \
      0b01111110, \
      0b00000110, \
      0b00000110, \
      0b01111110\
}

#define T { \
      0b00000000, \
      0b01111110, \
      0b00010000, \
      0b00010000, \
      0b00011000, \
      0b00011000, \
      0b00011000, \
      0b00011000\
}

#define U { \
      0b00000000, \
      0b01000010, \
      0b01000010, \
      0b01000010, \
      0b01100010, \
      0b01100010, \
      0b01100010, \
      0b01111110\
}

#define V { \
      0b00000000, \
      0b01000010, \
      0b01000010, \
      0b01000010, \
      0b00100100, \
      0b00100100, \
      0b00011000, \
      0b00011000\
}

#define W { \
      0b00000000, \
      0b01100010, \
      0b01100010, \
      0b01100010, \
      0b01100010, \
      0b01000010, \
      0b01011010, \
      0b01100110\
}

#define X { \
      0b00000000, \
      0b01000010, \
      0b00100100, \
      0b00011000, \
      0b01111100, \
      0b01100010, \
      0b01100010, \
      0b01100010\
}

#define Y { \
      0b00000000, \
      0b01000010, \
      0b01000010, \
      0b01000010, \
      0b00111100, \
      0b00011000, \
      0b00011000, \
      0b00011000\
}

#define Z { \
      0b00000000, \
      0b01111100, \
      0b00000010, \
      0b00011100, \
      0b01100000, \
      0b01100000, \
      0b01100000, \
      0b01111110\
}

byte col = 0;
byte leds;

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

// col of leds = pin yy on led matrix
int cols = {pins, pins, pins, pins, pins, pins, pins, pins};

// row of leds = pin yy on led matrix
int rows = {pins, pins, pins, pins, pins, pins, pins, pins};


byte patterns[] PROGMEM = {
    SPACE,ZERO,ONE,TWO,THREE,FOUR,FIVE,SIX,SEVEN,EIGHT,NINE,
    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
};

#define numPatterns (sizeof(patterns)/sizeof(patterns))

int pattern = 0;

void setup() {
    // sets the pins as output
    for (int i = 1; i <= 16; i++) {
      pinMode(pins, OUTPUT);
    }

    // set up cols and rows
    for (int i = 1; i <= 8; i++) {
      digitalWrite(cols, LOW);
    }

    for (int i = 1; i <= 8; i++) {
      digitalWrite(rows, LOW);
    }

    clearLeds();

    // Turn off toggling of pin 11
    FrequencyTimer2::disable();
    // Set refresh rate (interrupt timeout period)
    FrequencyTimer2::setPeriod(2000);
    // Set interrupt routine to be called
    FrequencyTimer2::setOnOverflow(display);

    setPattern(pattern);
}

void loop() {
    pattern = ++pattern % numPatterns;
    slidePattern(pattern, 150);
}

void clearLeds() {
    // Clear display array
    for (int i = 0; i < 8; i++) {
            leds = 0;
    }
}

void setPattern(int pattern) {
    for (int i = 0; i < 8; i++) {
            leds = pgm_read_byte_near(&patterns);
    }
}

void slidePattern(int pattern, int del) {
    for (int l = 0; l < 8; l++) {
      for (int i = 0; i < 8; i++) {
                byte acol = pgm_read_byte_near(&patterns);
                leds = (acol << l) | (acol >> (8 - l));
      }
      delay(del);
    }
}

// Interrupt routine
void display() {
    digitalWrite(cols, LOW);// Turn whole previous column off
    col++;
    if (col == 8) {
      col = 0;
    }
    for (int row = 0; row < 8; row++) {
      if ((leds >> row) & 0x1) {
            digitalWrite(rows, LOW);// Turn on this led
      }
      else {
            digitalWrite(rows, HIGH); // Turn off this led
      }
    }
    digitalWrite(cols, HIGH); // Turn whole column on at once (for equal lighting times)
}演示视频:
http://player.youku.com/player.php/sid/XNTMxNzI0OTI0/v.swf
:lol

xc7981348 发表于 2013-3-24 23:28:08

histamine 发表于 2013-3-24 15:27代码已帮LZ改好http://pastebin.com/vFrh5XHY演示视频:

非常感谢啊!!太厉害了

pk01296 发表于 2013-4-11 21:14:35

厉害厉害那么细的导线我总剥不好

竹空闻樱 发表于 2013-4-19 11:19:10

呵呵,下次焊个立体的点阵出来吧。:lol

friskit 发表于 2013-5-22 17:16:18

手活不错啊哈哈哈

zjyylj 发表于 2013-5-23 00:07:09

求方块点阵的购买地址,淘宝上找了好久找不到

mmfinger 发表于 2013-5-23 09:42:34

xc7981348 发表于 2013-3-17 23:17 static/image/common/back.gif
谢夸奖,已经pm

同求方形点阵地址……

xc7981348 发表于 2013-6-12 11:01:35

friskit 发表于 2013-5-22 17:16手活不错啊哈哈哈

谢夸奖啊^_^
页: 1 2 3 [4]
查看完整版本: 手工贴片LED点阵