산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 제조공정

드라이버 및 라이브러리 없이 8x8 LED 매트릭스 제어

구성품 및 소모품

Arduino Nano R3
× 1
LED 도트 매트릭스 디스플레이, 빨간색
× 1
스루 홀 저항기, 330옴
× 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="코드">

코드

<울>
  • 8x8 LED 매트릭스의 모든 64개 LED 테스트
  • 8x8 LED 매트릭스에 고양이 이미지 표시(멀티플렉싱)
  • 8x8 LED 매트릭스의 스크롤 텍스트(멀티플렉싱)
  • 8x8 LED 매트릭스의 모든 64개 LED 테스트Arduino
    // 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); } }}
    8x8 LED 매트릭스에 고양이 이미지 표시(멀티플렉싱)Arduino
    // 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;}
    8x8 LED 매트릭스의 스크롤 텍스트(멀티플렉싱)Arduino
    // 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;}

    맞춤형 부품 및 인클로저

    회로도


    제조공정

    1. 발광 다이오드(LED)
    2. Maxim의 소형 LED 드라이버는 고효율 및 낮은 EMI를 제공합니다.
    3. 관춤 멜로디
    4. MAX7219가 있는 24x16 매트릭스의 Arduino Pong 게임
    5. LED 매트릭스 + 모션 센서 도어 디스플레이 [Arduino Holiday]
    6. 사운드에 의한 8x LED 조명
    7. Arduino Quadruped
    8. 뜨거운 접착제 LED 매트릭스 램프
    9. 볼트와 Arduino를 사용하여 LED 밝기 제어
    10. 드라이버 및 라이브러리 없이 8x8 LED 매트릭스 제어