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

Arduino를 사용한 48 x 8 스크롤링 LED 매트릭스.

구성품 및 소모품

Arduino UNO
× 1
74HC595 8비트 직렬에서 병렬 시프트 레지스터
× 7
저항 475옴
× 56
남성 헤더 40 위치 1 행(0.1")
× 2
암컷 헤더 8 위치 1 행(0.1")
× 21
범용 PCB 보드 6"x4"
× 4
8X8 LED 매트릭스
× 6
BC 548 트랜지스터
× 1

필요한 도구 및 기계

납땜 인두(일반)
뜨거운 글루건(일반)
Digilent Mastech MS8217 자동 범위 디지털 멀티미터

앱 및 온라인 서비스

Arduino IDE

이 프로젝트 정보

안녕하세요!

이 프로젝트는 Arduino UNO와 74HC595 시프트 레지스터를 사용하여 48x8 Programmable Scrolling LED Matrix를 만드는 것입니다.

이것은 Arduino 개발 보드를 사용한 첫 번째 프로젝트였습니다. 그것을 만들려고 하는 것은 선생님께서 제게 주신 도전이었습니다. 그래서 이 도전을 수락할 당시에는 arduino를 사용하여 LED를 깜박이는 방법조차 몰랐습니다. 그래서 초보자도 약간의 인내심과 이해만 있으면 할 수 있다고 생각합니다. 나는 온라인에서 회로도를 찾았고 이것이 이 프로젝트를 구축하기 위한 유일한 참고 자료였습니다. 나는 arduino의 시프트 레지스터와 멀티플렉싱에 대한 약간의 연구로 시작했습니다.

서킷

구성요소 수집

나는 다른 출처에서 모든 구성 요소를 수집했습니다. 온라인 웹사이트에서 이 5mm 8x8 공통 음극 LED 매트릭스 디스플레이를 얻었습니다.

프로토타입 제작

하나의 시프트 레지스터를 사용하여 8행을 제어하고 열을 제어하기 위해 각 8열에 대해 하나의 시프트 레지스터를 사용하는 것이 회로에 나와 있습니다.

따라서 간단한 8x8 행렬을 만들 수 있다면 열 제어를 위한 회로의 일부만 복제하고 행렬을 원하는 수의 열로 확장할 수 있습니다. 회로에 추가하는 8열(8x8 모듈 1개)마다 74hc595 1개만 추가하면 됩니다. 이를 염두에 두고 8x8 프로토타입을 만들었습니다.

납땜 단계

행과 열 컨트롤을 만들기 위해 별도의 도트 보드를 사용하고 함께 연결하는 확장 와이어와 헤더를 사용했습니다.

8x8 매트릭스를 성공적으로 만든 후에는 열을 구동하기 위해 공통 클럭으로 더 많은 시프트 레지스터를 데이지 체인 방식으로 연결하면 됩니다. 모든 행을 구동하려면 단일 74hc595만 있으면 됩니다. 따라서 열 수에 따라 더 많은 시프트 레지스터를 추가할 수 있으며 추가할 수 있는 열 수에는 제한이 없습니다.

하반기 구축

그 당시에는 3D 프린팅에 접근할 수 없었기 때문에 지역 목수에게 연락하여 사례를 만들었습니다.

그가 만든 케이스는 생각보다 훨씬 컸습니다. Fusion 360이나 다른 디자인 소프트웨어를 사용하여 더 작은 케이스를 디자인하고 케이스를 3D 프린트하는 것이 좋습니다. 케이스에 전원과 USB 케이블을 연결할 수 있도록 구멍을 뚫었습니다.

코드

코드는 이 프로젝트의 첨부 파일에서 찾을 수 있습니다.

여기서 우리는 행을 스캔하고 적절한 논리 수준으로 열 행을 공급할 것입니다. 코드는 스크롤하는 메시지의 속도와 표시할 메시지를 결정합니다. 스크롤 방향은 코드에서 기본적으로 오른쪽에서 왼쪽이지만 약간 수정하면 다른 방향으로도 구현할 수 있습니다.

결과

감사합니다! :)

<섹션 클래스="섹션 컨테이너 섹션 축소 가능" id="코드">

코드

<울>
  • 48x8 LED 매트릭스용 Arduino 코드
  • 48x8 LED 매트릭스용 Arduino 코드C/C++
    48x8 LED 매트릭스용 Aduino 코드. 연결 및 코드는 코드 자체에 주석으로 설명되어 있습니다.
    /*///////////////////////////// ///////////////////////////////////////////////////// * 6개 이상의 8x8 LED 매트릭스에 스크롤링 문자를 표시하는 Arduino 코드. * * 행렬의 개수는 약간의 코드 변경으로 증가할 수 있습니다. * * 수정을 위해 각 문장에 주석을 달았습니다. * * 코딩:Prasanth KS * * 연락처:[email protected] */*//////////////////////////////// ///////////////////////////////////////////////////문자 메시지 [] ="WELCOME WIZ";//여기서 텍스트 변경.int scrollspeed=5;//스크롤 속도 설정(lower=faster)int x;int y;//Columnsint clockPin1 =2; //74HC595int의 클록 핀 11에 연결된 아두이노 핀 래치핀1 =3; //74HC595int의 래치 핀 12에 연결된 아두이노 핀 dataPin1 =4; //74HC595의 데이터 핀 14에 연결된 아두이노 핀 //Rowsint clockPin2 =5; //74HC595int의 클록 핀 11에 연결된 아두이노 핀 래치핀2 =6; //74HC595int dataPin2 =7의 Latch Pin 12에 연결된 Arduino 핀; //74HC595의 데이터 핀 14에 연결된 아두이노 핀//BITMAP//이 배열의 비트는 매트릭스의 하나의 LED를 나타냅니다.// 8은 행 #, 6은 LED # 매트릭스byte bitmap[8][7]; 정수 numZones =sizeof(비트맵) / 8; // 하나의 영역은 하나의 8 x 8 Matrix(8개 열의 그룹)를 참조합니다. int maxZoneIndex =numZones-1;int numCols =numZones * 8;//FONT DEFENITIONbyte alphabets[][8] ={ {0,0,0, 0,0},//@를 스페이스로 //{8,28,54,99,65},//<<{31, 36, 68, 36, 31},//A {127, 73, 73, 73, 54},//B {62, 65, 65, 65, 34},//C {127, 65, 65, 34, 28},//D {127, 73, 73, 65, 65}, //E {127, 72, 72, 72, 64},//F {62, 65, 65, 69, 38},//G {127, 8, 8, 8, 127},//H {0 , 65, 127, 65, 0},//I {2, 1, 1, 1, 126},//J {127, 8, 20, 34, 65},//K {127, 1, 1, 1, 1},//L {127, 32, 16, 32, 127},//M {127, 32, 16, 8, 127},//N {62, 65, 65, 65, 62}, //O {127, 72, 72, 72, 48},//P {62, 65, 69, 66, 61},//Q {127, 72, 76, 74, 49},//R {50 , 73, 73, 73, 38},//S {64, 64, 127, 64, 64},//T {126, 1, 1, 1, 126},//U {124, 2, 1, 2, 124},//V {126, 1, 6, 1, 126},//W {99, 20, 8, 20, 99},//X {96, 16, 15, 16, 96}, //Y {67, 69, 73, 81, 97},//Z}; 무효 설정() { pinMode(latchPin1, OUTPUT); 핀모드(시계핀1, 출력); 핀모드(데이터핀1, 출력); 핀모드(래치핀2, 출력); 핀모드(시계핀2, 출력); 핀모드(데이터핀2, 출력); //비트맵 지우기 for (int row =0; row <8; row++) { for (int zone =0; zone <=maxZoneIndex; zone++) { bitmap[row][zone] =0; } }}//FUNCTIONS// 매트릭스에 비트맵 배열 표시void RefreshDisplay(){ for (int row =0; row <8; row++) { int rowbit =1 <=0; zone--) { shiftOut에 대한 각 행렬로 이동 (dataPin1, clockPin1, MSBFIRST, 비트맵[행][영역]); } // 두 래치를 동시에 뒤집어 깜박임 제거 digitalWrite(latchPin1, HIGH);//래치 핀 1을 시그널 칩에 하이로 반환 digitalWrite(latchPin2, HIGH);//래치 핀 2를 시그널 칩에 하이로 반환 //기다림 지연마이크로초(300); }}// 행과 열을 비트맵 비트로 변환하고 끕니다./onvoid Plot(int col, int row, bool isOn){ int zone =col / 8; int colBitIndex =x % 8; 바이트 colBit =1 <> 1; // 다음 영역에서 가장 낮은 비트를 이 영역의 최상위 비트로 이동합니다. if (zone   

    회로도

    참조용으로만 사용하십시오. 핀 연결에 대해서는 코드의 주석을 참조하십시오.

    제조공정

    1. Arduino를 사용하여 모니터 Ambilight 만들기
    2. Bluetooth가 탑재된 Arduino로 LED 제어!
    3. LED 매트릭스 + 모션 센서 도어 디스플레이 [Arduino Holiday]
    4. Arduino Quadruped
    5. 볼트와 Arduino를 사용하여 LED 밝기 제어
    6. 단일 LED 매트릭스 Arduino 플립 시계
    7. Arduino RGB 컬러 믹서
    8. Arduino Uno로 LED 매트릭스 제어
    9. Arduino 및 RDA8057M을 사용하는 FM 라디오
    10. DMX RGB LED 실외용