제조사 | OEM |
---|---|
브랜드 | 에듀이노 |
판매가 | 1,500원 |
적립금 | 10원 |
자체상품코드 | D-36 |
상품요약정보 | Common Anode type |
국내·해외배송 | 국내배송 |
배송방법 | 택배 |
수량 |
COMMENT |
(최소주문수량 1개 이상 / 최대주문수량 0개 이하)
사이즈 가이드현재 상품과 관련된 상품들입니다. 함께 구매해보세요^^
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161 |
#include <FrequencyTimer2.h>
#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 D { \
{1, 1, 1, 1, 1, 0, 0, 0},\
{1, 1, 0, 0, 1, 1, 0, 0},\
{1, 1, 0, 0, 0, 1, 1, 0},\
{1, 1, 0, 0, 0, 1, 1, 0},\
{1, 1, 0, 0, 0, 1, 1, 0},\
{1, 1, 0, 0, 0, 1, 1, 0},\
{1, 1, 0, 0, 1, 1, 0, 0},\
{1, 1, 1, 1, 1, 0, 0, 0},\
}
#define U { \
{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, 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, 1, 1, 1, 0, 0} \
}
#define I { \
{0, 0, 1, 1, 1, 1, 0, 0},\
{0, 0, 0, 1, 1, 0, 0, 0},\
{0, 0, 0, 1, 1, 0, 0, 0},\
{0, 0, 0, 1, 1, 0, 0, 0},\
{0, 0, 0, 1, 1, 0, 0, 0},\
{0, 0, 0, 1, 1, 0, 0, 0},\
{0, 0, 0, 1, 1, 0, 0, 0},\
{0, 0, 1, 1, 1, 1, 0, 0},\
}
#define N { \
{0, 1, 0, 0, 0, 0, 1, 0},\
{0, 1, 1, 0, 0, 0, 1, 0},\
{0, 1, 0, 1, 0, 0, 1, 0},\
{0, 1, 0, 1, 0, 0, 1, 0},\
{0, 1, 0, 0, 1, 0, 1, 0},\
{0, 1, 0, 0, 1, 0, 1, 0},\
{0, 1, 0, 0, 0, 1, 1, 0},\
{0, 1, 0, 0, 0, 0, 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} \
}
#define HEART { \
{0, 0, 1, 0, 0, 1, 0, 0},\
{0, 1, 0, 1, 1, 0, 1, 0},\
{1, 0, 0, 0, 0, 0, 0, 1},\
{1, 0, 0, 0, 0, 0, 0, 1},\
{1, 0, 0, 0, 0, 0, 0, 1},\
{0, 1, 0, 0, 0, 0, 1, 0},\
{0, 0, 1, 0, 0, 1, 0, 0},\
{0, 0, 0, 1, 1, 0, 0, 0},\
}
int tact = A5; // 택트 스위치 a%에 연결
byte col = 0; // COL을 0으로 초기화
byte leds[8][8]; // 현재 출력해야 할 LED 모양 업로드하는 배열
// 맨 처음 PINS[0]은 사용하지 않기때문에 -1로 설정. 1~16번까지의 핀을 PIN에 연결
int pins[17]= {-1, 5, 4, 3, 2, 14, 15, 16, 17, 13, 12, 11, 10, 9, 8, 7, 6};
// 행 0~7번까지 핀 연결해 주기
int cols[8] = {pins[13], pins[3], pins[4], pins[10], pins[6], pins[11], pins[15], pins[16]};
// 열 0~ 7번까지 핀 연결해 주기
int rows[8] = {pins[9], pins[14], pins[8], pins[12], pins[1], pins[7], pins[2], pins[5]};
const int numPatterns = 7; // 총 사용할 패턴 수
byte patterns[numPatterns][8][8] = { E, D, U, I, N, O, HEART }; // 위에서 정의한 led 모양을 patterns에 입력해 주기
int pattern = 0;
void setup() {
// 1~16번 까지의 핀을 출력으로 설정
for (int i = 1; i <= 16; i++) {
pinMode(pins[i], OUTPUT);
}
// 행 0~7번까지를 high로
for (int i = 0; i < 8; i++) {
digitalWrite(cols[i], HIGH );
}
// 열 0~7번 까지를 low로
for (int i = 0; i < 8; i++) {
digitalWrite(rows[i], HIGH);
}
clearLeds(); // led 초기화
FrequencyTimer2::setOnOverflow(display); // leds를 보여주기 위해서 setOnOverFlow를 사용
pinMode(tact, INPUT); // SW 를 설정, 아두이노 풀업저항 사용
setPattern(pattern);
}
void loop() {
int readTact = digitalRead(tact);
if(readTact == HIGH){ // 택트 스위치가 high일때
if(pattern == 6) pattern = 0; //패턴의 끝(heart)까지 다 출력하고 다시 처음 E 출력
else pattern++; // 다음 패턴 출력을 위해 pattern ++
// delay(300); // 길게 눌러 패턴이 순식간에 넘거가지 않기 위해서 딜레이를 줌
}
setPattern(pattern); // 패턴 출력
}
void clearLeds() { // led 다 초기화
for (int i = 0; i < 8; i++)
for (int j = 0; j < 8; j++)
leds[i][j] = 0;
}
void setPattern(int pattern) { // LED 배열에 PATTREN 입력하기
for (int i = 0; i < 8; i++)
for (int j = 0; j < 8; j++)
leds[i][j] = patterns[pattern][i][j];
}
// Interrupt routine
void display() {
digitalWrite(cols[col], HIGH); // 이전 행들 다 꺼지게끔 해주기.
col++;
if (col == 8) {
col = 0;
}
for (int row = 0; row <= 7; row++) {
if (leds[col][7 - row] == 1) { // 위의 배열에서 1일때 해당되는 위치 불빛 켜주기
digitalWrite(rows[row], HIGH);
}
else { // 위 배열에서 0일때 해당되는 위치 불빛 꺼주기
digitalWrite(rows[row], LOW);
}
}
digitalWrite(cols[col], LOW); // 다음 패턴을 위해 led 다 꺼주기
} |
cs |
상품에 대해 궁금한 점을 해결해 드립니다.
글읽기 권한이 없습니다.
"19세 미만의 미성년자"는 출입을 금합니다!
no | category | title | write | date | hit |
---|---|---|---|---|---|
1 | 이거 결함이 있어요 [2] | 멧돼준 | 2022-11-28 | 478 |