이 프로젝트 정보
1Sheeld와 arduino uno를 사용하여 스마트폰에 연결된 놀라운 4x4x4 LED 큐브입니다. 음악 제어 ...
LED 큐브 구성 방법:
이 지시 사항에 따라 LED 큐브를 구성하십시오. 3단계, 4단계, 5단계만 있으면 됩니다. 기본적인 납땜 지식이 있어야 합니다.
http://www.instructables.com/id/LED-Cube-4x4x4/
**지시 가능한 구성 요소가 필요하지 않습니다. 필요한 구성 요소는 아래 구성 요소 목록을 참조하십시오.
작동 이론:
각 LED의 양극에 전선을 연결하는 것은 분명히 비실용적입니다.
한 가지 가능한 솔루션은 큐브를 4개의 레이어로 나누는 것입니다. 각 레이어는 16개의 LED로 구성됩니다.
수직 열의 모든 LED는 공통 양극(+)을 공유합니다.
수평 레이어의 모든 LED는 공통 음극(-)을 공유합니다.
특정 LED를 켜려면 해당 LED가 포함된 레이어에 GND(-)를 공급한 다음 해당 LED가 포함된 열에 5V(+)를 공급하면 됩니다.
배선:
큐브를 구성한 후에는 기둥을 제어하는 16개의 핀과 레이어를 제어하는 4개의 핀이 있어야 합니다.
Ω-각 열 제어 핀을 에 연결합니다. 220 Ω 직렬로 연결된 저항, 의 다른 단자 저항은 arduino 보드 위에 장착된 1차대에 연결됩니다.
*** 저항 없이 1Sheed &arduino에 직접 전선을 연결하려고 시도했지만 실제로 작동했지만 권장하지 않습니다.
*열 제어 핀은 13에서 0까지의 디지털 핀과 아날로그 핀 A4 &A5에 순서대로 연결됩니다. (다이어그램 참조)
*각 핀은 해당 열의 LED를 제어하므로 원하는 조합으로 열을 자유롭게 연결할 수 있습니다.
-레이어 제어 핀을 아날로그 핀 A0, A1, A2 및 A3에 연결합니다.
*내 코드에 따르면 하위 레이어는 핀 A0에 연결되고 다음 레이어는 핀 A1에 연결되고 다음 레이어는 핀 A2에 연결되고 가장 높은 레이어는 핀 A3에 연결됩니다. (다이어그램 참조)
-1Sheld와 arduino에 전선을 연결한 후 코드를 업로드한 다음 스마트폰을 1Sheed에 연결할 수 있습니다.
*원쉴드에 대해 잘 모르시는 분들은 이 튜토리얼을 먼저 따라하시면 됩니다.
http://1sheeld.com/tutorials/getting-started/
섹션> <섹션 클래스="섹션 컨테이너 섹션 축소 가능" id="코드"> 코드
<울> 제목 없는 파일
제목 없는 파일Arduino
/*이 코드는 1Sheeld와 arduino Uno 보드를 사용하여 스마트폰의 마이크를 사용하여 4x4x4 LED 매트릭스를 제어합니다. 회로:* 64개의 LED가 1Sheeld 및 arduino 보드와 연결된 4x4x4 큐브를 형성합니다. * 열 제어 핀은 디지털 핀 0~13과 아날로그 핀 A4 및 A5에 연결됩니다. * 레이어 제어 핀은 아날로그 핀 A0~A3에 연결됩니다. Hassan Ibrahim 작성*/ #define CUSTOM_SETTINGS#define INCLUDE_PUSH_BUTTON_SHIELD#define INCLUDE_MIC_SHIELD/* 1Sheeld 라이브러리를 포함합니다. */#include // LED 매트릭스(열 및 레이어)의 핀 연결을 정의합니다.// 자세한 설명은 자습서를 참조하십시오.int coloumn13 =13; // coloumn13은 arduino 보드의 13번 핀에 연결된 열을 의미합니다. int coloumn12 =12;int coloumn11 =11;int coloumn10 =10;int coloumn9 =9;int coloumn8 =8;int coloumn7 =n6;int coloum 열 5 =5, 정수 열 4 =4, 정수 열 3 =3, 정수 열 2 =2, 정수 열 1 =1, 정수 열 0 =0, 정수 열 A4 =A4, 정수 열 A5 =A5, 계층 A0 =A0, // layerA0은 arduino의 아날로그 핀 A0에 연결된 레이어를 의미합니다(이 예에서 가장 낮은 레이어)int layerA1 =A1; // * 이름은 수정을 쉽게 하기 위해 이런 식으로 선택됩니다.int layerA2 =A2;int layerA3 =A3;int counter; // 열을 변경하는 데 사용됩니다. // reset:void setup()을 누를 때 설정 루틴이 한 번 실행됩니다. { // 통신을 시작합니다. OneSheeld.begin(); Serial.begin(115200); // 각 핀을 출력으로 초기화합니다. 핀모드(0열, 출력); 핀모드(열1, 출력); 핀모드(2열, 출력); 핀모드(3열, 출력); 핀모드(4열, 출력); 핀모드(5열, 출력); 핀모드(6열, 출력); 핀모드(7열, 출력); 핀모드(8열, 출력); 핀모드(9열, 출력); 핀모드(10열, 출력); 핀모드(11열, 출력); 핀모드(12열, 출력); 핀모드(13열, 출력); 핀모드(A4열, 출력); 핀모드(A5열, 출력); 핀모드(레이어A0, 출력); 핀모드(레이어A1, 출력); 핀모드(레이어A2, 출력); pinMode(layerA3, OUTPUT);} // 설정 끝// 루프 루틴은 계속해서 계속 실행됩니다.forever:void loop() { // 모든 열은 5v(높음)에 연결됩니다. 디지털 쓰기(열0, 높음); 디지털 쓰기(열1, 높음); 디지털 쓰기(열2, 높음); 디지털 쓰기(열3, 높음); 디지털 쓰기(4열, 높음); 디지털 쓰기(5열, 높음); 디지털 쓰기(6열, 높음); 디지털 쓰기(7열, 높음); 디지털 쓰기(8열, 높음); 디지털 쓰기(9열, 높음); 디지털 쓰기(10열, 높음); 디지털 쓰기(11열, 높음); 디지털 쓰기(12열, 높음); 디지털 쓰기(13열, 높음); 디지털 쓰기(열 A4, 높음); 디지털 쓰기(열 A5, 높음); 지연(30); // 마이크에서 노이즈 레벨을 가져오고 0v(낮음)에 연결할 레이어를 제어합니다. // 각 if-else 블록은 하나의 레이어를 제어합니다. // 값은 휴대폰에 따라 보정되어야 합니다. /* 보정하려면 스마트폰 근처에서 어떤 종류의 음악이든 재생하고 마이크 실드의 판독값을 보고 적절한 값을 선택하십시오. */ // 이 예에서 6단계는 좋은 결과를 제공합니다. if( Mic.getValue()> 70 ) // 첫 번째 레이어 제어 { digitalWrite(layerA0, LOW); 지연(50); // 디스플레이를 더 명확하게 만들기 위해. 더 빠르거나 느리게 만들도록 수정할 수 있습니다. } else { digitalWrite(layerA0, HIGH); } if( Mic.getValue()> 76 ) // 두 번째 레이어 컨트롤 { digitalWrite(layerA1, LOW); 지연(50); } else { digitalWrite(layerA1, HIGH); } if( Mic.getValue()> 82 ) // 세 번째 레이어 컨트롤 { digitalWrite(layerA2, LOW); 지연(50); } else { digitalWrite(layerA2, HIGH); } if( Mic.getValue()> 88 ) // 네 번째 레이어 제어 { digitalWrite(layerA3, LOW); 지연(50); } else { digitalWrite(layerA3, HIGH); } } // 루프 끝
1개의 쉴드가 있는 LED 큐브(마이크 실드)
섹션> 회로도
이 이미지에는 저항이 포함되어 있지 않습니다.