ESP32 - NeoPixel LED Strip

De NeoPixel strip is een strook kleurrijke RGB LEDs, waarbij u elke LED afzonderlijk qua kleur en helderheid kunt regelen. In deze handleiding ontdekken we hoe u een ESP32 gebruikt om de NeoPixel RGB LED strip te besturen. Om alle LEDs op de NeoPixel strip aan te sturen, heeft u maar één pin van de ESP32 nodig.

Hardware Benodigd

1×ESP32 ESP-WROOM-32 Ontwikkelingsmodule
1×USB-kabel Type-C
1×NeoPixel RGB LED-Strip
1×1000uF Condensator
1×470Ω weerstand
1×5V Voedingsadapter
1×(optioneel) DC-voeding socket
1×Jumperdraden
1×Breadboard (experimenteerprint)
1×(Aanbevolen) Schroefklem Uitbreidingsboard voor ESP32
1×(Aanbevolen) Breakout Expansion Board for ESP32
1×(Aanbevolen) Stromsplitter voor ESP32

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 NeoPixel RGB LED Strip

Pinout

De NeoPixel RGB LED strip heeft drie pinnen:

  • GND pin: moet worden aangesloten op GND (0V)
  • VCC pin: moet worden aangesloten op 5V van een externe voeding
  • Din pin: ontvangt het stuursignaal. Deze pin moet verbonden worden met een GPIO-pin van de ESP32.
NeoPixel Pinout

Bedradingsschema

ESP32 NeoPixel RGB LED strip Bedradingsschema

This image is created using Fritzing. Click to enlarge image

Hoe te programmeren voor NeoPixel RGB LED Strip

  • Declareer een NeoPixel-object
#define PIN_NEO_PIXEL 16 // De ESP32 pin GPIO16 verbonden met NeoPixel #define NUM_PIXELS 30 // Het aantal LEDs (pixels) op de NeoPixel Adafruit_NeoPixel NeoPixel(NUM_PIXELS, PIN_NEO_PIXEL, NEO_GRB + NEO_KHZ800);
  • Initialiseer de NeoPixel
NeoPixel.begin(); // INITIALISEER NeoPixel strip object (VERPLICHT)
  • Stel de kleur in van een individuele LED (pixel).
NeoPixel.setPixelColor(pixel, NeoPixel.Color(255, 0, 0));
  • Stel de helderheid in van de hele strip.
NeoPixel.setBrightness(200); // een waarde van 0 tot 255

※ Notiz:

  • NeoPixel.setBrightness() wordt gebruikt voor alle pixels op de LED-strip. Om de helderheid per individuele pixel in te stellen, kunt u de kleurwaarde schalen.
  • De waarden ingesteld door NeoPixel.setBrightness() en NeoPixel.setPixelColor() worden pas zichtbaar nadat NeoPixel.show() wordt aangeroepen.

ESP32 Code

De volgende code bereikt de volgende taken:

  • Het verandert de pixels een voor een naar groen, met een pauze tussen iedere pixel.
  • Het schakelt alle pixels uit voor een duur van twee seconden.
  • Het zet tegelijkertijd alle pixels op rood en houdt die toestand 1 seconde vast.
  • Dit hele proces wordt daarna continu herhaald.
/* * Deze ESP32 code is ontwikkeld door newbiely.nl * Deze ESP32 code wordt zonder enige beperking aan het publiek beschikbaar gesteld. * Voor volledige instructies en schema's, bezoek: * https://newbiely.nl/tutorials/esp32/esp32-neopixel-led-strip */ #include <Adafruit_NeoPixel.h> #define PIN_NEO_PIXEL 16 // The ESP32 pin GPIO16 connected to NeoPixel #define NUM_PIXELS 30 // The number of LEDs (pixels) on NeoPixel LED strip Adafruit_NeoPixel NeoPixel(NUM_PIXELS, PIN_NEO_PIXEL, NEO_GRB + NEO_KHZ800); void setup() { NeoPixel.begin(); // initialize NeoPixel strip object (REQUIRED) } void loop() { NeoPixel.clear(); // set all pixel colors to 'off'. It only takes effect if pixels.show() is called // turn pixels to green one-by-one with delay between each pixel for (int pixel = 0; pixel < NUM_PIXELS; pixel++) { // for each pixel NeoPixel.setPixelColor(pixel, NeoPixel.Color(0, 255, 0)); // it only takes effect if pixels.show() is called NeoPixel.show(); // update to the NeoPixel Led Strip delay(500); // 500ms pause between each pixel } // turn off all pixels for two seconds NeoPixel.clear(); NeoPixel.show(); // update to the NeoPixel Led Strip delay(2000); // 2 seconds off time // turn on all pixels to red at the same time for two seconds for (int pixel = 0; pixel < NUM_PIXELS; pixel++) { // for each pixel NeoPixel.setPixelColor(pixel, NeoPixel.Color(255, 0, 0)); // it only takes effect if pixels.show() is called } NeoPixel.show(); // update to the NeoPixel Led Strip delay(1000); // 1 second on time // turn off all pixels for one seconds NeoPixel.clear(); NeoPixel.show(); // update to the NeoPixel Led Strip delay(1000); // 1 second off time }

Snelle stappen

  • Als u ESP32 voor het eerst gebruikt, bekijk dan hoe u de omgeving voor ESP32 op Arduino IDE instelt.
  • Maak de bedrading zoals te zien in bovenstaande afbeelding.
  • Verbind de ESP32 board via een micro USB-kabel met uw PC.
  • Open Arduino IDE op uw PC.
  • Selecteer het juiste ESP32 board (bijv. ESP32 Dev Module) en de corresponderende COM-poort.
  • Klik op het Libraries-icoon in de linker balk van de Arduino IDE.
  • Zoek naar “Adafruit NeoPixel” en vind de NeoPixel-bibliotheek van Adafruit.
  • Klik op de Installeren-knop om de NeoPixel-bibliotheek te installeren.
ESP32 NeoPixel bibliotheek
  • Kopieer bovenstaande code en open deze in Arduino IDE.
  • Klik op de Uploaden-knop in Arduino IDE om de code naar de ESP32 te uploaden.
  • Bekijk het effect op de LED-strip.

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 bij het bevestigen van de bedrading en het uploaden van de code.

Opmerkingen

※ 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!