목차
1588BR
- 8*8 Dot matrix Display
- Water Clear
- Low Power
- High brightness
핀 번호
뒷면
핀 번호가 24번까지 있으며 사용하는 핀은 18개입니다. ( 위쪽에 12개 아래쪽에 6개)
구조
8×8 도트 매트릭스에 HELLO 를 출력하는 실험입니다.
부품 목록
부품명 | 아두이노 UNO R3 |
|
---|---|---|
기능 | 아두이노 모듈 | |
수량 | 1 | |
판매처 | https://kit128.com/goods/view?no=337 |
부품명 | 1588BR |
|
---|---|---|
기능 | Dot Matrix 8*8 | |
수량 | 1 | |
8*8 |
핀 연결
순번 | 1588BR 핀 | UNO R3 핀 |
---|---|---|
1 | 1 | A5 |
2 | 2 | A4 |
3 | 3 | A3 |
4 | 4 | A2 |
5 | 13 | 13 |
6 | 14 | 12 |
7 | 15 | 11 |
8 | 16 | 10 |
9 | 17 | 9 |
10 | 18 | 8 |
11 | 19 | 7 |
12 | 20 | 6 |
13 | 21 | 5 |
14 | 22 | 4 |
15 | 23 | 3 |
16 | 24 | 2 |
1588BR 은 좌측 하단이 1번 이고, 좌측 상단이 24번 입니다.
소스코드
최신 소스코드는 [파일]=>[예제]=> [WhiteAT UNO]=>[Starter] =>[03_1588BS_B] 에 있으며
라이브러리는 아두이노 개발환경 을 참조하세요
/* 1588BR 도트매트릭스 예제 입니다. HELLO 를 TEXT를 이동하는 예제 알찬 아두이노 세트(입문자용): https://kit128.com/goods/view?no=133 출처: http://whiteat.com/Arduino */ #include <FrequencyTimer2.h> #define SPACE { \ {0, 0, 0, 0, 0, 0, 0, 0}, \ {0, 0, 0, 0, 0, 0, 0, 0}, \ {0, 0, 0, 0, 0, 0, 0, 0}, \ {0, 0, 0, 0, 0, 0, 0, 0}, \ {0, 0, 0, 0, 0, 0, 0, 0}, \ {0, 0, 0, 0, 0, 0, 0, 0}, \ {0, 0, 0, 0, 0, 0, 0, 0}, \ {0, 0, 0, 0, 0, 0, 0, 0} \ } #define H { \ {0, 1, 0, 0, 0, 0, 1, 0}, \ {0, 1, 0, 0, 0, 0, 1, 0}, \ {0, 1, 0, 0, 0, 0, 1, 0}, \ {0, 1, 1, 1, 1, 1, 1, 0}, \ {0, 1, 0, 0, 0, 0, 1, 0}, \ {0, 1, 0, 0, 0, 0, 1, 0}, \ {0, 1, 0, 0, 0, 0, 1, 0}, \ {0, 1, 0, 0, 0, 0, 1, 0} \ } #define E { \ {0, 1, 1, 1, 1, 1, 1, 0}, \ {0, 1, 0, 0, 0, 0, 0, 0}, \ {0, 1, 0, 0, 0, 0, 0, 0}, \ {0, 1, 1, 1, 1, 1, 1, 0}, \ {0, 1, 0, 0, 0, 0, 0, 0}, \ {0, 1, 0, 0, 0, 0, 0, 0}, \ {0, 1, 0, 0, 0, 0, 0, 0}, \ {0, 1, 1, 1, 1, 1, 1, 0} \ } #define L { \ {0, 1, 0, 0, 0, 0, 0, 0}, \ {0, 1, 0, 0, 0, 0, 0, 0}, \ {0, 1, 0, 0, 0, 0, 0, 0}, \ {0, 1, 0, 0, 0, 0, 0, 0}, \ {0, 1, 0, 0, 0, 0, 0, 0}, \ {0, 1, 0, 0, 0, 0, 0, 0}, \ {0, 1, 0, 0, 0, 0, 0, 0}, \ {0, 1, 1, 1, 1, 1, 1, 0} \ } #define O { \ {0, 0, 0, 1, 1, 0, 0, 0}, \ {0, 0, 1, 0, 0, 1, 0, 0}, \ {0, 1, 0, 0, 0, 0, 1, 0}, \ {0, 1, 0, 0, 0, 0, 1, 0}, \ {0, 1, 0, 0, 0, 0, 1, 0}, \ {0, 1, 0, 0, 0, 0, 1, 0}, \ {0, 0, 1, 0, 0, 1, 0, 0}, \ {0, 0, 0, 1, 1, 0, 0, 0} \ } byte col = 0; byte leds[8][8]; // pin[xx] on led matrix connected to nn on Arduino (-1 is dummy to make array start at pos 1) int pins[17] = { -1, A5, A4, A3, A2, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2 }; // col[xx] of leds = pin yy on led matrix int cols[8] = { pins[12], pins[11], pins[10], pins[9], pins[8], pins[7], pins[6], pins[5] }; // row[xx] of leds = pin yy on led matrix int rows[8] = { pins[16], pins[15], pins[14], pins[13], pins[4], pins[3], pins[2], pins[1] }; const int numPatterns = 6; byte patterns[numPatterns][8][8] = { H, E, L, L, O, SPACE }; int pattern = 0; void setup() { // sets the pins as output for (int i = 1; i <= 16; i++) { pinMode(pins[i], OUTPUT); } // set up cols and rows for (int i = 1; i <= 8; i++) { digitalWrite(cols[i - 1], HIGH); } for (int i = 1; i <= 8; i++) { digitalWrite(rows[i - 1], HIGH); } 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, 60); } void clearLeds() { // Clear display array for (int i = 0; i < 8; i++) { for (int j = 0; j < 8; j++) { leds[i][j] = 0; } } } void setPattern(int pattern) { for (int i = 0; i < 8; i++) { for (int j = 0; j < 8; j++) { leds[i][j] = patterns[pattern][i][j]; } } } void slidePattern(int pattern, int del) { for (int l = 0; l < 8; l++) { for (int i = 0; i < 7; i++) { for (int j = 0; j < 8; j++) { leds[j][i] = leds[j][i + 1]; } } for (int j = 0; j < 8; j++) { leds[j][7] = patterns[pattern][j][0 + l]; } delay(del); } } // Interrupt routine void display() { digitalWrite(cols[col], HIGH); // Turn whole previous column off col++; if (col == 8) { col = 0; } for (int row = 0; row < 8; row++) { if (leds[col][7 - row] == 1) { digitalWrite(rows[row], HIGH); // Turn on this led } else { digitalWrite(rows[row], LOW); // Turn off this led } } digitalWrite(cols[col], LOW); // Turn whole column on at once (for equal lighting times) }
결과
‘H’, ‘E’,’L’,’L’,’O’ TEXT 가 좌측으로 이동합니다.
제품 구매
HL-M1588BR 도트매트릭스는 https://kit128.com/goods/view?no=744 에서 구매하실 수 있습니다.
.