Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

Матрица Arduino, управляемая Bluetooth, с прокручивающимся текстом

Компоненты и расходные материалы

Arduino Nano R3
× 1
Модуль Bluetooth HC-05
× 1
Модуль светодиодной матрицы 8x8 с MAX7219
× 7
Резистор 6,8 кОм
× 1
Резистор 2,2 кОм
× 2

Необходимые инструменты и машины

Паяльник (общий)

Приложения и онлайн-сервисы

IDE Arduino
Bluetooth sp pro

Об этом проекте

После нескольких попыток сделать прокручиваемый текст на матрице 8x8 я нашел наиболее полное руководство на странице Embedded Lab:http://embedded-lab.com/blog/portable-bluetooth-enabled-scrolling-led-matrix-display -часть-1 /.

Устройство содержит Arduino nano, модуль Bluetooth для приема данных со смартфона и светодиодные матрицы 8x8, управляемые MAX7219.

В отличие от них, я использовал готовые матричные модули 8x8 с чипом MAX7219, которые можно очень дешево купить на Ebay или Alexpress. На данный момент у меня было всего 7 модулей, поэтому я сделал небольшую модификацию кода. Приложения для Android больше не существует в магазине Google Play, поэтому вы можете скачать его здесь:

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

. Он может управлять скоростью прокрутки, яркостью светодиодов, паузой, стиранием текста и несколькими предопределенными текстовыми кнопками.

В конце концов, я поместил все устройство в коробку, которую сделал из материала ПВХ, который я наклеил на него черными обоями.

Библиотеки 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 (контакт 11) LOAD pinCS, определенный в программе ниже CLK SCK (контакт 13) GND Gnd Связь UART происходит на скорости 9600 бод. . Автор:Раджендра Бхатт Контактное лицо:[email protected] Ссылка на продукт Easy Matrix:http://embedded-lab.com/blog/?p=9186 * / # include  #include  #include  int pinCS =10; // Присоедините CS к этому выводу, DIN к MOSI и CLK к SCK (см. Http://arduino.cc/en/Reference/SPI) int numberOfHorizontalDisplays =7; int numberOfVerticalDisplays =1; Max72xxPanel matrix =Max72xxPanel (pinCS, numberOfHorizontalDisplays, numberOfVerticalDisplays); int scrollspeed =100; // Скорость прокрутки по умолчанию (миллисекунды) int spacer =1; // Пробел между двумя символами int width =5 + spacer; // Ширина шрифта 5 пикселей, булева 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); matrix.write (); Serial.begin (9600); // инициализация последовательной связи // Использование прерывания 0 на цифровом выводе 2. pinMode (2, INPUT); digitalWrite (2, LOW); attachInterrupt (0, serialInterrupt, ИЗМЕНИТЬ); } void loop () {если (dataAvailable) {display_data (); }} void display_data () {for (int i =0; i  =0 &&letter> =0) {if (letter  0) {NewData =true; }}}} if (ch =='/') {// Командный режим inChar =true; в то время как (inChar) {если (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 на матрице 24x16 с MAX7219
  3. Arduino с Bluetooth для управления светодиодом!
  4. Телепорт текста
  5. Устройства с голосовым управлением Bluetooth с OK Google
  6. Управление светодиодной матрицей с помощью Arduino Uno
  7. Измерение солнечной радиации с помощью Arduino
  8. Управление автомобилем с помощью Arduino Uno и Bluetooth
  9. Отправка и получение текстовых сообщений (SMS) с помощью GSM SIM900 Shield
  10. HID-совместимый ИБП с Arduino