제조공정
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
이 비디오는 MAX7219 및 해당 라이브러리와 같은 드라이버 칩을 사용하지 않고 1088AS Common Cathode 8x8 LED 매트릭스를 제어하는 방법에 대한 자습서입니다.
곧 동일한 매트릭스를 제어하는 두 번째 튜토리얼을 작성하지만 이번에는 MAX7219를 사용하여 결과를 비교하겠습니다.
전체 튜토리얼은 여기에서 찾을 수 있습니다:
이 콘텐츠가 마음에 들고 비슷한 동영상을 만드는 데 도움을 주고 싶다면 내 Patreon 웹페이지로 이동하세요.
https://www.patreon.com/MariosIdeas
또는
https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=7PD67JWZ9S3EJ&source=url
섹션> <섹션 클래스="섹션 컨테이너 섹션 축소 가능" id="코드">
// Mario's Ideas// 8x8 LED 매트릭스의 모든 64개 LED를 하나씩 조명하여 테스트// Raws #define R1 2#define R2 3#define R3 4#define R4 5#define R5 6#define R6 7#define R7 8#define R8 9//Columns#define C1 10#define C2 11#define C3 12#define C4 13#define C5 A0#define C6 A1#define C7 A2#define C8 A3void setup() { pinMode( R1, 출력); 핀모드(R2, 출력); 핀모드(R3, 출력); 핀모드(R4, 출력); 핀모드(R5, 출력); 핀모드(R6, 출력); 핀모드(R7, 출력); 핀모드(R8, 출력); 핀모드(C1, 출력); 핀모드(C2, 출력); 핀모드(C3, 출력); 핀모드(C4, 출력); 핀모드(C5, 출력); 핀모드(C6, 출력); 핀모드(C7, 출력); pinMode(C8, OUTPUT);// 스케치 시작 시 모든 LED 끄기 digitalWrite(R1,HIGH); 디지털 쓰기(R2, 높음); 디지털 쓰기(R3,HIGH); 디지털 쓰기(R4, 높음); 디지털 쓰기(R5,HIGH); 디지털 쓰기(R6, 높음); 디지털 쓰기(R7, 높음); 디지털 쓰기(R8, 높음); 디지털 쓰기(C1,LOW); 디지털 쓰기(C2,LOW); 디지털 쓰기(C3,LOW); 디지털 쓰기(C4,LOW); 디지털 쓰기(C5,LOW); 디지털 쓰기(C6,LOW); 디지털 쓰기(C7,LOW); digitalWrite(C8,LOW);} 무효 SelectRow(int row){ if (row==1) digitalWrite(R1,LOW); 그렇지 않으면 digitalWrite(R1, HIGH); if (행==2) digitalWrite(R2,LOW); 그렇지 않으면 digitalWrite(R2,HIGH); if (행==3) digitalWrite(R3,LOW); 그렇지 않으면 digitalWrite(R3,HIGH); if (행==4) digitalWrite(R4,LOW); 그렇지 않으면 digitalWrite(R4,HIGH); if (행==5) digitalWrite(R5,LOW); 그렇지 않으면 digitalWrite(R5,HIGH); if (행==6) digitalWrite(R6,LOW); 그렇지 않으면 digitalWrite(R6,HIGH); if (행==7) digitalWrite(R7,LOW); 그렇지 않으면 digitalWrite(R7, HIGH); if (행==8) digitalWrite(R8,LOW); else digitalWrite(R8,HIGH);} 무효 SelectColumn(int 열){ if (열==1) digitalWrite(C1,HIGH); 그렇지 않으면 digitalWrite(C1,LOW); if (열==2) digitalWrite(C2,HIGH); 그렇지 않으면 digitalWrite(C2,LOW); if (열==3) digitalWrite(C3,HIGH); 그렇지 않으면 digitalWrite(C3,LOW); if (열==4) digitalWrite(C4,HIGH); 그렇지 않으면 digitalWrite(C4,LOW); if (열==5) digitalWrite(C5,HIGH); 그렇지 않으면 digitalWrite(C5,LOW); if (열==6) digitalWrite(C6,HIGH); 그렇지 않으면 digitalWrite(C6,LOW); if (열==7) digitalWrite(C7,HIGH); 그렇지 않으면 digitalWrite(C7,LOW); if (열==8) digitalWrite(C8,HIGH); else digitalWrite(C8,LOW);} 무효 루프() { for (int i=1;i<9;i++) { for (int j=1;j<9;j++){ SelectRow(i); 셀렉트컬럼(j); 지연(100); } }}
// Mario의 아이디어// 8x8 LED 매트릭스에 고양이 이미지 표시(멀티플렉싱)// Raws #define R1 2#define R2 3#define R3 4#define R4 5#define R5 6#define R6 7#define R7 8 #define R8 9//Columns#define C1 10#define C2 11#define C3 12#define C4 13#define C5 A0#define C6 A1#define C7 A2#define C8 A3int pause=300; int 고양이 [8] [8] ={ {1,0,0,0,1,0,0,0}, {1,1,1,1,1,0,0,0}, {1,0 ,1,0,1,0,0,0}, {0,1,1,1,0,0,0,1}, {0,0,1,0,0,0,0,1}, {0,1,1,1,1,0,0,1}, {0,1,1,1,1,1,0,1}, {1,0,1,1,1,1,1 ,0}, }; 무효 설정() { 핀모드(R1, 출력); 핀모드(R2, 출력); 핀모드(R3, 출력); 핀모드(R4, 출력); 핀모드(R5, 출력); 핀모드(R6, 출력); 핀모드(R7, 출력); 핀모드(R8, 출력); 핀모드(C1, 출력); 핀모드(C2, 출력); 핀모드(C3, 출력); 핀모드(C4, 출력); 핀모드(C5, 출력); 핀모드(C6, 출력); 핀모드(C7, 출력); 핀모드(C8, 출력); 디지털 쓰기(R1,HIGH); 디지털 쓰기(R2, 높음); 디지털 쓰기(R3,HIGH); 디지털 쓰기(R4, 높음); 디지털 쓰기(R5,HIGH); 디지털 쓰기(R6, 높음); 디지털 쓰기(R7, 높음); 디지털 쓰기(R8, 높음); 디지털 쓰기(C1,LOW); 디지털 쓰기(C2,LOW); 디지털 쓰기(C3,LOW); 디지털 쓰기(C4,LOW); 디지털 쓰기(C5,LOW); 디지털 쓰기(C6,LOW); 디지털 쓰기(C7,LOW); digitalWrite(C8,LOW);} 무효 SelectRow(int row){ if (row==1) digitalWrite(R1,LOW); 그렇지 않으면 digitalWrite(R1, HIGH); if (행==2) digitalWrite(R2,LOW); 그렇지 않으면 digitalWrite(R2,HIGH); if (행==3) digitalWrite(R3,LOW); 그렇지 않으면 digitalWrite(R3,HIGH); if (행==4) digitalWrite(R4,LOW); 그렇지 않으면 digitalWrite(R4,HIGH); if (행==5) digitalWrite(R5,LOW); 그렇지 않으면 digitalWrite(R5,HIGH); if (행==6) digitalWrite(R6,LOW); 그렇지 않으면 digitalWrite(R6,HIGH); if (행==7) digitalWrite(R7,LOW); 그렇지 않으면 digitalWrite(R7, HIGH); if (행==8) digitalWrite(R8,LOW); else digitalWrite(R8,HIGH);} 무효 Set_LED_in_Active_Row(int 열, int state){ if (column==1) digitalWrite(C1, state); if (열==2) digitalWrite(C2, state); if (열==3) digitalWrite(C3,state); if (열==4) digitalWrite(C4, state); if (열==5) digitalWrite(C5, state); if (열==6) digitalWrite(C6, state); if (열==7) digitalWrite(C7, state); if (열==8) digitalWrite(C8, state); } 무효 루프() { for (int j=0;j<8;j++){ SelectRow(j+1); for (int i=0;i<8;i++){ Set_LED_in_Active_Row(i+1 ,Cat[j][i]); } 지연(2+일시 중지); }if(pause!=0 및 pause>100)pause=pause-100;if(pause!=0 및 pause<=100)pause=pause-10;}
// Mario's Ideas// 8x8 LED 매트릭스의 스크롤 텍스트(멀티플렉싱)// Raws #define R1 2#define R2 3#define R3 4#define R4 5#define R5 6#define R6 7#define R7 8# define R8 9//Columns#define C1 10#define C2 11#define C3 12#define C4 13#define C5 A0#define C6 A1#define C7 A2#define C8 A3int position=0; int Marios_ideas [8] [54] ={ {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0 ,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0}, {0,1,0,0,0,1,0,0,1,1,0,0,1,1,1 ,0,0,0,0,0,1,1,0,1,0,1,1,0,0,0,0,0,0,1,1,1,0,0,1,1 ,1,0,0,1,1,0,0,0,1,1,0,0,0,0}, {0,1,1,0,1,1,0,1,0,0 ,1,0,1,0,0,1,0,1,0,1,0,0,1,0,1,0,0,1,0,0,0,1,0,1,0 ,0,1,0,1,0,0,0,1,0,0,1,0,1,0,0,1,0,0,0}, {0,1,0,1,0 ,1,0,1,0,0,1,0,1,0,0,1,0,1,0,1,0,0,1,0,1,0,0,0,0,0 ,0,1,0,1,0,0,1,0,1,0,0,0,1,0,0,1,0,1,0,0,0,0,0,0}, {0,1,0,0,0,1,0,1,1,1,1,0,1,1,1,0,0,1,0,1,0,0,1,0,0 ,1,1,0,0,0,0,1,0,1,0,0,1,0,1,1,1,0,1,1,1,1,0,0,1,1 ,0,0,0,0}, {0,1,0,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,1 ,0,0,1,0,0,0,0,1,0,0,0,1,0,1,0,0,1,0,1,0,0,0,1,0,0 ,1,0,0,0,0,1,0,0,0}, {0,1,0,0,0,1,0,1,0,0,1,0,1,0,0 ,1,0,1,0,0,1,1,0,0,1,0,0, 1,0,0,0,1,0,1,1,1,0,0,1,0 ,0,0,1,0,0,1,0,1,0,0,1,0,0,0}, {0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 ,0,0,0,1,1,1,0,0,0,0,0,0,0,1,1,0,0,0,0} }; 무효 설정() { 핀모드(R1, 산출); 핀모드(R2, 출력); 핀모드(R3, 출력); 핀모드(R4, 출력); 핀모드(R5, 출력); 핀모드(R6, 출력); 핀모드(R7, 출력); 핀모드(R8, 출력); 핀모드(C1, 출력); 핀모드(C2, 출력); 핀모드(C3, 출력); 핀모드(C4, 출력); 핀모드(C5, 출력); 핀모드(C6, 출력); 핀모드(C7, 출력); 핀모드(C8, 출력); 디지털 쓰기(R1,HIGH); 디지털 쓰기(R2, 높음); 디지털 쓰기(R3,HIGH); 디지털 쓰기(R4, 높음); 디지털 쓰기(R5,HIGH); 디지털 쓰기(R6, 높음); 디지털 쓰기(R7, 높음); 디지털 쓰기(R8, 높음); 디지털 쓰기(C1,LOW); 디지털 쓰기(C2,LOW); 디지털 쓰기(C3,LOW); 디지털 쓰기(C4,LOW); 디지털 쓰기(C5,LOW); 디지털 쓰기(C6,LOW); 디지털 쓰기(C7,LOW); digitalWrite(C8,LOW);} 무효 SelectRow(int row){ if (row==1) digitalWrite(R1,LOW); 그렇지 않으면 digitalWrite(R1, HIGH); if (행==2) digitalWrite(R2,LOW); 그렇지 않으면 digitalWrite(R2,HIGH); if (행==3) digitalWrite(R3,LOW); 그렇지 않으면 digitalWrite(R3,HIGH); if (행==4) digitalWrite(R4,LOW); 그렇지 않으면 digitalWrite(R4,HIGH); if (행==5) digitalWrite(R5,LOW); 그렇지 않으면 digitalWrite(R5,HIGH); if (행==6) digitalWrite(R6,LOW); 그렇지 않으면 digitalWrite(R6,HIGH); if (행==7) digitalWrite(R7,LOW); 그렇지 않으면 digitalWrite(R7, HIGH); if (행==8) digitalWrite(R8,LOW); else digitalWrite(R8,HIGH);} 무효 Set_LED_in_Active_Row(int 열, int 상태){ if (column==1) digitalWrite(C1, state); if (열==2) digitalWrite(C2, state); if (열==3) digitalWrite(C3, state); if (열==4) digitalWrite(C4, state); if (열==5) digitalWrite(C5, state); if (열==6) digitalWrite(C6, state); if (열==7) digitalWrite(C7, state); if (열==8) digitalWrite(C8, state); } 무효 루프() { for (int x=0; x<5;x++){ for (int j=0;j<8;j++){ SelectRow(j+1); for (int i=0;i<8;i++){ Set_LED_in_Active_Row(i+1,Marios_ideas[j][(i+position)-abs((i+position)/54)*54]); } 지연(2); } } 위치=위치+1;}섹션>
제조공정
이 Arduino 튜토리얼에서는 MAX7219 드라이버와 Arduino 보드를 사용하여 8×8 LED 매트릭스를 제어하는 방법을 배웁니다. 자세한 내용은 다음 동영상을 보거나 아래에 작성된 튜토리얼을 참조하세요. 개요 우리는 세 가지 예를 만들 것입니다. 첫 번째 예에서는 MAX7219의 기본 작동 원리를 설명하고, 두 번째 예에서는 8x8 LED 매트릭스의 스크롤링 텍스트가 어떻게 작동하는지, 세 번째 예에서는 제어할 것입니다. 블루투스 및 맞춤형 빌드 Android 애플리케이션을 통해. MAX7219 이제 MAX7219
에너지 절약형 전자 제품에 관심이 있습니까? 그렇다면 LED 전구가 에너지 절약 능력이 뛰어나고 수명이 길다는 것을 알고 있습니다. 그러나 대부분의 사람들은 LED PCB 전구가 작동하려면 LED 드라이버라고 하는 특정 장치가 필요하다는 것을 모릅니다. 따라서 저전압 전구 변압기나 형광등에서 볼 수 있는 안정기와 유사합니다. 따라서 LED에 공급되는 전기를 담당합니다. 그러나 LED 드라이버는 다양한 유형이 있기 때문에 까다로운 기술이 될 수 있습니다. 그리고 대부분의 경우 약간 압도적입니다. 이것이 우리가 이 기사에서 LED