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

Contrôle de la matrice LED 8x8 sans pilotes ni bibliothèques

Composants et fournitures

Arduino Nano R3
× 1
Affichage matriciel à LED, rouge
× 1
Résistance à trou traversant, 330 ohm
× 1

À propos de ce projet

Cette vidéo est un didacticiel sur la façon de contrôler la matrice LED 1088AS à cathode commune 8x8 sans utiliser de puces de pilote telles que MAX7219 et les bibliothèques correspondantes.

Je vais bientôt créer le deuxième tutoriel de contrôle de la même matrice mais cette fois en utilisant le MAX7219 et comparer les résultats.

Le tutoriel complet se trouve ici :

Si vous aimez ce contenu et que vous souhaitez m'aider à créer des vidéos similaires, rendez-vous sur ma page Web Patreon

https://www.patreon.com/MariosIdeas

Ou

https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=7PD67JWZ9S3EJ&source=url

Code

  • Test des 64 LED de la matrice 8x8 LED
  • Affichage d'une image de chat sur une matrice LED 8x8 (multiplexage)
  • Défilement de texte sur matrice LED 8x8 (multiplexage)
Test des 64 LED de la matrice LED 8x8Arduino
// Mario's Ideas// Test des 64 LED dans une matrice LED 8x8 en les allumant une par une// Raws #define R1 2#define R2 3#define R3 4#define R4 5#define R5 6#define R6 7#define R7 8#define R8 9//Columns#define C1 10#define C2 11#define C3 12#define C4 13#define C5 A0#define C6 A1#define C7 A2#define C8 A3void setup() { pinMode( R1, SORTIE); pinMode(R2, SORTIE); pinMode(R3, SORTIE); pinMode(R4, SORTIE); pinMode(R5, SORTIE); pinMode (R6, SORTIE); pinMode (R7, SORTIE); pinMode(R8, SORTIE); pinMode(C1, SORTIE); pinMode(C2, SORTIE); pinMode(C3, SORTIE); pinMode(C4, SORTIE); pinMode(C5, SORTIE); pinMode(C6, SORTIE); pinMode(C7, SORTIE); pinMode(C8, OUTPUT);// Éteindre toutes les LED au début du croquis digitalWrite(R1,HIGH); écriture numérique (R2, HAUT); digitalWrite (R3, HAUT); écriture numérique (R4, ÉLEVÉ); écriture numérique (R5, ÉLEVÉ); écriture numérique (R6, ÉLEVÉ); écriture numérique (R7, ÉLEVÉ); écriture numérique (R8, ÉLEVÉ); digitalWrite(C1,LOW); digitalWrite(C2,LOW); digitalWrite(C3,LOW); écriture numérique (C4, FAIBLE); écriture numérique (C5, FAIBLE); écriture numérique (C6, FAIBLE); écriture numérique (C7, FAIBLE); digitalWrite(C8,LOW);}void SelectRow(int row){ if (row==1) digitalWrite(R1,LOW); else digitalWrite(R1,HIGH); if (ligne==2) digitalWrite(R2,LOW); sinon digitalWrite(R2,HIGH); if (ligne==3) digitalWrite(R3,LOW); sinon digitalWrite(R3,HIGH); if (ligne==4) digitalWrite(R4,LOW); sinon digitalWrite(R4,HIGH); if (ligne==5) digitalWrite(R5,LOW); sinon digitalWrite(R5,HIGH); if (ligne==6) digitalWrite(R6,LOW); sinon digitalWrite(R6,HIGH); if (ligne==7) digitalWrite(R7,LOW); sinon digitalWrite(R7,HIGH); if (ligne==8) digitalWrite(R8,LOW); else digitalWrite(R8,HIGH);}void SelectColumn(int column){ if (column==1) digitalWrite(C1,HIGH); else digitalWrite(C1,LOW); if (colonne==2) digitalWrite(C2,HIGH); sinon digitalWrite(C2,LOW); if (colonne==3) digitalWrite(C3,HIGH); sinon digitalWrite(C3,LOW); if (colonne==4) digitalWrite(C4,HIGH); sinon digitalWrite(C4,LOW); if (colonne==5) digitalWrite(C5,HIGH); sinon digitalWrite(C5,LOW); if (colonne==6) digitalWrite(C6,HIGH); sinon digitalWrite(C6,LOW); if (colonne==7) digitalWrite(C7,HIGH); sinon digitalWrite(C7,LOW); if (colonne==8) digitalWrite(C8,HIGH); else digitalWrite(C8,LOW);}void loop() { for (int i=1;i<9;i++) { for (int j=1;j<9;j++){ SelectRow(i); SelectColumn(j); retard (100); } }}
Affichage de l'image du chat sur une matrice LED 8x8 (multiplexage)Arduino
// Les idées de Mario// Affichage d'une image de chat sur une matrice LED 8x8 (multiplexage)// Raws #define R1 2#define R2 3#define R3 4#define R4 5#define R5 6#define R6 7#define R7 8 #define R8 9//Columns#define C1 10#define C2 11#define C3 12#define C4 13#define C5 A0#define C6 A1#define C7 A2#define C8 A3int pause=300; int Cat [8] [8] ={ {1,0,0,0,0,1,0,0,0}, {1,1,1,1,1,0,0,0}, {1,0 ,1,0,1,0,0,0}, {0,1,1,1,0,0,0,1}, {0,0,1,0,0,0,0,1}, {0,1,1,1,1,0,0,1}, {0,1,1,1,1,1,0,1}, {1,0,1,1,1,1,1 ,0}, };void setup() { pinMode(R1, OUTPUT); pinMode(R2, SORTIE); pinMode(R3, SORTIE); pinMode(R4, SORTIE); pinMode(R5, SORTIE); pinMode (R6, SORTIE); pinMode (R7, SORTIE); pinMode(R8, SORTIE); pinMode(C1, SORTIE); pinMode(C2, SORTIE); pinMode(C3, SORTIE); pinMode(C4, SORTIE); pinMode(C5, SORTIE); pinMode(C6, SORTIE); pinMode(C7, SORTIE); pinMode(C8, SORTIE); digitalWrite (R1, HAUT); écriture numérique (R2, HAUT); digitalWrite (R3, HAUT); écriture numérique (R4, ÉLEVÉ); écriture numérique (R5, ÉLEVÉ); écriture numérique (R6, ÉLEVÉ); écriture numérique (R7, ÉLEVÉ); écriture numérique (R8, ÉLEVÉ); digitalWrite(C1,LOW); digitalWrite(C2,LOW); digitalWrite(C3,LOW); écriture numérique (C4, FAIBLE); écriture numérique (C5, FAIBLE); écriture numérique (C6, FAIBLE); écriture numérique (C7, FAIBLE); digitalWrite(C8,LOW);}void SelectRow(int row){ if (row==1) digitalWrite(R1,LOW); else digitalWrite(R1,HIGH); if (ligne==2) digitalWrite(R2,LOW); sinon digitalWrite(R2,HIGH); if (ligne==3) digitalWrite(R3,LOW); sinon digitalWrite(R3,HIGH); if (ligne==4) digitalWrite(R4,LOW); sinon digitalWrite(R4,HIGH); if (ligne==5) digitalWrite(R5,LOW); sinon digitalWrite(R5,HIGH); if (ligne==6) digitalWrite(R6,LOW); sinon digitalWrite(R6,HIGH); if (ligne==7) digitalWrite(R7,LOW); sinon digitalWrite(R7,HIGH); if (ligne==8) digitalWrite(R8,LOW); else digitalWrite(R8,HIGH);}void Set_LED_in_Active_Row(int column, int state){ if (column==1) digitalWrite(C1,state); if (colonne==2) digitalWrite(C2,état); if (colonne==3) digitalWrite(C3,state); if (colonne==4) digitalWrite(C4,state); if (colonne==5) digitalWrite(C5,state); if (colonne==6) digitalWrite(C6,state); if (colonne==7) digitalWrite(C7,state); if (colonne==8) digitalWrite(C8,state); }boucle vide() { for (int j=0;j<8;j++){ SelectRow(j+1); pour (int i=0;i<8;i++){ Set_LED_in_Active_Row(i+1 ,Cat[j][i]); } délai(2+pause); }if(pause!=0 et pause>100)pause=pause-100;if(pause!=0 et pause<=100)pause=pause-10;}
Défilement de texte sur matrice LED 8x8 (Multiplexage)Arduino
// Mario's Ideas// Texte défilant sur une matrice LED 8x8 (Multiplexage)// Raws #define R1 2#define R2 3#define R3 4#define R4 5#define R5 6#define R6 7#define R7 8# define R8 9//Columns#define C1 10#define C2 11#define C3 12#define C4 13#define C5 A0#define C6 A1#define C7 A2#define C8 A3int position=0; int Marios_ideas [8] [54] ={ {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0 ,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0}, {0,1,0,0,0,1,0,0,1,1,0,0,1,1,1 ,0,0,0,0,0,0,1,1,0,1,0,1,1,0,0,0,0,0,0,1,1,1,0,0,1,1 ,1,0,0,1,1,0,0,0,1,1,0,0,0,0}, {0,1,1,0,1,1,0,1,0,0 ,1,0,1,0,0,1,0,1,0,1,0,0,1,0,1,0,0,1,0,0,0,1,0,1,0 ,0,1,0,1,0,0,0,1,0,0,1,0,1,0,0,1,0,0,0}, {0,1,0,1,0 ,1,0,1,0,0,1,0,1,0,0,1,0,1,0,1,0,0,1,0,1,0,0,0,0,0 ,0,1,0,1,0,0,1,0,1,0,0,0,1,0,0,1,0,1,0,0,0,0,0,0}, {0,1,0,0,0,1,0,1,1,1,1,0,1,1,1,0,0,1,0,1,0,0,1,0,0 ,1,1,0,0,0,0,1,0,1,0,0,1,0,1,1,1,0,1,1,1,1,0,0,1,1 ,0,0,0,0}, {0,1,0,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,1 ,0,0,1,0,0,0,0,1,0,0,0,1,0,1,0,0,1,0,1,0,0,0,1,0,0 ,1,0,0,0,0,1,0,0,0}, {0,1,0,0,0,1,0,1,0,0,1,0,1,0,0 ,1,0,1,0,0,1,1,0,0,1,0,0, 1,0,0,0,1,0,1,1,1,0,0,1,0 ,0,0,1,0,0,1,0,1,0,0,1,0,0,0}, {0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0 ,0,0,0,1,1,1,0,0,0,0,0,0,0,1,1,0,0,0,0} };void setup() { pinMode(R1, SORTIR); pinMode(R2, SORTIE); pinMode(R3, SORTIE); pinMode(R4, SORTIE); pinMode(R5, SORTIE); pinMode (R6, SORTIE); pinMode (R7, SORTIE); pinMode(R8, SORTIE); pinMode(C1, SORTIE); pinMode(C2, SORTIE); pinMode(C3, SORTIE); pinMode(C4, SORTIE); pinMode(C5, SORTIE); pinMode(C6, SORTIE); pinMode(C7, SORTIE); pinMode(C8, SORTIE); digitalWrite (R1, HAUT); écriture numérique (R2, HAUT); digitalWrite (R3, HAUT); écriture numérique (R4, ÉLEVÉ); écriture numérique (R5, ÉLEVÉ); écriture numérique (R6, ÉLEVÉ); écriture numérique (R7, ÉLEVÉ); écriture numérique (R8, ÉLEVÉ); digitalWrite(C1,LOW); digitalWrite(C2,LOW); digitalWrite(C3,LOW); écriture numérique (C4, FAIBLE); écriture numérique (C5, FAIBLE); écriture numérique (C6, FAIBLE); écriture numérique (C7, FAIBLE); digitalWrite(C8,LOW);}void SelectRow(int row){ if (row==1) digitalWrite(R1,LOW); else digitalWrite(R1,HIGH); if (ligne==2) digitalWrite(R2,LOW); sinon digitalWrite(R2,HIGH); if (ligne==3) digitalWrite(R3,LOW); sinon digitalWrite(R3,HIGH); if (ligne==4) digitalWrite(R4,LOW); sinon digitalWrite(R4,HIGH); if (ligne==5) digitalWrite(R5,LOW); sinon digitalWrite(R5,HIGH); if (ligne==6) digitalWrite(R6,LOW); sinon digitalWrite(R6,HIGH); if (ligne==7) digitalWrite(R7,LOW); sinon digitalWrite(R7,HIGH); if (ligne==8) digitalWrite(R8,LOW); else digitalWrite(R8,HIGH);}void Set_LED_in_Active_Row(int column, int state){ if (column==1) digitalWrite(C1,state); if (colonne==2) digitalWrite(C2,état); if (colonne==3) digitalWrite(C3,state); if (colonne==4) digitalWrite(C4,state); if (colonne==5) digitalWrite(C5,state); if (colonne==6) digitalWrite(C6,state); if (colonne==7) digitalWrite(C7,state); if (colonne==8) digitalWrite(C8,state); }boucle vide() { pour (int x=0; x<5;x++){ pour (int j=0;j<8;j++){ SelectRow(j+1); pour (int i=0;i<8;i++){ Set_LED_in_Active_Row(i+1,Marios_ideas[j][(i+position)-abs((i+position)/54)*54]); } retard(2); } } position=position+1;}

Pièces et boîtiers personnalisés

Schémas


Processus de fabrication

  1. diode électroluminescente (DEL)
  2. Les pilotes de LED compacts de Maxim offrent une efficacité élevée et une faible EMI
  3. Mélodie de la danse du cercueil
  4. Jeu Arduino Pong sur matrice 24x16 avec MAX7219
  5. Affichage de porte à matrice LED + détecteur de mouvement [Arduino Holiday]
  6. 8x éclairage LED par le son
  7. Arduino quadrupède
  8. Lampe matricielle LED à colle chaude
  9. Contrôle de la luminosité des LED à l'aide de Bolt et Arduino