2025 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2025-01-13 06:58
ดังนั้นฉันจึงสร้างโปรเจ็กต์นี้เพื่อดูว่า 12 LED Pixel ทำงานอย่างไร ฉันพบอันนี้กับ 16 ที่นี่ และฉันเห็นสร้อยข้อมือแบบบูรณาการนี้ แต่ฉันต้องการดูว่าแหวนต่างๆ ขนาดต่างๆ จะทำงานเป็นอิสระจากกันอย่างไร
ดังนั้น แทนที่จะเชื่อมต่อ Digital Output จากบอร์ดหนึ่งไปยัง Digital Input บนอีกบอร์ดหนึ่งตามภาพที่สอง เป้าหมายของฉันคือการมี DI เฉพาะหนึ่งตัวในแต่ละบอร์ด
ขั้นตอนที่ 1: วัสดุ
ขั้นตอนที่ 2: รหัส
ฉันมี neon.ino เพื่อเริ่มต้น อันนี้ตรงไปตรงมามาก ฉันพบออนไลน์และปรับพอร์ตและขนาดของวงแหวน มันใช้งานได้
ฉันมีความคิดว่าจะมีความจำเป็นต้องทำซ้ำตัวแปร แต่ไม่แน่ใจว่าอันไหนจำเป็นและอันไหนที่จะคงอยู่ได้เช่นเดียวกับวงแหวน NeoPixel ทั้งหมด
ต้นฉบับ
#รวม
#define PIN 2 // พินอินพุต Neopixel ติดอยู่กับ
#define NUMPIXELS 12 // จำนวนนีโอพิกเซลใน Ring
พิกเซล Adafruit_NeoPixel = Adafruit_NeoPixel (NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
ใหม่
#include #define PIN1 6 // เชื่อมต่อ 12 Neopixel strip กับ Digital PIN6
#define PIN2 13 // เชื่อมต่อแถบ 6 Neopixel กับ Digital PIN7
#define PIN3 2 // เชื่อมต่อ 24 Neopixel ring กับ Digital PIN8
#define PIN4 10 // เชื่อมต่อ 16 Neopixel ring กับ Digital PIN9
#กำหนด PIN5 9 //
#define NUMPIXELS1 24
#define NUMPIXELS2 16
#define NUMPIXELS3 12
#define NUMPIXELS4 6
#define NUMPIXELS5 1
Adafruit_NeoPixel พิกเซล1 = Adafruit_NeoPixel(NUMPIXELS1, PIN1, NEO_GRB + NEO_KHZ800); Adafruit_NeoPixel พิกเซล2 = Adafruit_NeoPixel(NUMPIXELS2, PIN2, NEO_GRB + NEO_KHZ800); Adafruit_NeoPixel พิกเซล3 = Adafruit_NeoPixel(NUMPIXELS3, PIN3, NEO_GRB + NEO_KHZ800); Adafruit_NeoPixel พิกเซล4 = Adafruit_NeoPixel(NUMPIXELS4, PIN4, NEO_GRB + NEO_KHZ800); Adafruit_NeoPixel พิกเซล5 = Adafruit_NeoPixel(NUMPIXELS5, PIN5, NEO_GRB + NEO_KHZ800);
neonmultiple.txt
เป็นรหัสอื่นที่ฉันพบ แต่จากการปรับปุ่มเพื่อความเร็ว… ฉันจำเป็นต้องรวมรหัสทั้งสองเข้าด้วยกัน
ครั้งแรกที่ฉันใช้
วงเป็นโมฆะ () {
วงแหวน1();
ring2();
ring3();
ring4();
ring5();
ดังนั้นจึงง่ายที่จะเห็นโค้ดและตัวแปรทั้งหมดที่ฉันต้องการเพื่อ "quadruplicate" จาก Neon.ino ดั้งเดิม
ส่วนชุดสีที่ฉันเก็บไว้เพียงครั้งเดียว เนื่องจากแสงทั้งหมดสามารถเปลี่ยนแบบสุ่มได้ ดังนั้นจึงไม่จำเป็นต้อง setcolor1, setcolor2… ฯลฯ
เป็นโมฆะ setColor () { redColor = สุ่ม (0, 255); สีเขียว = สุ่ม (0, 255); blueColor = สุ่ม (0, 255); Serial.print("สีแดง:"); Serial.println (สีแดง); Serial.print("สีเขียว:"); Serial.println (สีเขียว); Serial.print("สีน้ำเงิน: "); Serial.println (สีน้ำเงิน); }
รหัสสุดท้ายที่ฉันใช้เรียกว่า multiple_rings1.ino
ขั้นตอนที่ 3: ผลลัพธ์
จำลองได้เฉพาะใน thinkercad เท่านั้นในตอนนี้
www.tinkercad.com/things/0wTu8lCQSkQ-multiple-rings/editel?sharecode=0vbsPyNB7n9it870QBXkyNBV0DyDmmzPCLtHva5fRXk=