Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Processo de manufatura

Matriz Arduino controlada por Bluetooth com texto de rolagem

Componentes e suprimentos

Arduino Nano R3
× 1
Módulo Bluetooth HC-05
× 1
Módulo de matriz led 8x8 com MAX7219
× 7
Resistor de 6,8 kOhm
× 1
Resistor 2.2 kOhm
× 2

Ferramentas e máquinas necessárias

Ferro de soldar (genérico)

Aplicativos e serviços online

Arduino IDE
Bluetooth sp pro

Sobre este projeto




Após várias tentativas de fazer um texto de rolagem na matriz 8x8, encontrei o manual mais completo na página do Embedded Lab:http://embedded-lab.com/blog/portable-bluetooth-enabled-scrolling-led-matrix-display -parte 1/.

O dispositivo contém um Arduino nano, módulo Bluetooth para recebimento de dados do smartphone e matrizes de LED 8x8 acionadas pelo MAX7219.

Ao contrário de lá, usei módulos de matriz 8x8 prontos com chip MAX7219 que podem ser adquiridos muito barato no Ebay ou Alexpress. No momento, eu tinha apenas 7 módulos, então fiz uma pequena modificação no código. Não existe mais um aplicativo Android na Google Play Store, então você pode baixá-lo em:

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

. Ele pode controlar a velocidade de rolagem, o brilho dos leds, pausar, apagar texto e vários botões de texto predefinidos.

No final, coloquei todo o aparelho em uma caixa, que fiz de um material de PVC e coloquei sobre ela com um papel de parede preto.

Bibliotecas Arduino:

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

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

Código

  • código
código Arduino
 / * Aqui estão os comandos que o Arduino reconhece. 1. Qualquer fluxo de caracteres deve ser enviado entre parênteses. Exemplo:suponha que se deseja exibir a mensagem "Olá! Como vai você?" Você deve enviar assim:(Olá! Como você está?) Quando o Arduino recebe o primeiro caractere como '(', ele entende que os próximos caracteres são dados de exibição até que ')' seja recebido. A mensagem é exibida rolando da direita para a esquerda. 2. A intensidade da exibição pode ser aumentada ou diminuída enviando / + ou / - respectivamente. Cada vez que o Arduino recebe '/', ele entende que é um comando. Suporta 16 níveis de brilho. 3. Da mesma forma, a velocidade de rolagem pode ser aumentada ou diminuída enviando /  respectivamente. 4. / p é usado para pausar a mensagem de rolagem. O envio deste comando novamente retoma a rolagem. 5. / e é usado para apagar o buffer e apagar o display Conexões:Easy Matrix Arduino VCC + 5V DIN MOSI (Pino 11) Pinos LOAD definidos no programa abaixo CLK SCK (Pino 13) GND Gnd A comunicação UART acontece a 9600 baud . Escrito por:Rajendra Bhatt Contato:[email protected] Link do produto Easy Matrix:http://embedded-lab.com/blog/?p=9186 * / # include  #include  #include  int pinCS =10; // Anexe CS a este pino, DIN a MOSI e CLK a SCK (cf http://arduino.cc/en/Reference/SPI) int numberOfHorizontalDisplays =7; int numberOfVerticalDisplays =1; Max72xxPanel matrix =Max72xxPanel (pinCS, numberOfHorizontalDisplays, numberOfVerticalDisplays); int scrollspeed =100; // Velocidade de rolagem padrão (milissegundos) int spacer =1; // Espaço entre dois caracteresint width =5 + spacer; // A largura da fonte é 5 pixelsboolean inChar =false, NewData =false, pause =false; boolean dataAvailable =false; char inputString [512]; int count =0, BTvalue =5; void setup () {matrix.setIntensity (1 ); // Use um valor entre 0 e 15 para o brilho // Ajuste conforme suas necessidades matrix.setPosition (0, 0, 0); // A primeira exibição está em <0, 7> matrix.setPosition (1, 1, 0); // O segundo display está em <1, 0> matrix.setPosition (2, 2, 0); // O terceiro display está em <2, 0> matrix.setPosition (3, 3, 0); // E a última exibição está em <3, 0> matrix.setPosition (4, 4, 0); // A primeira exibição está em <0, 0> matrix.setPosition (5, 5, 0); // O segundo display está em <1, 0> matrix.setPosition (6, 6, 0); // O terceiro display está em <2, 0> // ... // matrix.setRotation (0, 2); // A primeira exibição é a posição de cabeça para baixo // matrix.setRotation (3, 2); // O mesmo é mantido para a última exibição matrix.fillScreen (0); matrix.write (); Serial.begin (9600); // inicialização da comunicação serial // Usando a interrupção 0 no pino digital 2. pinMode (2, INPUT); digitalWrite (2, BAIXO); attachInterrupt (0, serialInterrupt, CHANGE); } void loop () {if (dataAvailable) {display_data (); }} void display_data () {for (int i =0; i  =0 &&letra> =0) {if (letra  0) {NewData =true; }}}} if (ch =='/') {// Modo de comando inChar =true; while (inChar) {if (Serial.available ()) {ch =Serial.read (); // '/ +' é para incremento de brilho if (ch =='+') {if (BTvalue <15) {BTvalue ++; matrix.setIntensity (BTvalue); } pausa; } // '/ -' é para diminuição do brilho if (ch =='-') {if (BTvalue> 0) {BTvalue -; matrix.setIntensity (BTvalue); } pausa; } // '/>' é para desacelerar a rolagem if (ch =='>') {if (scrollspeed <200) {scrollspeed =scrollspeed + 20; } pausa; } // '/ <' é tornar a rolagem mais rápida if (ch =='<') {if (scrollspeed> 10) {scrollspeed =scrollspeed-10; } pausa; } // '/ e' deve apagar a exibição if (ch =='e') {dataAvailable =false; pausa; } // '/ p' é para pausar a exibição if (ch =='p') {if (pause ==false) {pause =true; } mais {pausa =falso; } pausa; } else {break; // Comando não reconhecido}}}} // if (ch =='!')} // while (serial.available) inService =false;} 

Esquemas


Processo de manufatura

  1. Aceitar moeda de controle com Arduino
  2. Jogo Arduino Pong em Matriz 24x16 com MAX7219
  3. Arduino com Bluetooth para controlar um LED!
  4. Teletransportador de texto
  5. Dispositivos Bluetooth controlados por voz com OK Google
  6. Controlando uma matriz de LED com Arduino Uno
  7. Medindo a radiação solar com Arduino
  8. Controle do carro com Arduino Uno e Bluetooth
  9. Enviar e receber mensagens de texto (SMS) com GSM SIM900 Shield
  10. UPS compatível com HID com Arduino