亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 制造工艺

带有滚动文本的 Arduino 蓝牙控制矩阵

组件和用品

Arduino Nano R3
× 1
HC-05 蓝牙模块
× 1
采用 MAX7219 的 8x8 LED 矩阵模块
× 7
6.8 kOhm 电阻
× 1
2.2 kOhm 电阻
× 2

必要的工具和机器

烙铁(通用)

应用和在线服务

Arduino IDE
蓝牙 sp pro

关于这个项目

在多次尝试在 8x8 矩阵上制作滚动文本后,我在嵌入式实验室页面上找到了最完整的手册:http://embedded-lab.com/blog/portable-bluetooth-enabled-scrolling-led-matrix-display -part-1/.

该器件包含一个 Arduino nano、用于从智能手机接收数据的蓝牙模块和由 MAX7219 驱动的 8x8 LED 矩阵。

与那里不同的是,我使用现成的带有 MAX7219 芯片的 8x8 矩阵模块,可以在 Ebay 或 Alexpress 上以非常便宜的价格购买。目前我只有7个模块,所以我对代码做了一个小小的修改。 Google Play 商店中已不存在 android 应用程序,因此您可以从以下位置下载:

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

.它可以控制滚动速度、LED 亮度、暂停、擦除文本和几个预定义的文本按钮。

最后,我把整个设备放在一个盒子里,盒子是用 PVC 材料制成的,上面贴着黑色壁纸。

Arduino 库:

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

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

代码

  • 代码
代码Arduino
 /*这里是Arduino识别的命令。 1. 任何字符流都必须用括号括起来发送。示例:假设您想显示一条消息“你好!你好吗?”你应该像这样发送它:(你好!你好吗?)当 Arduino 接收到第一个字符为 '(' 时,它知道接下来的字符是显示数据,直到收到 ')'。消息显示为从右向左滚动。 2. 分别发送/+或/-可增加或减少显示强度。每次 Arduino 收到“/”时,它都会理解这是一个命令。它支持 16 级亮度。 3. 同样,可以通过分别发送 /<或 /> 来提高或降低滚动速度。 4. /p 用于暂停滚动消息。再次发送此命令将恢复滚动。 5. /e 用于擦除缓冲区和空白显示 连接: Easy Matrix Arduino VCC +5V DIN MOSI (Pin 11) LOAD pinCS 定义在下面的程序中 CLK SCK (Pin 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 numberOfHorizo​​ntalDisplays =7;int numberOfVerticalDisplays =1;Max72xxPanel matrix =Max72xxPanel(pinCS, numberOfHorizo​​ntalDisplays, numberOfVerticalDisplays);int scrollspeed =100; // 默认滚动速度(毫秒)int separator =1; // 两个字符之间的空格int width =5 + separator; // 字体宽度为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, serialInterrupt, CHANGE); }void loop(){ if(dataAvailable){ display_data(); } }void 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(BTvalue); } 休息; } // '/-' 用于亮度递减 if(ch =='-'){ if(BTvalue> 0){ BTvalue --; matrix.setIntensity(BTvalue); } 休息; } // '/>'是减慢滚动速度 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 { 暂停 =假; } 休息; }其他{休息; // 无法识别的命令 } } } } // if(ch =='!') } // while(serial.available) inService =false;}

示意图


制造工艺

  1. 使用 Arduino 控制硬币接收器
  2. Arduino Pong Game on 24x16 Matrix with MAX7219
  3. Arduino 带蓝牙控制 LED!
  4. 文本传送器
  5. 带有 OK Google 的蓝牙语音控制设备
  6. 使用 Arduino Uno 控制 LED 矩阵
  7. 使用 Arduino 测量太阳辐射
  8. 使用 Arduino Uno 和蓝牙进行汽车控制
  9. 使用 GSM SIM900 Shield 发送和接收短信 (SMS)
  10. HID-Compliant UPS with Arduino
  11. 智能手机控制鼠标
  12. 使用 RFID 的 DIY 创意