Embedded System/ARDUINO

[아두이노] 3x3x3 LED 큐브 만들기

임베지수 2017. 4. 2. 14:54

이것도 교생실습 때 한건데 이제야 포스팅을 하는군... 원래는 5x5x5나 8x8x8 LED큐브를 해볼까 했지만 나에겐 시간이 얼마 없었으므로 간단히 3x3x3 LED 큐브를...

 

준비물은 27개의 LED 그리고 47옴 저항 9개 1k옴 3개, 아두이노가 필요하다. 먼저 아래 그림처럼 LED를 만들어준다.+는 +끼리, -는 -끼리 연결해주어야 한다. 여기서 중요한게 +랑 -랑 쇼트나면 안된다. 잘 구부려서 만들어주자.

요걸 3세트 만들어준다.

 

 

이제 저걸 연결해주어야 하는데 밑에 그림처럼 만들어준다. 옆으로 길게 뻗은 +다리를 90도로 구부려서 +끼리 연결해준다.

 

서로 연결한 최종 모습....

  

이제 아두이노랑 어떻게 연결하는지 회로도를 보면... 각각의 LAYER에서 선을 뽑아서 트랜지스터로 연결해준다. 솔직히 LED 3개 정도는 아두이노 포트에서 바로 5V를 줘도 되는데 LED갯수가 많아지면 전류가 약하므로 트랜지스터를 사용해준다.

 

동작원리를 간략히 설명해보겠다. 아두이노의 A0,A1,A2핀이 LED큐브에서 층을 골라주는 놈이다. 만약 내가 1층에 불을 켜고 싶으면 A0핀에 HIGH를 출력하면 된다. 1,3층을 켜고 싶으면 A0, A2핀에 HIGH를 출력하면 된다. LED0~8은 아두이노의 D2~10번 핀에 연결되어있다. LED를 켜고 싶으면 LED에 LOW를 출력하면 된다....

 

예) 3층LED4를 켜고 싶다.


A0=LOW  // 1층 켜지마
A1=LOW  // 2층 켜지마
A2=HIGH // 3층 켜라!


D2=HIGH// LED 0 OFF
D3=HIGH// LED 1 OFF
D4=HIGH// LED 2 OFF
D5=HIGH// LED 3 OFF
D6=LOW // LED 4 ON
D7=HIGH// LED 5 OFF
D8=HIGH// LED 6 OFF
D9=HIGH// LED 7 OFF
D10=HIGH// LED 8 OFF
void setup() {
    pinMode(A0, OUTPUT); pinMode(A1, OUTPUT); pinMode(A2, OUTPUT);
    pinMode(D2, OUTPUT); pinMode(D3, OUTPUT); pinMode(D4, OUTPUT);
    pinMode(D5, OUTPUT); pinMode(D6, OUTPUT); pinMode(D7, OUTPUT);
    pinMode(D8, OUTPUT); pinMode(D9, OUTPUT); pinMode(D10, OUTPUT);
}


void loop() {
    digitalWrite(A0, LOW);
    digitalWrite(A1, LOW);
    digitalWrite(A2, HIGH); // 3층 켜
    digitalWrite(D6, LOW); // LED 4 켜
}

 

뭐...이런식으로 코드를 짜면 되겠다. 코드는 알아서 구현하시길.... 나는 누가 블로그에 올려놓은 소스 넣었다...

그 블로그 주소는 까먹음.

 

아래는 납땜 후 모습들...

 

 

 

크기비교...ㅋㅋㅋ

 

아두이노랑 연결한 모습,,,

 

아,,, 저 아두이노는 내가 만든거라서 저렇게 생겼음 -.-ㅋ

 

마지막으로 작동 영상

 

 

소스는 알아서들 짜시오!