Arduino Nano - LED Matrix

Deze tutorial legt uit hoe u een Arduino Nano gebruikt met een LED matrixdisplay. We gaan in detail leren:

Als dit eenmaal is voltooid, kunt u de code snel aanpassen voor andere LED matrices zoals een 16x8 LED matrix, 64x8 LED matrix ...

Benodigde Hardware

1×Official Arduino Nano
1×Alternatief: DIYables ATMEGA328P Nano Development Board
1×USB A naar Mini-B USB-kabel
1×FC-16 LED Matrix 32x8
1×FC-16 LED Matrix 8x8
1×Generieke LED Matrix 8x8
1×Jumperdraden
1×DC-voedingsconnector
1×5V voedingadapter voor Arduino Nano
1×(Aanbevolen) Schroefklem Uitbreidingsboard voor Arduino Nano
1×(Aanbevolen) Breakout Uitbreidingsboard voor Arduino Nano
1×(Aanbevolen) Stromsplitter voor Arduino Nano

Of u kunt de volgende kits kopen:

1×DIYables Sensorkit (30 sensoren/displays)
1×DIYables Sensorkit (18 sensoren/displays)
Openbaarmaking: Sommige van de links in deze sectie zijn Amazon-affiliate links. We kunnen een commissie ontvangen voor aankopen die via deze links worden gedaan, zonder extra kosten voor u. We waarderen uw steun.

Over LED Matrix

LED matrixdisplays worden vaak aangeduid als LED displays of dot matrix displays.

LED Matrix display

LED matrices zijn er in veel varianten. De LED matrix gebaseerd op de MAX7219-driver is een populaire keuze voor gebruik met de Arduino Nano. Deze heeft de volgende kenmerken:

  • Elk blok bestaat uit een 8x8 LED matrix (64 LED’s) en een MAX7219 driver.
  • Twee veelvoorkomende blokvormen zijn de generieke module en de FC-16 module.
  • Een LED matrix kan bestaan uit één of meerdere blokken die daisy-chain (ketting) zijn verbonden.
  • U kunt vooraf in elkaar gezette LED matrices aanschaffen met meerdere blokken (bijv. 4-in-1, 8-in-1).
  • U kunt ook losse blokken kopen en deze zelf verbinden om zo een LED matrix van de gewenste grootte te maken.
  • De grootte van de gebruikte LED matrix moet worden aangegeven in de Arduino Nano code.

De Pinout van de LED Matrix

LED Matrix pinout

Een LED matrix bestaat uit één of meerdere blokken. Elk blok heeft twee groepen pinnen:

  • Groep input-pinnen:
    • VCC: verbonden met 5V voedingsspanning.
    • GND: verbonden met aarde (ground).
    • DIN: Datapin, verbonden met de SPI MOSI-pin van de Arduino Nano.
    • CS: Chip Select, verbonden met een digitale pin van de Arduino Nano.
    • CLK: Klokpin, verbonden met de SPI klokpin van de Arduino Nano.
  • Groep output-pinnen:
    • VCC: verbonden met VCC van het volgende blok.
    • GND: verbonden met GND van het volgende blok.
    • DOUT: Data-uit, verbonden met de DIN-pin van het volgende blok.
    • CS: verbonden met CS van het volgende blok.
    • CLK: verbonden met CLK van het volgende blok.

Aansluitschema

Als de LED matrix uit één blok bestaat:

  • Verbind de input-pingroepen met de Arduino Nano.
  • Laat de output-pingroepen ongebruikt (vrij).
Arduino Nano 8x8 LED matrix FC-16 wiring diagram

This image is created using Fritzing. Click to enlarge image

Arduino Nano 8x8 LED matrix generic wiring diagram

This image is created using Fritzing. Click to enlarge image

Als de LED matrix uit meerdere blokken bestaat die al vooraf zijn opgebouwd:

  • Verbind de input-pingroepen met de Arduino Nano.
  • Laat de output-pingroepen ongebruikt (vrij).
Arduino Nano LED matrix display wiring diagram

This image is created using Fritzing. Click to enlarge image

Als u zelf een LED matrix samenstelt uit meerdere blokken:

  • Verbind de input-pingroepen van het eerste blok met de Arduino Nano.
  • Verbind de output-pingroepen van elk blok met de input-pingroepen van het volgende blok.
  • Laat de output-pingroep van het laatste blok ongebruikt (vrij).
Arduino Nano 32x8 LED matrix wiring FC-16 diagram

This image is created using Fritzing. Click to enlarge image

Vanwege het hoge stroomverbruik van het display (tot 1A bij maximale helderheid):

  • Voed het display niet via de 5V-pin van de Arduino Nano.
  • Gebruik een externe 5V voeding. Zowel de Arduino Nano als de LED matrix kunnen worden gevoed met één 5V voedingadapter.

Omdat de Arduino Nano is verbonden met de LED matrix via de SPI-pinnen:

  • Pin 13 (SCK) en 11 (MOSI) op de Arduino Nano moeten worden gebruikt. Als u een ander Arduino Nano model gebruikt, raadpleeg dan de officiële documentatie voor de overeenkomstige SPI-pinnen.
  • Pin 3 (CS) kan worden aangepast naar een willekeurige andere digitale pin op de Arduino Nano.

Hoe Programmeer Ik Voor de LED Matrix

Het is niet eenvoudig om de LED matrix te besturen. Gelukkig zijn er libraries die dit veel gemakkelijker maken. Hieronder een stapsgewijze handleiding om Arduino Nano code te schrijven voor het aansturen van de LED matrix:

  • Voeg libraries toe:
#include <MD_Parola.h> #include <MD_MAX72xx.h>
  • Geef aan welk type hardware u gebruikt: GENERIC_HW of FC16_HW.
#define HARDWARE_TYPE MD_MAX72XX::FC16_HW
  • Geef het aantal LED blokken aan. Bijvoorbeeld, een 4-in-1 LED matrix heeft vier blokken.
#define MAX_DEVICES 4
  • Geef de pin aan die is verbonden met de CS-pin van de LED matrix. Bijvoorbeeld, pin D3.
#define CS_PIN 3
  • Maak een MD_Parola object voor het LED matrix display.
MD_Parola ledMatrix = MD_Parola(HARDWARE_TYPE, CS_PIN, MAX_DEVICES);
  • Code in de functie setup():
void setup() { ledMatrix.begin(); // initialiseer het object ledMatrix.setIntensity(0); // stel de helderheid van het LED matrix display in (van 0 tot 15) ledMatrix.displayClear(); // maak het LED matrix display leeg }
  • Toon tekst, numerieke waarden en geanimeerde effecten: zie de volgende sectie

Arduino Nano - LED Matrix Code

Deze code geldt voor een 32x8 FC-16 LED matrix display bestaande uit vier blokken. U kunt deze echter eenvoudig aanpassen voor 8x8, 16x8, 64x8 en andere formaten.

/* * Deze Arduino Nano code is ontwikkeld door newbiely.nl * Deze Arduino Nano code wordt zonder enige beperking aan het publiek beschikbaar gesteld. * Voor volledige instructies en schema's, bezoek: * https://newbiely.nl/tutorials/arduino-nano/arduino-nano-led-matrix */ #include <MD_Parola.h> #include <MD_MAX72xx.h> #define HARDWARE_TYPE MD_MAX72XX::FC16_HW #define MAX_DEVICES 4 // 4 blocks #define CS_PIN 3 // create an instance of the MD_Parola class MD_Parola ledMatrix = MD_Parola(HARDWARE_TYPE, CS_PIN, MAX_DEVICES); void setup() { ledMatrix.begin(); // initialize the object ledMatrix.setIntensity(15); // set the brightness of the LED matrix display (from 0 to 15) ledMatrix.displayClear(); // clear LED matrix display } void loop() { ledMatrix.setTextAlignment(PA_LEFT); ledMatrix.print("Left"); // display text delay(2000); ledMatrix.setTextAlignment(PA_CENTER); ledMatrix.print("Center"); // display text delay(2000); ledMatrix.setTextAlignment(PA_RIGHT); ledMatrix.print("Right"); // display text delay(2000); ledMatrix.setTextAlignment(PA_CENTER); ledMatrix.setInvert(true); ledMatrix.print("Invert"); // display text inverted delay(2000); ledMatrix.setInvert(false); ledMatrix.print(1234); // display number delay(2000); }

Snelle Stappen

  • Verbind de Arduino Nano met de LED matrix volgens het aansluitdiagram.
  • Verbind de Arduino Nano met een pc via een USB-kabel.
  • Klik op het Libraries icoon in de linkerzijbalk van de Arduino IDE.
  • Zoek naar “MD_MAX72XX” en vind vervolgens de MD_MAX72XX library.
  • Druk op de Installeren knop.
  • Zoek naar “MD_Parola”, en vind dan de MD_Parola library.
  • Druk op de Installeren knop.
Arduino Nano MD_Parola library
  • U krijgt mogelijk een melding om de “MD_MAX72XX” library te installeren.
  • Klik op de Alles installeren knop om de afhankelijkheid te installeren.
Arduino Nano MD_MAX72XX library
  • Kopieer de code en open deze met de Arduino IDE.
  • Klik op de Upload knop in de IDE om de code naar de Arduino Nano te verzenden.
  • Bekijk het bericht op het LED matrix display verschijnen.

Arduino Nano LED Matrix Code – Scrollende Tekst

Als een bericht te lang is om tegelijk op een LED matrix te tonen, kan het scrollende texteffect worden gebruikt. Deze techniek laat de tekst over het display schuiven. Hierdoor kan een bericht worden weergegeven dat langer is dan wat er in één keer op het display past.

Deze Arduino Nano code toont hoe u een bericht over het LED matrix display laat bewegen.

/* * Deze Arduino Nano code is ontwikkeld door newbiely.nl * Deze Arduino Nano code wordt zonder enige beperking aan het publiek beschikbaar gesteld. * Voor volledige instructies en schema's, bezoek: * https://newbiely.nl/tutorials/arduino-nano/arduino-nano-led-matrix */ #include <MD_Parola.h> #include <MD_MAX72xx.h> #define HARDWARE_TYPE MD_MAX72XX::FC16_HW #define MAX_DEVICES 4 // 4 blocks #define CS_PIN 3 // create an instance of the MD_Parola class MD_Parola ledMatrix = MD_Parola(HARDWARE_TYPE, CS_PIN, MAX_DEVICES); void setup() { ledMatrix.begin(); // initialize the object ledMatrix.setIntensity(15); // set the brightness of the LED matrix display (from 0 to 15) ledMatrix.displayClear(); // clear led matrix display ledMatrix.displayScroll("Hello, DIYables", PA_CENTER, PA_SCROLL_LEFT, 100); } void loop() { if (ledMatrix.displayAnimate()) { ledMatrix.displayReset(); } }

Voor meer tekst effecten verwijzen we naar de MD_Parola Library Reference.

Video Tutorial

We overwegen het maken van videotutorials. Als u videotutorials belangrijk vindt, abonneer u dan op ons YouTube-kanaal om ons te motiveren de video's te maken.

Bekijk onze video-tutorial voor een visuele begeleiding bij dit project! De video biedt extra inzichten en helpt u stap voor stap.

Gerelateerde Tutorials

※ ONZE BERICHTEN

  • U bent welkom om de link naar deze tutorial te delen. Gebruik onze inhoud echter niet op andere websites. We hebben veel moeite en tijd gestoken in het maken van de inhoud, respecteer alstublieft ons werk!