Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

Een 8×8 LED-matrix aansturen met Arduino Nano – Zonder drivers of bibliotheken

Onderdelen en benodigdheden

Onderdeel Aantal
Arduino Nano R3 1
LED Dot Matrix 8×8 (Common Cathode, 1088AS) 1
Doorvoert weerstand 330 Ω 1 (voor alle kolommen? let op: per kolom een weerstand is beter)

Over dit project

Deze tutorial laat zien hoe je een 1088AS Common Cathode 8×8 LED-matrix aanstuurt zonder driver-chips (zoals MAX7219) en zonder bibliotheken. De multiplexing wordt volledig in software gerealiseerd.

Er is een vervolg-tutorial gepland met de MAX7219 voor vergelijking.

Volledige tutorial en ondersteuning: Patreon of PayPal.

Codevoorbeelden

1. Alle 64 LEDs testen (één voor één)

// Mario's Ideas - Test alle 64 LEDs
#define R1 2  #define R2 3  #define R3 4  #define R4 5
#define R5 6  #define R6 7  #define R7 8  #define R8 9
#define C1 10 #define C2 11 #define C3 12 #define C4 13
#define C5 A0 #define C6 A1 #define C7 A2 #define C8 A3

void setup() {
  for (int p = 2; p <= 9; p++) { pinMode(p, OUTPUT); digitalWrite(p, HIGH); } // Rijen HIGH = uit (common cathode)
  for (int p = 10; p <= 13; p++) { pinMode(p, OUTPUT); digitalWrite(p, LOW); }
  for (int p = A0; p <= A3; p++) { pinMode(p, OUTPUT); digitalWrite(p, LOW); }
}

void SelectRow(int row) {
  for (int r = 1; r <= 8; r++) digitalWrite(r+1, (r == row) ? LOW : HIGH);
}
void SelectColumn(int col) {
  int pins[8] = {C1, C2, C3, C4, C5, C6, C7, C8};
  for (int c = 0; c < 8; c++) digitalWrite(pins[c], (c+1 == col) ? HIGH : LOW);
}

void loop() {
  for (int i = 1; i <= 8; i++) {
    for (int j = 1; j <= 8; j++) {
      SelectRow(i);
      SelectColumn(j);
      delay(100);
    }
  }
}

2. Afbeelding tonen (kat) met multiplexing

// Mario's Ideas - Kat afbeelding op 8x8 matrix
// Pin definities zoals boven
int pause = 300;
int Cat[8][8] = {
  {1,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() { /* zelfde als test */ }

void Set_LED_in_Active_Row(int col, int state) {
  int pins[8] = {C1, C2, C3, C4, C5, C6, C7, C8};
  digitalWrite(pins[col-1], state);
}

void loop() {
  for (int j = 0; j < 8; j++) {
    SelectRow(j+1);
    for (int i = 0; i < 8; i++) {
      Set_LED_in_Active_Row(i+1, Cat[j][i]);
    }
    delay(2 + pause);
  }
  if (pause > 100) pause -= 100;
  else if (pause > 0) pause -= 10;
}

3. Scrollende tekst ("Marios_ideas")

// Mario's Ideas - Scrollende tekst
// Pin definities zoals boven
int position = 0;
int Marios_ideas[8][54] = { /* grote array met letterpatronen */ };

void setup() { /* zelfde */ }

void loop() {
  for (int x = 0; x < 5; x++) { // 5 herhalingen per frame voor helderheid
    for (int j = 0; j < 8; j++) {
      SelectRow(j+1);
      for (int i = 0; i < 8; i++) {
        int idx = (i + position) % 54;
        Set_LED_in_Active_Row(i+1, Marios_ideas[j][idx]);
      }
      delay(2);
    }
  }
  position = (position + 1) % 54;
}

Schema

Een 8×8 LED-matrix aansturen met Arduino Nano – Zonder drivers of bibliotheken

Productieproces

  1. Light-Emitting Diodes: Van Ontstaan tot 100-Jarige Levensduur
  2. Arduino Coffin Dance Melodie Project – Bouw & Speel de Virale Tune
  3. Bouw een 24×16 LED Pong-console met Arduino Nano & MAX7219
  4. Interactieve LED-matrix deurdisplay met PIR-bewegingsensor – Arduino vakantiegroet
  5. Geluidsgeactiveerd 8-LED Lichtdisplay met Arduino
  6. Bouw een Slimme Arduino Vierpotige Robot: Stap-voor-Stap Handleiding
  7. DIY Hot Glue LED Matrix Lamp – Bouw je eigen kleurrijke display
  8. Naadloze LED-dimmer met Bolt IoT en Arduino UNO
  9. Een 8×8 LED-matrix aansturen met Arduino Nano – Zonder drivers of bibliotheken
  10. Arduino Flip Clock met 8×8 LED Matrix – DIY Real-Time Clock Project
  11. Maxim's MAX25610A/B LED-drivers: compact, hoge efficiëntie, EMI-geoptimaliseerd voor auto & industriële verlichting