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

Bouw en programmeer 8x8 & 16x16 WS2812 RGB LED-matrix animaties met Arduino en Excel

Onderdelen en benodigdheden

Arduino UNO × 1
WS2812 8x8 RGB LED-matrix × 1
Male/Female Jumper Draden × 3
9V-batterij (Generiek) × 1
9V naar Barrel Jack Connector × 1
Male Header 5-positie – 1 rij – Lang (0,1") × 1

Benodigde tools en machines

  • Solderbout (Generiek)
  • Solderdraad, Loodvrij

Over dit project

toen ik mijn eerste WS2812 8x8 RGB LED-matrix kocht, verwachtte ik deze als een traditioneel XY-coördinatensysteem aan te spreken. In plaats daarvan zijn de 64 LEDs in een ketting geschakeld in acht rijen van acht. Ik ontdekte dat Kevin Darrah's Excel-hulpprogramma, oorspronkelijk ontworpen voor een 16×16 matrix, aangepast kon worden om een 8×8-array te besturen. Door zowel het spreadsheet als de bijbehorende Arduino-sketch aan te passen, creëerde ik een veelzijdig hulpmiddel waarmee je LED-animaties kunt programmeren zonder externe bibliotheken.

De bijgewerkte Excel-werkmap, LED_Utility.xlsm, ondersteunt nu:

  • Individuele RGB-toewijzing voor elke LED.
  • Dynamische eigenschapswijzigingen via VBA-scripting.
  • XY-herlocatie om beweging te simuleren.
  • Ingebouwde paletten voor snelle kleurselectie.
  • Dubbele ondersteuning voor 8×8 en 16×16 matrices.

Hieronder vind je stap-voor-stap instructies voor het bouwen van de hardware, het configureren van de Excel-hulpprogramma, en het uploaden van de Arduino-sketch. Elk project bouwt op het vorige, waarbij concepten als lussen, conditionele statements en modulaire functies worden geïntroduceerd.

Hardware samenstellen

Bevestig de 8×8-matrix aan een Arduino UNO met een 5-pins header:

  1. Verbind DIN met pin 8 op de Arduino.
  2. Verbind +5V met de 5V-pin.
  3. Ground met de GND-pin.
Bouw en programmeer 8x8 & 16x16 WS2812 RGB LED-matrix animaties met Arduino en Excel

Voor deze opstelling verwijst coördinaat (0,0) naar de linkerbovenhoek van de matrix.

Excel-hulpprogramma overzicht

Open LED_Utility.xlsm – het bevat drie bladen:

  • Eight – 8×8 matrix-interface.
  • Sixteen – 16×16 matrix-interface.
  • ColMap – een handige referentie van veelvoorkomende RGB-codes.

De werkmap is standaard ingesteld op alleen-lezen om je werk te beschermen. Gebruik Bestand → Opslaan als na het genereren van code om je ontwerp te bewaren.

Bouw en programmeer 8x8 & 16x16 WS2812 RGB LED-matrix animaties met Arduino en Excel

Belangrijke functies op het Eight blad:

  • Show – toont RGB-waarden voor de geselecteerde cellen (0-255).
  • Var Map – accepteert numerieke of variabele invoer maar toont geen output.
  • Wrap Map – voegt een modulus-functie toe om coördinatoverloop af te handelen en ondersteunt variabelen voor later gebruik.
  • Clear – leegt beide invoergrids.

Elke knop genereert een blok C++-code dat je in de Arduino-sketch kopieert. De code is geformatteerd voor de aangepaste mapLEDXY() functie, die XY-coördinaten omzet in de juiste LED-index.

De sketch

De kern-sketch (LED_Arduino.ino) bevat de volgende elementen:

// Pin definitie
#define WS2812_pin 8
// Totaal aantal LEDs
#define numberOfLEDs 64
// RGB-buffer (3 bytes per LED)
byte RGB[192];
// Forward declaraties
void RGB_update(int LED, byte RED, byte GREEN, byte BLUE);
void mapLEDXY(int x, int y, byte RED, byte GREEN, byte BLUE);
void clearLEDs();

De mapLEDXY() routine wijst een coördinatenpaar toe aan de lineaire array, rekening houdend met het zigzag-bedradingspatroon dat veelvoorkomend is bij WS2812-matrices.

Na het kopiëren van je gegenereerde code in de loop() functie, upload de sketch. De matrix reageert direct op de instructies.

Project 1 – Statisch rood vierkant

Creëer een 3×3 rood vierkant op coördinaten (2,2) tot (4,4). In Excel, stel de overeenkomstige cellen in op 255 voor rood en 0 voor groen/blauw. Kopieer de gegenereerde code naar regel 40 van de sketch:

mapLEDXY(2,2,255,0,0);mapLEDXY(2,3,255,0,0);mapLEDXY(2,4,255,0,0);
mapLEDXY(3,2,255,0,0);mapLEDXY(3,3,255,0,0);mapLEDXY(3,4,255,0,0);
mapLEDXY(4,2,255,0,0);mapLEDXY(4,3,255,0,0);mapLEDXY(4,4,255,0,0);

Upload en zie het vierkant oplichten. Experimenteer met het wissen van het grid, kleuren wijzigen, of een rand toevoegen.

Project 2 – Dubbel-kleur vierkanten

Dupliceer de sketch als Colour_Sq.ino en wijzig het Excel-blad om een tweede, groter vierkant te creëren. Gebruik de Show knop om code te genereren en plak het in de sketch. Voeg een simpele delay en clearLEDs() toe om tussen de twee vormen te schakelen.

Project 3 – Groeiend vierkant

In de Grow.ino sketch, ontwerp een kleiner binnen-vierkant en omring het met een rand naar keuze. Verwijder de waarden van het binnen-vierkant, genereer de buiten-code, en plak beide blokken in de sketch. Het resultaat is een geanimeerd vierkant dat uitbreidt en inkrimpt.

Project 4 – Spiraal-animatie

Voor complexe patronen, inkapsel elk frame in een aparte functie en roep ze aan vanuit loop(). De voorbeeld Spiral.ino gebruikt vijf helper-functies om een 5-laags spiraal te bouwen. Deze modulare benadering houdt de hoofdlus beknopt en maakt toekomstige bewerkingen eenvoudig.

Project 5 – Variabele helderheidslus

Introduceer een for lus om helderheid te animeren:

for (int r=0; r<256; r++) {
  mapLEDXY(3,3,r,0,0);mapLEDXY(3,4,r,0,0);
  mapLEDXY(4,3,r,0,0);mapLEDXY(4,4,r,0,0);
  RGB_update(-1,0,0,0); delay(50);
}
for (int r=255; r>=0; r--) {
  mapLEDXY(3,3,r,0,0);mapLEDXY(3,4,r,0,0);
  mapLEDXY(4,3,r,0,0);mapLEDXY(4,4,r,0,0);
  RGB_update(-1,0,0,0); delay(50);
}

Het vierkant fadet automatisch op en neer.

Project 6 – Fadende rand

Combineer for lussen met een gedeelde g variabele om een omringende rand te faden:

for (int g=0; g<256; g++) {
  b=g;
  mapLEDXY(...); // rand cellen
  RGB_update(-1,0,0,0); delay(50);
}
for (int g=255; g>=0; g--) {
  b=g;
  mapLEDXY(...); // rand cellen
  RGB_update(-1,0,0,0); delay(50);
}

Hier volgt het blauwe kanaal het groene om een vloeiende fade te creëren.

Project 7 – Kleurovergang

Gebruik een if statement om midden-rand cellen van groen naar geel te veranderen zodra een drempel bereikt is:

for (int r=0; r<256; r++) {
  g=r;
  if (g>64) {
    g=65; l=r;
  }
  mapLEDXY(...); // cellen
  RGB_update(-1,0,0,0); delay(50);
}

Experimenteer met verschillende drempels voor gevarieerde effecten.

Project 8 – Bewegende pijl

Genereer een bewegende pijl door de X-coördinaat te parameteriseren:

for (int x=0; x<8; x++) {
  mapLEDXY((x+0)%8,3,0,255,255);
  mapLEDXY((x+1)%8,1,255,128,128);
  mapLEDXY((x+1)%8,3,0,255,255);
  mapLEDXY((x+1)%8,5,255,128,128);
  mapLEDXY((x+2)%8,2,255,128,128);
  mapLEDXY((x+2)%8,3,0,255,255);
  mapLEDXY((x+2)%8,4,255,128,128);
  mapLEDXY((x+3)%8,3,255,128,128);
  RGB_update(-1,0,0,0); delay(100);
}

Gebruik de Wrap Map functie in het spreadsheet om coördinatoverloop af te handelen.

16×16 Matrix gebruik

Alle concepten hierboven zijn direct toepasbaar op een 16×16 matrix. Vervang LED_Arduino.ino met LED_Arduino16.ino en schakel naar het Sixteen blad in de werkmap. De enige aanpassing die nodig is, is de numberOfLEDs definitie en de RGBlocation berekening in mapLEDXY().

Uitbreidingen & Tips

numberOfLEDs constant bij en pas de indexberekening aan om te matchen met het bedradingspatroon van de matrix. Houd de werkmap in alleen-lezen-modus om per ongeluk verlies van aangepaste code te voorkomen. Overweeg een kleiner bord, zoals een Arduino Nano, als stroomverbruik een zorg is.

Productieproces

  1. Arduino Nano Flight Simulator 2020 Bedieningspaneel – LCD & CDI Display
  2. Arduino-gebaseerd schakelaar- & LED-paneel voor Microsoft Flight Simulator 2020
  3. Bouw en programmeer 8x8 & 16x16 WS2812 RGB LED-matrix animaties met Arduino en Excel
  4. Bouw Een 'Go Away' Robot – Eenvoudige Arduino Starter Kit Voor Kinderen
  5. Bespaar Arduino-pins: Sluit een 4x3-toetsenblok aan met slechts 3 verbindingen
  6. Top 3 Digitale Productietrends Die 2020 Vormgeven
  7. Top 3 Strategieën voor MKB om Succesvol Internationaal te Expanderen
  8. Drie essentiële lessen die detailhandelaren moeten leren tijdens langdurige storingen
  9. Top 3 essentiële tips industriële apparatuuronderhoud & veiligheid
  10. Essentiële gids: 3 bewezen strategieën aankoop zware industriële apparatuur
  11. De wereldwijde IoT beveiligen: Drie essentiële stappen