Inhaltsverzeichnis:

Mehrere unabhängige NeoPixel-Ringe - Gunook
Mehrere unabhängige NeoPixel-Ringe - Gunook

Video: Mehrere unabhängige NeoPixel-Ringe - Gunook

Video: Mehrere unabhängige NeoPixel-Ringe - Gunook
Video: Arduino Einparkhilfe mit VL53L0X Entfernungssensor und WS2812b Neopixel Ring 2024, November
Anonim
Mehrere unabhängige NeoPixel-Ringe
Mehrere unabhängige NeoPixel-Ringe
Mehrere unabhängige NeoPixel-Ringe
Mehrere unabhängige NeoPixel-Ringe

Also habe ich dieses Projekt gebaut, um zu sehen, wie die 12 LED-Pixel funktionieren. Ich habe dieses hier mit 16 gefunden. Und ich sah dieses integrierte Armband, aber ich wollte sehen, wie verschiedene Ringe, verschiedene Größen, unabhängig voneinander funktionieren.

Anstatt den Digitalausgang von einer Platine mit dem Digitaleingang der anderen Platine zu verbinden, wie das zweite Bild vermuten lässt, war es mein Ziel, auf jeder Platine einen dedizierten DI zu haben.

Schritt 1: Material

Material
Material

Schritt 2: Code

Ich hatte am Anfang das neon.ino, dieses war sehr einfach, ich fand online und passte den Port und die Größe des Rings an, es funktionierte.

Ich hatte die Idee, die Variablen zu replizieren, war mir aber nicht sicher, welche benötigt werden und welche für alle NeoPixel-Ringe unverändert bleiben können.

ORIGINAL

#enthalten

#define PIN 2 // Eingabe-Pin Neopixel ist verbunden mit

#define NUMPIXELS 12 // Anzahl der Neopixel im Ring

Adafruit_NeoPixel-Pixel = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);

NEU

#include #define PIN1 6 // 12 Neopixel-Streifen mit Digital PIN6 verbinden

#define PIN2 13 // 6 Neopixel-Streifen mit Digital PIN7 verbinden

#define PIN3 2 // 24 Neopixel-Ring mit Digital PIN8 verbinden

#define PIN4 10 // 16 Neopixel-Ring mit Digital PIN9 verbinden

#define PIN5 9 //

#define NUMPIXELS1 24

#define NUMPIXELS2 16

#define NUMPIXELS3 12

#define NUMPIXELS4 6

#define NUMPIXELS5 1

Adafruit_NeoPixel Pixel1 = Adafruit_NeoPixel(NUMPIXELS1, PIN1, NEO_GRB + NEO_KHZ800); Adafruit_NeoPixel Pixel2 = Adafruit_NeoPixel(NUMPIXELS2, PIN2, NEO_GRB + NEO_KHZ800); Adafruit_NeoPixel Pixel3 = Adafruit_NeoPixel(NUMPIXELS3, PIN3, NEO_GRB + NEO_KHZ800); Adafruit_NeoPixel Pixel4 = Adafruit_NeoPixel(NUMPIXELS4, PIN4, NEO_GRB + NEO_KHZ800); Adafruit_NeoPixel Pixel5 = Adafruit_NeoPixel(NUMPIXELS5, PIN5, NEO_GRB + NEO_KHZ800);

neonmultiple.txt

war ein anderer Code, den ich gefunden habe, aber basierend auf der Anpassung der Tasten für die Geschwindigkeit … Ich musste beide Codes zusammenführen.

zum ersten Mal habe ich verwendet

Leere Schleife () {

ring1();

ring2();

ring3();

ring4();

ring5();

Es war also einfach, den gesamten Code und die Variablen zu sehen, die ich zum "Vervierfachen" des ursprünglichen Neon.ino benötigte

Den eingestellten Farbteil habe ich nur einmal behalten, da sich alle Lichter zufällig ändern können, also keine Notwendigkeit, setcolor1, setcolor2… etc

Void setColor () {redColor = random (0, 255); greenColor = zufällig (0, 255); blueColor = zufällig (0, 255); Serial.print("rot:"); Serial.println (rote Farbe); Serial.print ("grün: "); Serial.println (grüne Farbe); Serial.print ("blau: "); Serial.println (blaue Farbe); }

Der endgültige Code, den ich verwendet habe, heißt multiple_rings1.ino

Schritt 3: Ergebnis

Ergebnis
Ergebnis
Ergebnis
Ergebnis

kann vorerst nur in thinkercad simulieren

www.tinkercad.com/things/0wTu8lCQSkQ-multiple-rings/editel?sharecode=0vbsPyNB7n9it870QBXkyNBV0DyDmmzPCLtHva5fRXk=

Empfohlen: