Arduino Nano - NeoPixel LED Strip

De NeoPixel RGB LED strip is een reeks LEDs waarbij de kleur en helderheid van elke afzonderlijke LED onafhankelijk van elkaar kan worden aangepast. In deze handleiding leert u hoe u een Arduino Nano gebruikt om de NeoPixel RGB LED strip te sturen. Concreet leert u:

Alle LEDs op de strip kunnen met slechts één digitale pin van de Arduino Nano worden aangestuurd.

Hardware Benodigd

1×Official Arduino Nano
1×Alternatief: DIYables ATMEGA328P Nano Development Board
1×USB A naar Mini-B USB kabel
1×NeoPixel RGB LED-Strip
1×1000uF Condensator
1×470Ω weerstand
1×5V Voeding adapter
1×DC-Stroomaansluiting
1×Jumper wires
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 de NeoPixel RGB LED Strip

De pinout van de NeoPixel LED Strip

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 besturingssignaal en moet worden aangesloten op een digitale pin van de Arduino Nano.
NeoPixel pinout

※ Notiz:

De volgorde van de pinnen kan verschillen per fabrikant. Het is essentieel om altijd de labels op de LED Strip zelf te volgen.

Aansluitschema

Arduino Nano NeoPixel RGB LED strip aansluitdiagram

This image is created using Fritzing. Click to enlarge image

Hoe Programmering voor NeoPixel RGB LED Strip

  • Maak een NeoPixel-object aan.
#define PIN_NEO_PIXEL 2 // Arduino Nano pin verbonden met NeoPixel #define NUM_PIXELS 30 // Aantal LEDs (pixels) op de NeoPixel strip Adafruit_NeoPixel NeoPixel(NUM_PIXELS, PIN_NEO_PIXEL, NEO_GRB + NEO_KHZ800);
  • Initialiseer NeoPixel.
NeoPixel.begin(); // INITIALISEER NeoPixel strip object (VERPLICHT)
  • Geef de kleur op van elke individuele LED (bekend als een pixel).
NeoPixel.setPixelColor(pixel, NeoPixel.Color(255, 0, 0));
  • Pas de helderheid van de hele strip aan.
NeoPixel.setBrightness(100); // waarde van 0 tot 255

※ Notiz:

  • Met NeoPixel.setBrightness() wordt de helderheid van alle pixels op de LED-strip aangepast. Om de helderheid per individuele pixel in te stellen, kunt u de kleurwaarden (R, G, B) proportioneel schalen.
  • De waardes ingesteld met NeoPixel.setBrightness() en NeoPixel.setPixelColor() worden pas toegepast wanneer NeoPixel.show() wordt aangeroepen.

Arduino Nano Code

De onderstaande code voert de volgende acties uit:

  • Zet de pixels één voor één groen aan met een pauze tussen elke pixel
  • Zet alle pixels voor twee seconden uit
  • Zet alle pixels twee seconden rood aan
  • Herhaalt dit proces oneindig
/* * 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-neopixel-led-strip */ #include <Adafruit_NeoPixel.h> #define PIN_NEO_PIXEL 2 // The Arduino Nano pin that connects to NeoPixel #define NUM_PIXELS 30 // The number of LEDs (pixels) on NeoPixel 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(); // send the updated pixel colors to the NeoPixel hardware. delay(DELAY_INTERVAL); // pause between each pixel } // turn off all pixels for two seconds NeoPixel.clear(); NeoPixel.show(); // send the updated pixel colors to the NeoPixel hardware. delay(2000); // 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(); // send the updated pixel colors to the NeoPixel hardware. delay(2000); // on time // turn off all pixels for one seconds NeoPixel.clear(); NeoPixel.show(); // send the updated pixel colors to the NeoPixel hardware. delay(2000); // off time }

Snel aan de slag

  • Klik op het Libraries-icoon in de linkerzijbalk van de Arduino IDE.
  • Zoek naar “Adafruit NeoPixel” en selecteer de NeoPixel bibliotheek van Adafruit.
  • Druk op de Installeren knop om de NeoPixel bibliotheek te installeren.
Arduino Nano neopixel library
  • Kopieer de code en open deze in de Arduino IDE.
  • Klik op de Upload knop in de Arduino IDE om de code naar de Arduino Nano te sturen.
  • Bekijk het LED-effect.

※ Notiz:

Voor complexe LED-effecten bieden wij een betaalde programmeerservice aan.

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.

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