Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Processus de fabrication

Matrice Arduino contrôlée par Bluetooth avec défilement de texte

Composants et fournitures

Arduino Nano R3
× 1
Module Bluetooth HC-05
× 1
Module matriciel led 8x8 avec MAX7219
× 7
Résistance 6,8 kOhm
× 1
Résistance 2,2 kOhm
× 2

Outils et machines nécessaires

Fer à souder (générique)

Applications et services en ligne

Arduino IDE
Bluetooth sp pro

À propos de ce projet

Après plusieurs tentatives pour faire un texte défilant sur la matrice 8x8, j'ai trouvé le manuel le plus complet sur la page Embedded Lab :http://embedded-lab.com/blog/portable-bluetooth-enabled-scrolling-led-matrix-display -partie-1/.

L'appareil contient un module Bluetooth Arduino nano pour recevoir les données du smartphone et des matrices LED 8x8 pilotées par MAX7219.

Contrairement à là-bas, j'ai utilisé des modules matriciels 8x8 prêts à l'emploi avec une puce MAX7219 qui peuvent être achetés très bon marché sur Ebay ou Alexpress. Pour le moment, je n'avais que 7 modules, j'ai donc fait une petite modification du code. Une application android n'existe plus sur Google Play store, vous pouvez donc la télécharger depuis :

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

. Il peut contrôler la vitesse de défilement, la luminosité des leds, la pause, l'effacement du texte et plusieurs boutons de texte prédéfinis.

Au final, j'ai mis l'ensemble de l'appareil dans une boîte, que j'ai fabriquée à partir d'un matériau PVC que j'ai posé dessus avec un papier peint noir.

Bibliothèques Arduino :

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

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

Code

  • code
codeArduino
 /*Voici les commandes reconnues par Arduino. 1. Tout flux de caractères doit être envoyé entre parenthèses. Exemple :Supposons que vous souhaitiez afficher un message « Bonjour ! Comment allez-vous ? » Vous devez l'envoyer comme ceci :(Bonjour ! Comment allez-vous ?) Lorsque l'Arduino reçoit le premier caractère en tant que '(', il comprend que les caractères à venir sont des données d'affichage jusqu'à ce que ')' soit reçu. Le message s'affiche en défilant de droite à gauche. 2. L'intensité de l'affichage peut être incrémentée ou décrémentée en envoyant respectivement /+ ou /-. Chaque fois que l'Arduino reçoit '/', il comprend qu'il s'agit d'une commande. Il prend en charge 16 niveaux de luminosité. 3. De même, la vitesse de défilement peut être augmentée ou diminuée en envoyant respectivement /. 4. /p est utilisé pour mettre en pause le défilement du message. Un nouvel envoi de cette commande reprend le défilement. 5. /e est utilisé pour effacer le tampon et vider l'affichage Connexions :Easy Matrix Arduino VCC +5V DIN MOSI (Broche 11) LOAD pinCS défini dans le programme ci-dessous CLK SCK (Broche 13) GND Gnd La communication UART se fait à 9600 bauds . Rédigé par :Rajendra Bhatt Contact :[email protected] Lien produit Easy Matrix :http://embedded-lab.com/blog/?p=9186 */#include #include #include int pinCS =10 ; // Attachez CS à cette broche, DIN à MOSI et CLK à SCK (cf http://arduino.cc/en/Reference/SPI )int numberOfHorizontalDisplays =7;int numberOfVerticalDisplays =1;Max72xxPanel matrix =Max72xxPanel(pinCS, numberOfHorizontalDisplays, numberOfVerticalDisplays);int scrollspeed =100; // Vitesse de défilement par défaut (millisecondes)int spacer =1; // Espace entre deux caractèresint width =5 + spacer; // La largeur de la police est de 5 pixelsboolean inChar =false, NewData =false, pause =false;boolean dataAvailable =false;char inputString[512];int count =0, BTvalue =5;void setup() { matrix.setIntensity(1 ); // Utilisez une valeur entre 0 et 15 pour la luminosité // Ajustez selon vos propres besoins matrix.setPosition(0, 0, 0); // Le premier affichage est à <0, 7> matrix.setPosition(1, 1, 0); // Le deuxième affichage est à <1, 0> matrix.setPosition(2, 2, 0); // Le troisième affichage est à <2, 0> matrix.setPosition(3, 3, 0); // Et le dernier affichage est à <3, 0> matrix.setPosition(4, 4, 0); // Le premier affichage est à <0, 0> matrix.setPosition(5, 5, 0); // Le deuxième affichage est à <1, 0> matrix.setPosition(6, 6, 0); // Le troisième affichage est à <2, 0> // ... // matrix.setRotation(0, 2); // Le premier affichage est la position à l'envers // matrix.setRotation(3, 2); // La même prise pour le dernier affichage matrix.fillScreen(0); matrice.écrire(); Serial.begin(9600); // Initialisation de la communication série // Utilisation de l'interruption 0 sur la broche numérique 2. pinMode(2, INPUT); digitalWrite(2, LOW); attachInterrupt(0, serialInterrupt, CHANGE); }boucle vide(){ if(dataAvailable){ display_data(); } }void display_data(){ for ( int i =0; i =0 &&letter>=0 ) { if ( letter  0) { NewData =true; } } } } if(ch =='/'){ // Mode de commande inChar =true; while(inChar){ if (Serial.available()) { ch =Serial.read(); // '/+' est pour l'incrément de luminosité if(ch =='+'){ if(BTvalue <15) { BTvalue ++; matrice.setIntensity(BTvalue); } Pause; } // '/-' est pour la diminution de la luminosité if(ch =='-'){ if(BTvalue> 0){ BTvalue --; matrice.setIntensity(BTvalue); } Pause; } // '/>' est pour ralentir le défilement if(ch =='>'){ if(scrollspeed <200) { scrollspeed =scrollspeed + 20; } Pause; } // '/<' est pour accélérer le défilement if(ch =='<'){ if(scrollspeed> 10){ scrollspeed=scrollspeed-10; } Pause; } // '/e' efface l'affichage if(ch =='e'){ dataAvailable =false; Pause; } // '/p' met en pause l'affichage if(ch =='p'){ if(pause ==false){ pause =true; } else { pause =faux; } Pause; } else { pause; // Commande non reconnue } } } } // if(ch =='!') } // while(serial.available) inService =false;}

Schémas


Processus de fabrication

  1. Contrôler l'accepteur de pièces avec Arduino
  2. Jeu Arduino Pong sur matrice 24x16 avec MAX7219
  3. Arduino avec Bluetooth pour contrôler une LED !
  4. Téléporteur SMS
  5. Appareils Bluetooth à commande vocale avec OK Google
  6. Contrôler une matrice LED avec Arduino Uno
  7. Mesure du rayonnement solaire avec Arduino
  8. Contrôle de voiture avec Arduino Uno et Bluetooth
  9. Envoyer et recevoir des messages texte (SMS) avec le bouclier GSM SIM900