본문 바로가기

메이커 이야기/아두이노

[아두이노] 무작위 LED 주사위 만들기

반응형

무작위 LED 주사위를 만들어 봤습니다!!!


자세한 내용은 http://makeitnow.kr/post/?postid=428&mod=document&uid=428&pageid=1을 확인해주세요~!




무작위 LED 주사위 만들기

버튼을 누르면 랜덤으로 주사위가 돌아가는 랜덤 LED주사위를 만들어 보았습니다.

다양한 프로젝트에 응용이 가능할 것 같아요 ~!



사용 부품 리스트

아두이노 스타터 KIT에서 활용하였습니다. LED의 경우에는 짝수일 때에는 상관없으나, 홀수 일때는 가운데를 사용해야 하므로, 총 7개의 LED를 사용하였습니다~!

회로연결하기

회로 연결은 아래 사진과 같이 연결해주시면 됩니다.

회로완성

주사위 게임을 해보면, 주사위를 돌릴 때 긴장감을 높이도록 다양한 숫자가 나타나는 것들도 함께 구현이 되어 있습니다~!
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
int ledPins[7] = {2,3,4,5,7,8,6};
int dicePatterns[7][7]={
{0,0,0,0,0,0,1}, //1
{1,0,0,1,0,0,0}, //2
{1,0,0,1,0,0,1}, //3
{1,0,1,1,0,1,0}, //4
{1,0,1,1,0,1,1}, //5
{1,1,1,1,1,1,0}, // 6
{0,0,0,0,0,0,0} // 없음. 
};
 
int switchPin = 9;
int blank = 6;
 
void setup() {
for(int i=0; i<7; i++){
pinMode(ledPins[i], OUTPUT);
digitalWrite(ledPins[i],LOW);
}
pinMode(switchPin, INPUT_PULLUP);
randomSeed(analogRead(0));
}
 
void loop() {
if(digitalRead(switchPin)){
rollTheDice();
}
delay(100);
}
 
 
void rollTheDice(){
int result = 0;
int lengthOfRoll = random(15,25);
for(int i=0; i< lengthOfRoll; i++){
result = random(0,6);
show(result);
delay(50 + i * 10);
}
for(int j=0; j<3; j++){
show(blank);
delay(500);
show(result);
delay(500);
}
}
 
void show(int result){
for(int i=0; i<7; i++){
digitalWrite(ledPins[i], dicePatterns[result][i]);
}
}

최종 완성~!


반응형