תוכן עניינים:
2025 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2025-01-13 06:57
אז בניתי את הפרויקט הזה כדי לראות את ה- 12 LED Pixel עובד. מצאתי את זה עם 16 כאן. וראיתי את הצמיד המשולב הזה, אבל רציתי לראות כיצד טבעות שונות, בגדלים שונים יעבדו עצמאיות זו מזו.
אז במקום לחבר את הפלט הדיגיטלי מלוח אחד לכניסה הדיגיטלית בלוח השני כפי שהתמונה השנייה מרמזת, המטרה שלי הייתה לכל אחד ייעוץ DI ייעודי על כל לוח.
שלב 1: חומר
שלב 2: קוד
היה לי את neon.ino מלכתחילה, זה היה מאוד ישר קדימה, מצאתי באינטרנט והתאמת הנמל וגודל הטבעת, זה עבד.
היה לי הרעיון שיהיה צורך לשכפל את המשתנים, אך לא הייתי בטוח אילו מהם נחוצים ואילו מהם יכולים להישאר כפי שהוא עבור כל טבעות NeoPixel.
מְקוֹרִי
#לִכלוֹל
#define PIN 2 // pin pin input אליו מחוברת Neopixel
#define NUMPIXELS 12 // מספר neopixels בטבעת
Adafruit_NeoPixel פיקסלים = Adafruit_NeoPixel (NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
חָדָשׁ
#כלול #הגדר PIN1 6 // חבר 12 רצועת Neopixel ל- PIN6 דיגיטלי
#define PIN2 13 // חבר 6 רצועת Neopixel ל- PIN7 דיגיטלי
#define PIN3 2 // חבר 24 טבעת Neopixel ל- PIN8 דיגיטלי
#define PIN4 10 // חבר 16 טבעת Neopixel ל- PIN9 דיגיטלי
#הגדר PIN5 9 //
#הגדר NUMPIXELS1 24
#הגדר NUMPIXELS2 16
#הגדר NUMPIXELS3 12
#הגדר NUMPIXELS4 6
#הגדר NUMPIXELS5 1
Adafruit_NeoPixel pixels1 = Adafruit_NeoPixel (NUMPIXELS1, PIN1, NEO_GRB + NEO_KHZ800); Adafruit_NeoPixel pixels2 = Adafruit_NeoPixel (NUMPIXELS2, PIN2, NEO_GRB + NEO_KHZ800); Adafruit_NeoPixel pixels3 = Adafruit_NeoPixel (NUMPIXELS3, PIN3, NEO_GRB + NEO_KHZ800); Adafruit_NeoPixel pixels4 = Adafruit_NeoPixel (NUMPIXELS4, PIN4, NEO_GRB + NEO_KHZ800); Adafruit_NeoPixel pixels5 = Adafruit_NeoPixel (NUMPIXELS5, PIN5, NEO_GRB + NEO_KHZ800);
neonmultiple.txt
היה קוד אחר שמצאתי, אך בהתבסס על התאמת כפתורים למהירות … הייתי צריך למזג את שני הקודים.
בפעם הראשונה שהשתמשתי
לולאת חלל () {
ring1 ();
ring2 ();
ring3 ();
ring4 ();
ring5 ();
אז היה קל לראות את כל הקוד והמשתנים שהייתי צריך כדי "לכפול" מה- Neon.ino המקורי
את חלק הצבע המוגדר שמרתי רק פעם אחת, מכיוון שכל האורות יכולים להשתנות באופן אקראי, כך שאין צורך להגדיר setcolor1, setcolor2 … וכו '
void setColor () {redColor = אקראי (0, 255); greenColor = אקראי (0, 255); blueColor = אקראי (0, 255); Serial.print ("אדום:"); Serial.println (redColor); Serial.print ("ירוק:"); Serial.println (greenColor); Serial.print ("כחול:"); Serial.println (blueColor); }
הקוד הסופי שבו השתמשתי נקרא multiple_rings1.ino
שלב 3: תוצאה
יכול לדמות כרגע רק ב- Thinkkercad
www.tinkercad.com/things/0wTu8lCQSkQ-multiple-rings/editel?sharecode=0vbsPyNB7n9it870QBXkyNBV0DyDmmzPCLtHva5fRXk=