- Materials necessaris:
- Esquema de connexions:
- Creació de l'aplicació Android mitjançant el processament:
- Comprensió del codi de processament:
- Programació del vostre Arduino:
- Disseny de circuits i PCB amb EasyEDA:
- Càlcul i ordenació de mostres en línia:
- Funcionament de la pantalla del tauler de signes Bluetooth:
Ja siguin les llargues autopistes estirades o la porta d’entrada dels vostres metges, tenim taulers col·locats a tot arreu per proporcionar-nos informació. Però aquests taulers són sovint avorrits i no es poden configurar segons el nostre interès de tant en tant. Així doncs, en aquest projecte construirem una placa de signes controlada per Bluetooth mitjançant una pantalla Matrix 8 * 8. Una característica única d’aquest projecte és la seva aplicació per a Android, que permet a l’usuari controlar tots els 64 LEDs individualment des del telèfon mòbil. Això permet a l'usuari crear dissenys personalitzats amb facilitat i mostrar-lo a la pantalla LED, sembla interessant, oi? Comencem doncs…
Materials necessaris:
- Arduino Pro mini
- MAX7219
- Mòdul Bluetooth HC-05
- Pantalla de matriu LED de 8 * 8
- Resistència de 20 k
- DC Barrel Jack
Esquema de connexions:
El diagrama del circuit, aquesta placa LED controlada per Bluetooth construïda mitjançant l’aplicació EasyEDA. Utilitzarem els mateixos esquemes per desenvolupar un PCB a partir d’ell i fabricar-lo amb EasyEDA.

El circuit és força senzill. Tot el projecte està alimentat per un adaptador de 12V, que es lliura directament al pin Raw de la placa Arduino. Aquesta tensió bruta es regula a + 5 V que es subministra al mòdul Bluetooth i al MAX7219 IC. Els pins Tx i Rx del mòdul Bluetooth estan connectats a D11 i D10 de l’Arduino per habilitar la connexió en sèrie.
Els pins digitals D5 a D7 estan connectats al MAX7219 IC per enviar i rebre dades mitjançant la comunicació SPI. El passador ISET de MAX7219 s’eleva a través d’una resistència de 20 k.
Per a aquest projecte he fabricat un PCB, podeu obtenir el fitxer de disseny del PCB i fer-ne servir el mateix o crear el circuit en una taula de treball. No obstant això, a causa de la seva complexitat, es recomana comprar un mòdul de visualització 8x8 o utilitzar el PCB
La matriu 8x8 és un mòdul de visualització molt útil i es pot utilitzar en molts projectes interessants:
- Control de matriu LED de 8x8 amb Raspberry Pi
- Visualització de text de desplaçament en matriu LED de 8x8 mitjançant Arduino
- Matriu LED de 8x8 amb Arduino
- Interfície de matriu LED 8x8 amb microcontrolador AVR

Creació de l'aplicació Android mitjançant el processament:
Abans de començar a programar el nostre Arduino, hem de saber quin tipus de dades rebrem del telèfon mòbil per respondre-hi. Vegem, doncs, com es crea l’aplicació Android i com es pot utilitzar al telèfon intel·ligent per controlar la matriu LED de 8x8.
L'aplicació Android per a aquest projecte es va crear mitjançant el programari Processing. És una aplicació de desenvolupament de codi obert que es pot descarregar i utilitzar fàcilment per desenvolupar projectes interessants mitjançant Arduino o altres microcontroladors, ja que pot desenvolupar aplicacions per a Android i aplicacions de sistema. Ja hem fet pocs projectes amb Processament i podeu consultar-los fent clic als enllaços següents.
- Ràdio FM de bricolatge mitjançant processament
- Control de realitat virtual / gestual mitjançant Arduino
- Sala de xat privada amb Arduino.
- Sistema de radar Arduino que utilitza APP de processament i sensor d'ultrasons
- Detecció i seguiment de cares en temps real mitjançant Arduino
- Velocímetre de bricolatge mitjançant Arduino i Processament
- Joc de ping-pong amb l’acceleròmetre Arduino
- Robot bíped amb Arduino
- Càmera per a imatges tèrmiques Arduino de bricolatge
Tornant al tema, és impossible que expliqui el codi complet de l'aplicació per a Android, de manera que haureu d'aprendre a processar vosaltres mateixos i després mirar el codi per entendre com funciona. Per tant, les persones que estiguin disposades a ometre el procés d'aprenentatge Processament poden descarregar l'aplicació per a Android des de l'enllaç següent
- Baixeu l'aplicació Android
A continuació es mostra la interfície de la nostra aplicació per a Android:

El fitxer APK es pot instal·lar directament a qualsevol aplicació per a Android i llançar-se com qualsevol altra aplicació. Però assegureu-vos que el vostre dispositiu Bluetooth HC-05 s'anomeni "HC-05", perquè només així funcionarà.
Comprensió del codi de processament:
Les persones que estiguin interessades en saber què passa darrere de la pantalla poden llegir més i altres poden passar al següent encapçalament. Bàsicament, l'aplicació Android es connecta a un dispositiu Bluetooth anomenat "HC-05" durant l'inici i mostra un conjunt de 64 LED en forma de cercles. Després, quan l'usuari prem el cercle, el cercle es torna vermell i el número del cercle s'envia a Arduino mitjançant Bluetooth, en rebre el número del cercle, l'Arduino encén el LED. Vegem les línies importants del programa de processament per entendre millor. El codi complet de l'aplicació d'Android es pot descarregar des de l'enllaç següent.
- Codi de processament de l'aplicació Android
Utilitzem classes i objectes per mostrar 64 LED perquè puguem dirigir-nos fàcilment a cadascun. Com podeu veure al codi següent, fem servir un bucle for per iterar de l'1 al 64 mitjançant una matriu. Cada LED tindrà el seu propi valor de posició X, posició Y i color i els podem canviar fàcilment.
// dipslay tots els leds de (int i = 1; i <= 64; i ++) led_array.display (); // Tots els leds van mostrar Led de classe { float X_Pos; flotació Y_Pos; color color; // Led CONSTRUTOR (float tempx, float tempy, color tempc) { X_Pos = tempx; Y_Pos = tempy; color = tempc; } void display () { omplir (color); el·lipse (X_Pos, Y_Pos, led_dia, led_dia); } }
Els LED es carreguen a la pantalla en el mateix ordre que el de la pantalla. Cada LED està separat per una distància igual al diàmetre del LED, d'aquesta manera podem distingir fàcilment quin LED és seleccionat actualment per l'usuari. Com es mostra al programa següent, creem una matriu en què cada element conté la informació de la posició X, Y i el color del LED.
void load_leds () { led_array = Led nou; int a = 1; for (int j = 0; j <= 7; j ++) { float y = height / 6 + j * (led_dia * 1.5); for (int i = 0; i <= 7; i ++) { float x = (width / 6) + i * (led_dia * 1.5); // omplir (255); // el·lipse (x, y, led_dia, led_dia); led_array = Led nou (x, y, color (255.255.255)); a ++; } } }
El pas principal del programa és comprovar si l’usuari ha premut algun LED i, en cas afirmatiu, hem de canviar el color del LED i enviar el número de LED mitjançant Bluetooth. Com que ara podem adreçar-nos a la ubicació i el color de cada LED fàcilment, podem fer-ho només comparant els valors X, Y del lloc on l’usuari ha pressionat amb el valor X, Y dels LED. Si els valors es fusionen entre ells, canviarem l'estat del LED i també enviarem el número a través de Bluetooth com es mostra a continuació.
// comproveu si el ratolí sobre led // Si sí envieu el número de led per a (int i = 1; i <= 64; i ++) { if ((mouseX <(led_array.X_Pos + led_dia / 2)) && (mouseX> { led_array.X_Pos - led_dia / 2)) && (mouseY <(led_array.Y_Pos + led_dia / 2)) && (mouseY> (led_array.Y_Pos - led_dia / 2))) {led_array = new Led (led_array.X_Pos, led_array. Y_Pos, led_color); byte data = {byte (i)}; emissió bt. (dades); } }
A part d'això, el programa també pot restablir el LED complet apagant-los tots i també podeu fer que un LED es converteixi en vermell (ON) o blanc (OFF), de manera que també tenim un botó d'activació. Es mostra el botó d’alterna i espera l’entrada. Si es prem, es durà a terme l'acció respectiva. El codi per fer el mateix es mostra a continuació com a funció que s’anomena dins del bucle de dibuix.
void load_buttons () { rectMode (CENTRE); textAlign (CENTRE, CENTRE); noStroke (); omplir (# 1BF2D4); rect (ample / 2-ample / 4, alçada / 1,3, amplada / 4, alçada / 12); omplir (0); text ("Restableix", ample / 2-ample / 4, alçada / 1,3); // botó 1 if (vermell == true) {fill (# 080F89); rect (ample / 2 + amplada / 4, alçada / 1,3, amplada / 4, alçada / 12); farcit (255,0,0); text ("VERMELL", ample / 2 + ample / 4, alçada / 1.3);} // botó 2 si (vermell == fals) {fill (# 080F89); rect (ample / 2 + amplada / 4, alçada / 1,3, amplada / 4, alçada / 12); farcit (255); text ("BLANC", ample / 2 + ample / 4, alçada / 1.3);} // botó 2 } void read_buttons () { if (mousePressed && click_flag == true) { color_val = get (mouseX, mouseY); click_flag = false; if (color_val == - 14945580) { byte data = {0}; bt.emissió (dades); println ("RESET"); load_leds (); // carrega tots els leds en posició i color } if (color_val == - 16248951) { byte data = {100}; bt.emissió (dades); if (vermell == cert) vermell = fals; else if (vermell == fals) vermell = cert; println ("TOGGLE"); } color_val = 0; } }
Programació del vostre Arduino:
El programa complet d'Arduino per a aquest projecte de placa sense fils controlat per Bluetooth es dóna a la part inferior d'aquesta pantalla; el podeu utilitzar directament i penjar-lo al vostre tauler. A continuació s’expliquen les línies importants del programa.
El mòdul Bluetooth està connectat als pins 10 i 11, de manera que hem d’utilitzar el programari en sèrie per permetre la comunicació en sèrie en aquests pins i després podem escoltar les dades d’aquests pins. Obtenim les dades rebudes del mòdul Bluetooth i les guardem en una variable anomenada entrant . Si el valor d'entrada és "0", apagarem tots els LED mitjançant el codi següent
if (BT.available ()) { entrant = BT.read (); Serial.println (entrant); if (entrant == 0) m.clear (); // Esborra la pantalla
Utilitzant els valors d'entrada , hem de determinar quin LED ha premut l'usuari al telèfon mòbil i el temps per activar-lo o apagar-lo. Per tant, comprovem si el valor és igual a 100. Si el valor és 10, vol dir que l'usuari ha demanat canviar el color del LED. Per tant, commutem la variable vermella per saber si el LED s’ha d’encendre o apagar.
else if (entrant == 100) // Comproveu si hem d'encendre o apagar el LED { if (vermell == cert) vermell = fals; else if (vermell == fals) vermell = cert; Serial.print ("VERMELL:"); Serial.println (vermell); }
Finalment, si el valor és superior a 65, significa que l'usuari ha premut un LED. Basant-nos en el número de l'1 al 64, hem de determinar quin LED ha premut l'usuari. Per canviar aquest LED, necessitarem el valor de fila i columna d’aquest LED, que es calcula i s’emmagatzema a la variable X i Y respectivament i es mostra al codi següent. Finalment, en funció del valor del vermell variable, activem o apagem el LED segons la sol·licitud de l'usuari
else if (entrant <= 64) {// Calcular on en ON ro OFF el LED de palanca = true; Y = entrant / 8; X = entrant - (Y * 8); if (entrant% 8 == 0) {X = 8; Y - = 1;} Serial.println (X - 1); Serial.println (Y); if (vermell == true) m.setDot ((X - 1), (Y), true); // LED encès si (vermell == fals) m.setDot ((X - 1), (Y), fals); // LED apagat }
Disseny de circuits i PCB amb EasyEDA:
Per dissenyar aquesta pantalla de matriu controlada per Bluetooth, hem triat l'eina EDA en línia anomenada EasyEDA. Abans he utilitzat EasyEDA moltes vegades i m’ha semblat molt còmode d’utilitzar, ja que té una bona col·lecció d’empremtes i és de codi obert. Després de dissenyar el PCB, podem demanar les mostres de PCB pels seus serveis de fabricació de PCB de baix cost. També ofereixen un servei d’aprovisionament de components on tenen un gran estoc de components electrònics i els usuaris poden demanar els components necessaris juntament amb la comanda de PCB.
Tot i dissenyar els vostres circuits i PCBs, també podeu fer públics els vostres dissenys de circuits i PCBs perquè altres usuaris puguin copiar-los o editar-los i aprofitar-se del vostre treball, també hem fet públics tots els dissenys de circuits i PCB d’aquest circuit. l'enllaç següent:
easyeda.com/circuitdigest/8x8-led-matrix-display-control-with-bluetooth
Podeu veure qualsevol capa (superior, inferior, topsilk, seda inferior, etc.) del PCB seleccionant la capa de la finestra "Capes".
També podeu veure el PCB, com quedarà després de la fabricació, mitjançant el botó Vista de foto d’EasyEDA:

Càlcul i ordenació de mostres en línia:
Després de completar el disseny d’aquest PCB de matriu controlada per Bluetooth, podeu demanar el PCB a través de JLCPCB.com. Per demanar el PCB a JLCPCB, necessiteu Gerber File. Per descarregar fitxers Gerber del vostre PCB, feu clic al botó Sortida de fabricació de la pàgina de l'editor EasyEDA i, a continuació, descarregueu-lo des de la pàgina de comandes EasyEDA.
Ara aneu a JLCPCB.com i feu clic a Cita ara o al botó i, a continuació, podeu seleccionar el nombre de PCB que voleu demanar, quantes capes de coure necessiteu, el gruix del PCB, el pes del coure i fins i tot el color del PCB, com la instantània. mostrat a continuació:


Després d'haver seleccionat totes les opcions, feu clic a "Desa a la cistella" i se us dirigirà a la pàgina on podeu penjar el fitxer Gerber que hem descarregat d'EasyEDA. Pengeu el fitxer Gerber i feu clic a "Desa a la cistella". I, finalment, feu clic a Comanda de forma segura per completar la vostra comanda i, aleshores, obtindreu els vostres PCB pocs dies després. Estan fabricant el PCB a un preu molt baix, que és de 2 dòlars. El seu temps de construcció també és molt inferior, és a dir, 48 hores amb un lliurament DHL de 3-5 dies, bàsicament obtindreu els vostres PCB en una setmana després de la comanda.

Després d’uns dies de demanar PCB, vaig obtenir les mostres de PCB en un bon embalatge, tal com es mostra a les imatges següents.


I després d’aconseguir aquestes peces, he soldat tots els components necessaris al PCB.


Al meu PCB, vaig cometre un error contundent en seleccionar la petjada incorrecta per al mòdul de visualització 8 * 8, per tant, vaig haver d’utilitzar una placa Perf per muntar la pantalla com es mostra a la imatge. Però ara la petjada és actualitzada al PCB i podeu demanar el PCB corregit i muntar el mòdul de visualització amb facilitat.
Funcionament de la pantalla del tauler de signes Bluetooth:
Un cop estigueu preparat amb el maquinari, ja sigui mitjançant l'obtenció de la PCB o la connexió a la placa, utilitzeu el programa Arduino que apareix al final de la pàgina i pengeu-lo a la vostra placa Arduino. El fitxer APK de l'aplicació per a Android també es proporciona a sobre, utilitzeu-lo i instal·leu l'aplicació al vostre dispositiu Android preferit.
Enceneu el maquinari i cerqueu el nom del dispositiu HC-05 al telèfon per combinar-lo. La clau de pas serà 1234 per defecte. Després, obriu l'aplicació que acabem d'instal·lar. L'aplicació hauria de mostrar-se " connectat a l'HC-05 " a la part superior de la pantalla i, a continuació, podreu tocar el LED de la pantalla i notar que també s'encén el mateix LED al tauler.

També podeu apagar tots els LED prement el botó Restableix i decidir encendre o apagar un LED concret prement el botó Alternar. Per defecte, s'encén el LED que premeu. El funcionament complet del projecte es troba al vídeo següent. Si teniu algun problema per aconseguir que funcioni, utilitzeu el quadre de comentaris següent o escriviu als nostres fòrums per obtenir més ajuda tècnica. Espero que hàgiu entès el tutorial i us hagi agradat construir-lo.
