Introduction: Arduino Led Matrix 2D Lava Lamp - Technische Instructies

Ik ben Vivian van Domburg uit klas G&I1D en heb dit gemaakt als project voor onze module ITTT. Mijn idee was uiteindelijk een 2D Lava Lamp geworden waarbij je met een (optionele)klapsensor het display aan/uit kunt zetten en met een bewegingssensor de kleuren kunt veranderen. Dit kunnen natuurlijk ook ingeruild worden voor normale knopjes. Dus als je een lava lamp wilt maken met een Matrix led scherm kun je hier terecht.

Alle stappen met wat plaatjes om het overzicht duidelijker te maken.

Step 1: Onderzoek

Ik bestelde mijn 16x32 Matrix led Display en hierna ben ik begonnen met het zoeken van verschillende tutorials om een idee te krijgen van hoe of wat ik precies moet doen. Ik heb er dus een paar getest, die jammer genoeg niet werkten doordat er bijvoorbeeld 1 draad te weinig was voor de Ground of dat er bij een paar zelfs wat draden misten in de uitleg.

Na al deze tutorials en verschillende wire combinaties kwam ik op de Adafruit website waar ik de basis tutorial van het wiren en in elkaar zetten heb gevolgd.

Step 2: Wiring

Je begint met de bandkabel en de powersupply kabel in de achterkant van de Matrix te stoppen. Vervolgens moet je de Ground wires en D van de bandkabel aan het breadboard connecten (zoals op het plaatje).

Vervolgens moet je alle andere kabels in deze volgorde erin stoppen van bandkabel naar de Arduino:
Rood1 -> 2
Groen1 -> 3
Blauw1 -> 4
Rood2 -> 5
Groen2 -> 6
Blauw2 -> 7
A -> A0
B -> A1
C -> A2
LAT/Latch -> A3
CLK/Clock -> 8
OE -> 9

Nu horen alle wires een plekje te hebben op de bandkabel en de Arduino zelf.

Step 3: Code

Je Sluit de Arduino aan op je computer/laptop en start Arduino IDE. (Vergeet niet de goede poort aan te klikken en als je een library hebt gedownload deze in de goede folder te zetten!)
Dan gebruik je een code die je zelf wilt. Maar eerst heb ik de mijne getest met een van de Adafruit test codes namelijk deze:

#include // Core graphics library
#include // Hardware-specific library

#define CLK 8 // MUST be on PORTB! (Use pin 11 on Mega) #define LAT A3 #define OE 9 #define A A0 #define B A1 #define C A2 RGBmatrixPanel matrix(A, B, C, CLK, LAT, OE, false);

void setup() { matrix.begin(); uint8_t r=0, g=0, b=0;

// Draw top half for (uint8_t x=0; x < 32; x++) { for (uint8_t y=0; y < 8; y++) { matrix.drawPixel(x, y, matrix.Color333(r, g, b)); r++; if (r == 8) { r = 0; g++; if (g == 8) { g = 0; b++; } } } }

// Draw bottom half for (uint8_t x=0; x < 32; x++) { for (uint8_t y=8; y < 16; y++) { matrix.drawPixel(x, y, matrix.Color333(r, g, b)); r++; if (r == 8) { r = 0; g++; if (g == 8) { g = 0; b++; } } } } }

void loop() { // do nothing }

Step 4: De Issues

Uiteindelijk nadat ik zelf de codes heb gebruikt wilde hij niet werken zoals hij hoort. (Zie plaatjes)
Hij hoort een test patroon te tonen waarbij je alle kleuren op het display zou kunnen zien. Dit ligt warschijnlijk aan mijn power supply.

Step 5: In Elkaar Zetten

Nadat je Arduino + Display + Code werkt kun je de rest in elkaar zetten. Ik wilde persoonlijk een case hiervoor maken en de sensoren eraan toevoegen alleen doordat hij dus niet werkte ging dat even niet.