제조공정
| × | 1 | ||||
| × | 7 | ||||
| × | 1 | ||||
| × | 49 | ||||
| × | 1 |
|
저는 항상 저만의 LED 큐브를 만들고 싶었고, 이제 제 프로젝트를 여러분과 공유합니다.
1단계
가장 먼저 할 일은 LED 매트릭스를 만드는 것입니다.
이 경우 7x7 LED 매트릭스 7개를 만들었습니다.
양극과 음극을 나누어 행과 열로 납땜하여 결국 각 led 매트릭스에 대해 7개의 양극과 7개의 음극을 갖게 되었습니다.
2단계
이제 LED 큐브를 사용하는 데 필요한 하드웨어가 필요합니다.
전자를 잘 모른다면 가장 어려운 부분입니다.
하지만 이 부분을 명확하게 설명하려고 합니다.
저는 74HC574를 7개 사용했습니다.
이 IC는 8비트 D플립플롭이며 8비트 메모리입니다. 이런 식으로 큐브의 이미지를 보기 위해 비트를 로드할 수 있습니다. 7개의 LED 매트릭스가 있기 때문에 7개의 74HC574가 필요합니다.
어떤 레이어가 켜지는지 결정하려면 7개의 NPN 트랜지스터도 필요합니다.
이런 식으로 멀티플렉서 기술을 사용하여 모든 큐브에서 이미지를 시각화할 수 있습니다.
마지막으로 74LS138도 필요합니다. 3-8 라인 디코더 디멀티플렉서입니다. 데이터를 저장하기 위해 펄스도 필요하기 때문에 3비트로 모든 플립플롭을 제어할 수 있습니다.
이것은 하드웨어의 블록 다이어그램입니다:
회로는 제가 직접 만들었고, 아두이노의 독립형 ATmega328P를 사용했습니다.
아래에서 모든 회로도를 볼 수 있습니다.
3단계
하드웨어와 LED 큐브를 위한 구조도 필요합니다. 나는 그것을 만들기 위해 몇 가지 나무 조각을 사용했습니다.
그런 다음 모든 것을 조립할 수 있으며 각 LED 매트릭스는 다른 것 앞에 배치되어야 하고 각 레이어의 음극은 동일한 트랜지스터에 연결되어야 합니다.
4단계
마지막으로 큐브를 만드는 코드를 작성할 수 있습니다. 위의 블록 다이어그램이 코드 작성에 도움이 될 것입니다.
이 부분은 많이 혼동될 수 있지만 몇 번 연습하면 더 쉬울 것입니다.
아래 코드는 가장 쉬운 애니메이션을 나타냅니다. 다른 애니메이션은 너무 길지만 약간의 환상만 있으면 원하는 대로 할 수 있기 때문입니다.
섹션> <섹션 클래스="섹션 컨테이너 섹션 축소 가능" id="코드">
//이 코드는 LED에 대한 가장 쉬운 애니메이션을 나타냅니다. CUBEint temp =50, cont =0;//이 함수는 모든 큐브를 로드합니다. load_all(void) { //레이어 1 digitalWrite(A2, LOW); 디지털 쓰기(A1, LOW); 디지털 쓰기(A0, LOW); 지연(1); //레이어 2 digitalWrite(A2, HIGH); 디지털 쓰기(A1, LOW); 디지털 쓰기(A0, LOW); 지연(1); //레이어 3 digitalWrite(A2, LOW); 디지털 쓰기(A1, HIGH); 디지털 쓰기(A0, LOW); 지연(1); //레이어 4 digitalWrite(A2, HIGH); 디지털 쓰기(A1, HIGH); 디지털 쓰기(A0, LOW); 지연(1); //레이어 5 digitalWrite(A2, LOW); 디지털 쓰기(A1, LOW); 디지털 쓰기(A0, HIGH); 지연(1); //레이어 6 digitalWrite(A2, HIGH); 디지털 쓰기(A1, LOW); 디지털 쓰기(A0, HIGH); 지연(1); //레이어 7 digitalWrite(A2, LOW); 디지털 쓰기(A1, HIGH); 디지털 쓰기(A0, HIGH); 지연(1); //레이어 8 digitalWrite(A2, HIGH); 디지털 쓰기(A1, HIGH); 디지털 쓰기(A0, HIGH); delay(1);}//이 함수는 각 레이어를 한 번 활성화하고 레이어가 켜지는 시간을 결정할 수 있습니다. scrolling(int t) { PORTB =0x00; 디지털 쓰기(7, 높음); 지연(t); 디지털 쓰기(7, 낮음); 디지털 쓰기(8, 높음); 지연(t); 디지털 쓰기(8, 낮음); 디지털 쓰기(9, 높음); 지연(t); 디지털 쓰기(9, 낮음); 디지털 쓰기(10, 높음); 지연(t); 디지털 쓰기(10, 낮음); 디지털 쓰기(11, 높음); 지연(t); 디지털 쓰기(11, 낮음); 디지털 쓰기(12, 높음); 지연(t); 디지털 쓰기(12, 낮음); 디지털 쓰기(13, 높음); 지연(t); digitalWrite(13, LOW);}//이 애니메이션은 한 번에 한 레이어를 켜고 속도를 증가시키므로 마침내 모든 큐브가 onvoid one(void) { PORTD =0xff; load_all(); 동안 (1) { 스크롤링(온도); 온도 =온도 - 2; if (온도 <=0) { 온도 =1; 계속++; if (계속 ==1000) { 계속 =0; 온도 =100; } } }} 무효 설정() { DDRD =0xff; DDRB =0xff; DDRC =0xff;}무효 루프() { one();}섹션>
제조공정
구성품 및 소모품 Arduino UNO × 1 필요한 도구 및 기계 레이저 커터(일반) *필요하지는 않지만* 매우 유용합니다. 이 프로젝트 정보 소개 먼저 우리는 가족 의상을 하는 것을 좋아합니다. 작년에 우리는 LED 스트립 액센트로 은색 옷을 입은 사람들처럼 보이는 우주 에일리언을 만들었습니다. LED가 독특하고 아이들이 밤에 뛰어 다닐 때 쉽게 볼 수 있기 때문에 우리는 LED를 정말 좋아했습니다. 우리는 다시 불이 켜지는 일을 하기로 결정했지만 무엇
구성품 및 소모품 Arduino Nano R3 × 1 5mm LED:빨간색 × 1 5mm LED:녹색 × 1 LED(일반) × 1 저항 2K × 1 케이블 × 1 필요한 도구 및 기계 납땜 인두(일반) 뜨거운 글루건(일반) 납땜 와이어 앱 및 온라인 서비스 Arduino IDE 이 프로젝트 정보 안녕