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

스크롤링 텍스트가 있는 Arduino Bluetooth 제어 매트릭스

구성품 및 소모품

Arduino Nano R3
× 1
HC-05 블루투스 모듈
× 1
MAX7219가 포함된 8x8 led 매트릭스 모듈
× 7
6.8kOhm 저항기
× 1
2.2kOhm 저항기
× 2

필요한 도구 및 기계

납땜 인두(일반)

앱 및 온라인 서비스

Arduino IDE
블루투스 SP 프로

이 프로젝트 정보

8x8 매트릭스에서 스크롤링 텍스트를 만들기 위해 여러 번 시도한 후 Embedded Lab 페이지에서 가장 완전한 매뉴얼을 찾았습니다. http://embedded-lab.com/blog/portable-bluetooth-enabled-scrolling-led-matrix-display -part-1/.

이 장치에는 스마트폰에서 데이터를 수신하기 위한 Arduino nano, Bluetooth 모듈 및 MAX7219로 구동되는 8x8 LED 매트릭스가 포함되어 있습니다.

그곳과 달리 나는 Ebay나 Alexpress에서 매우 저렴하게 구입할 수 있는 MAX7219 칩이 있는 기성품 8x8 매트릭스 모듈을 사용했습니다. 현재 저는 7개의 모듈만 가지고 있었기 때문에 코드를 약간 수정했습니다. Android 애플리케이션은 Google Play 스토어에 더 이상 존재하지 않으므로 다음에서 다운로드할 수 있습니다.

https://bluetooth-spp-pro.en.uptodown.com/android

. 스크롤 속도, LED 밝기, 일시 중지, 텍스트 지우기 및 미리 정의된 여러 텍스트 버튼을 제어할 수 있습니다.

결국, 나는 전체 장치를 상자에 넣었습니다. 저는 PVC 재질로 만든 상자에 검은색 벽지를 붙였습니다.

아두이노 라이브러리:

https://github.com/markruys/arduino-Max72xxPanel

https://github.com/adafruit/Adafruit-GFX-Library

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

코드

<울>
  • 코드
  • 코드Arduino
     /*다음은 Arduino가 인식하는 명령입니다. 1. 모든 문자 스트림은 괄호 안에 넣어 보내야 합니다. 예:"Hello! How are you doing?"이라는 메시지를 표시하려는 경우를 가정해 보겠습니다. (안녕하세요! 잘 지내고 계신가요?) 아두이노는 첫 번째 문자를 '('로 받으면 앞으로 나올 문자는 ')'가 수신될 때까지 디스플레이 데이터임을 이해합니다. 메시지는 오른쪽에서 왼쪽으로 스크롤하여 표시됩니다. 2. 디스플레이 강도는 각각 /+ 또는 /-를 전송하여 증가 또는 감소할 수 있습니다. Arduino는 '/'를 수신할 때마다 이것이 명령임을 이해합니다. 16단계 밝기를 지원합니다. 3. 마찬가지로 /<또는 />를 각각 전송하여 스크롤 속도를 높이거나 낮출 수 있습니다. 4. /p는 스크롤링 메시지를 일시 중지하는 데 사용됩니다. 이 명령을 다시 보내면 스크롤이 재개됩니다. 5. /e는 버퍼를 지우고 디스플레이를 비우는 데 사용됩니다. 연결:Easy Matrix Arduino VCC +5V DIN MOSI(핀 11) LOAD 핀CS는 아래 프로그램에 정의되어 있습니다. CLK SCK(핀 13) GND Gnd UART 통신은 9600 보드에서 발생합니다. . 작성자:Rajendra Bhatt 연락처:[email protected] Easy Matrix 제품 링크:http://embedded-lab.com/blog/?p=9186 */#include #include #include int pinCS =10; // CS를 이 핀에 연결하고 DIN을 MOSI에 연결하고 CLK를 SCK에 연결합니다(cf http://arduino.cc/en/Reference/SPI )int numberOfHorizontalDisplays =7;int numberOfVerticalDisplays =1;Max72xxPanel matrix =Max72xxPanel(pinCS, numberOfHorizontalDisplays, numberOfVerticalDisplays);int 스크롤 속도 =100; // 기본 스크롤 속도(밀리초)int spacer =1; // 두 문자 사이의 공백int width =5 + spacer; // 글꼴 너비는 5픽셀입니다.boolean inChar =false, NewData =false, pause =false;boolean dataAvailable =false;char inputString[512];int count =0, BTvalue =5;void setup() { matrix.setIntensity(1 ); // 밝기에 대해 0에서 15 사이의 값을 사용합니다. // 필요에 따라 조정합니다. matrix.setPosition(0, 0, 0); // 첫 번째 디스플레이는 <0, 7>에 있습니다. matrix.setPosition(1, 1, 0); // 두 번째 디스플레이는 <1, 0>에 있습니다. matrix.setPosition(2, 2, 0); // 세 번째 디스플레이는 <2, 0>에 있습니다. matrix.setPosition(3, 3, 0); // 그리고 마지막 디스플레이는 <3, 0>에 있습니다. matrix.setPosition(4, 4, 0); // 첫 번째 디스플레이는 <0, 0>에 있습니다. matrix.setPosition(5, 5, 0); // 두 번째 디스플레이는 <1, 0>에 있습니다. matrix.setPosition(6, 6, 0); // 세 번째 디스플레이는 <2, 0>에 있습니다. // ... // matrix.setRotation(0, 2); // 첫 번째 디스플레이는 거꾸로 된 위치입니다. // matrix.setRotation(3, 2); // 마지막 디스플레이에 대해 동일한 유지 matrix.fillScreen(0); 행렬.쓰기(); Serial.begin(9600); // 직렬 통신 초기화 // 디지털 핀 2에서 인터럽트 0 사용. pinMode(2, INPUT); 디지털 쓰기(2, 낮음); attachInterrupt(0, 직렬 인터럽트, 변경); } 무효 루프(){ if(dataAvailable){ display_data(); } } 무효 display_data(){ for ( int i =0; i =0 &&letter>=0 ) { if ( letter  0) { NewData =true; } } } } if(ch =='/'){ // 명령 모드 inChar =true; while(inChar){ if (Serial.available()) { ch =Serial.read(); // '/+'는 밝기 증가를 위한 것입니다. if(ch =='+'){ if(BTvalue <15) { BTvalue ++; matrix.setIntensity(BT값); } 부서지다; } // '/-'는 밝기 감소 if(ch =='-'){ if(BTvalue> 0){ BTvalue --; matrix.setIntensity(BT값); } 부서지다; } // '/>'는 스크롤 속도를 늦추는 것입니다. if(ch =='>'){ if(scrollspeed <200) { scrollspeed =scrollspeed + 20; } 부서지다; } // '/<'는 스크롤을 더 빠르게 만들기 위한 것입니다. if(ch =='<'){ if(scrollspeed> 10){ scrollspeed=scrollspeed-10; } 부서지다; } // '/e'는 디스플레이를 지우는 것입니다. if(ch =='e'){ dataAvailable =false; 부서지다; } // '/p'는 디스플레이를 일시 중지합니다. if(ch =='p'){ if(pause ==false){ pause =true; } else { 일시 중지 =거짓; } 부서지다; } else { 휴식; // 인식할 수 없는 명령 } } } } // if(ch =='!') } // while(serial.available) inService =false;}

    회로도


    제조공정

    1. Arduino로 코인 억셉터 제어
    2. MAX7219가 있는 24x16 매트릭스의 Arduino Pong 게임
    3. Bluetooth가 탑재된 Arduino로 LED 제어!
    4. 텍스트 텔레포터
    5. OK Google이 포함된 Bluetooth 음성 제어 기기
    6. Arduino Uno로 LED 매트릭스 제어
    7. Arduino로 태양 복사열 측정
    8. Arduino Uno 및 Bluetooth로 차량 제어
    9. GSM SIM900 Shield로 문자 메시지(SMS) 보내기 및 받기
    10. Arduino가 있는 HID 호환 UPS