NeoPixels configureren met Vixen Lights en Arduino: een stapsgewijze handleiding
Onderdelen en benodigdheden
- Arduino Nano R3 (1x)
- Arduino UNO (1x)
- Pixel-strip 60 pixels per meter (1x)
- Weerstand 470 ohm (1x)
- 5V, 40A voeding (1x)
- Breadboard (1x)
- Dupont-kabels (1x)
Benodigde tools en machines
- Solderbout
- Soldeertin
Apps en online diensten
- Vixen Lights (versie 3.4u2 64-bit)
- Arduino IDE
Over dit project
Wat is Vixen Lights?
Vixen Lights is software voor doe-het-zelf verlichtingsautomatisering. De laatste versie 3.x is volledig herontworpen om adresserbare "pixel"-lampen te ondersteunen. Je kunt het downloaden van vixenlights.com. Deze handleiding is gebaseerd op versie 3.4u2 64-bit.
Wat is een pixel?
Een pixel is een cluster van 3 LED's (rood, groen, blauw) wier intensiteit gevarieerd kan worden om andere kleuren te creëren. De WS2812B-pixels in dit voorbeeld bevatten een IC-chip die data ontvangt, de aan hem gerichte informatie weergeeft en de data doorgeeft aan de volgende pixel. Voor mijn display kocht ik strippen van 5 meter met 30 pixels per meter (150 pixels totaal). Adresseerbare RGB-pixelstrippen herken je aan 3 draden: stroom, massa en data. Gewone "domme" RGB-strippen hebben 4 draden (stroom + R, G, B apart).

Stroomvoorziening
RGB-pixels verbruiken veel stroom. Een Arduino kan slechts enkele pixels voeden via de ingebouwde spanningsregelaar. Voor grotere installaties is een externe voeding noodzakelijk. De gebruikte pixels werken op 5V. Elke pixel bij vol wit verbruikt ~60 mA, dus 150 pixels vragen ~9A.
De dunne koperen banen op LED-strippen veroorzaken spanningval. Als de spanning te laag wordt, ontstaan knipperen, dimme lampen of totaal falen. Voed de strip daarom op meerdere punten in (bijv. elke 50 pixels): knip de strip, brug de datalijn en voeg nieuwe stroom- en massadraden toe die teruglopen naar de voeding. Gebruik voldoende dikke draden om spanningval in de voedingsdraden te voorkomen. Een zwaardere voeding (bijv. 40A of 60A) is altijd beter. Bij meerdere voedingen moeten alle massadraden met elkaar verbonden worden.
Arduino als controller
Veel mainstream Arduino-boards kunnen als controller fungeren tussen de PC met Vixen Lights en de pixelstrippen. De grootste beperking is de seriële poortsnelheid: meeste Arduinos gaan niet sneller dan 115.200 bps. Bij 150 pixels (450 kleurwaarden) duurt de transmissie ~45 ms, wat een verversing van 20 Hz (elke 50 ms) mogelijk maakt.

De code in deze handleiding is gebaseerd op de werk van David Hunt (blog.huntgang.com).
Vixen seriële poort configureren
Stap 1: Generic Serial Controller toevoegen
Kies in het menu rechtsboven voor "Add Generic Serial Controller".

Stap 2: Aantal outputs instellen
Stel het aantal outputs in op 3x het aantal pixels. Voor 30 pixels = 90 outputs.

Stap 3: COM-poort en baudrate configureren
Klik rechtsonder op het tandwielpictogram. Selecteer de COM-poort van je Arduino (bijv. COM13) en stel de baudrate in op 115200. De overige instellingen mag je staan.

Stap 4: Header met pixel-aantal instellen
Voeg in de header het aantal pixels toe als 3-cijferige waarde (bijv. "030" voor 30 pixels). De Arduino knippert nu bij ontvangst van seriële data.
Element voor pixels configureren
Stap 5: Single Item toevoegen
Selecteer in de linker bovenhoek "Single Item", klik op de groene "+" knop en noem het "Pixel Strip".

Stap 6: Meerdere pixels genereren
Rechtsklik op "Pixel Strip" → "Add Multiple" → kies "Numbered Items", naam "Pixel Strip", aantal pixels (30). Klik OK.

Stap 7: Kleurbehandeling instellen
Selecteer "Pixel Strip" → configureer "Color Handling" → kies "They can be any color: they are full RGB and mix to make any color."

Stap 8: Element koppelen aan controller
Selecteer "Pixel Strip" links en "Generic Serial Controller" rechts. Het aantal ongekoppelde patch-punten moet overeenkomen. Klik "Patch Elements to Controllers".

Stap 9: Resultaat controleren
De grafische weergave zou er nu als volgt uit moeten zien:

Eerste sequentie maken
Stap 10: Nieuwe sequentie
Open Vixen en klik op "New Sequence…"

Stap 11: Audio importeren
Importeer audio via het Tools-menu (MP3-formaat).

Stap 12: Tijdlijn bekijken
De golfformaat van de audio is nu zichtbaar. Gebruik de zoom-tools (+/-) voor de tijdlijn.

Stap 13: Beat/Bar Detector
Ga naar Tools → Audio → Beat/Bar Detector. Dit alignert effecten perfect met de audio (witte lijnen).

Stap 14: Effecten toevoegen
In het linkermenu "Effects" vind je "Basic Lighting" en "Pixel Lighting". Sleep bijv. "Chase" naar je Pixel Strip-regel en pas de lengte aan.

Stap 15: Effect aanpassen
Selecteer het effect; rechts verschijnen opties voor richting, kleur, puls, diepte, etc. Activeer "Effect Preview" voor live-weergave.

Stap 16: Afspelen
Klik linksboven op Play. Veel voorbeelden vind je op YouTube.
Let op: Zodra de Arduino is aangesloten en Vixen draait, knippert de RX-led op de Arduino — hij wacht op instructies.
Code
FastLED bibliotheek
Installeer via Arduino IDE: Documenten → Arduino → libraries. Download van fastled.io.
Arduino-code
/* Vixen Lights 3.x - Arduino Generic Serial voor Adresseerbare Pixels
* Gemaakt: 8 november 2014
* Door Richard Sloan (www.themindfactory.com) en David Hunt (blog.huntgang.com)
* Versie 1.4
*/
#include <FastLED.h>
#define NUM_LEDS 300
#define DATA_PIN 6
CRGB leds[NUM_LEDS];
void setup() {
Serial.begin(115200);
}
void loop() {
int cnt;
unsigned int num_leds;
unsigned int d1, d2, d3;
for(;;) {
cnt = 0;
// Header wachten: '>>'
while(!Serial.available()); if(Serial.read() != '>') continue;
while(!Serial.available()); if(Serial.read() != '>') continue;
// 3 cijfers voor pixel-aantal
while(!Serial.available()); d1 = Serial.read();
while(!Serial.available()); d2 = Serial.read();
while(!Serial.available()); d3 = Serial.read();
// Header einde: '<<'
while(!Serial.available()); if(Serial.read() != '<') continue;
while(!Serial.available()); if(Serial.read() != '<') continue;
num_leds = (d1-'0')*100 + (d2-'0')*10 + (d3-'0');
if(num_leds > NUM_LEDS) continue;
FastLED.addLeds<WS2812B, DATA_PIN, GRB>(leds, num_leds);
do {
while(!Serial.available()); leds[cnt].r = Serial.read();
while(!Serial.available()); leds[cnt].g = Serial.read();
while(!Serial.available()); leds[cnt++].b = Serial.read();
} while(--num_leds);
FastLED.show();
}
}
Schema
Gebruik een 470 ohm weerstand op de datalijn tussen Arduino pin 6 en de pixel-strip.


Productieproces
- LED helderheid regelen met PWM via drukknop op Arduino Mega
- Bouw een Ultrasonische Zweefapparaat met Arduino – Stap-voor-stap Handleiding
- Universele Android-afstandsbediening bouwen met Arduino, 1Sheeld en IR-besturing
- Een slimme voltmeter bouwen met Arduino en smartphone – Eenvoudig DIY-project
- Arduino temperatuur- en vochtigheidslogger met DHT11 en Ethernet Shield
- Bouw een Slimme IoT Pot met ESP8266, Arduino & Ultrasonische Sensor – Real-time Monitoring
- Nauwkeurige Frequentie- en Duty Cycle-meting met Arduino UNO
- De massa van de aarde meten met Arduino: een stapsgewijze DIY-gids
- Realtime afstandsmeting met Arduino Sonar & Processing visualisatie
- Slimme Parkeer Teller: Real-time Voertuigvolging met Arduino, Processing en PHP
- Bouw een Real-time Digitale Kompas met Arduino & Processing