تضيء لي: 20 خطوة (بالصور)
تضيء لي: 20 خطوة (بالصور)
Anonim
تضيء لي!
تضيء لي!
تضيء لي!
تضيء لي!
تضيء لي!
تضيء لي!
تضيء لي!
تضيء لي!

أعضاء فريق المشروع

(هيوون شين ، يونجيونغ كو ، جونسونغ يي)

ماذا لو كنت تستطيع لمس الضوء وتصميمه؟ كيف سيكون شعورك إذا كان لديك نمط جميل من الضوء صممته بنفسك باستخدام رسوم متحركة ممتعة؟ سيكون Light me كتاب رسم مثيرًا يلامس ويصمم الضوء نفسه ويصنع أنماطًا مثيرة للاهتمام! يحتوي هذا المشروع على العديد من المثلثات التي تشكل شكل سداسي. حتى تتمكن من إنشاء أنماط مجسمة وفقًا لكيفية تصميم الضوء! فقط اضغط على كل قطعة وسيتم تصنيف الألوان المختلفة ، وعندما يظهر اللون الذي تريده ، فقط اضغط على اليد التي تضغط عليها وستستمر في التألق بشكل جميل مع اللون الذي تريده! استخدم المشروع حوالي 312 مثلثًا ، ولكن يمكن أن تخلق ضوء جميل يعمل بشكل جيد مع 6 مثلثات. الآن اسمحوا لي أن أريكم كيفية صنعه بستة مثلثات. اتبع الخطوات وستحصل على عملك الرائع!

اللوازم

الأجهزة: Arduino (كنت أستخدم arduino mega 2560) ، أكريليك (شفاف ، أبيض) ، شريط LED (NeoPixel) ، فيلم Diffuser ، زر ، موصل 4 سنون ، سلك ، لوحة دوائر كهربائية ، مصدر طاقة

الأدوات: آلة القطع الموجهة بالليزر ، طابعة ثلاثية الأبعاد

الخطوة 1: دعونا نجعلها

هيا لنفعلها!
هيا لنفعلها!
هيا لنفعلها!
هيا لنفعلها!
هيا لنفعلها!
هيا لنفعلها!

لنجعل هذه القطعة السداسية اللطيفة معي!

يتكون Light Me Up من 312 مثلثًا ، ولكن حتى 6 مثلثات يمكنها تصميم ضوء رائع. إذا كنت ترغب في جعله على نطاق أكبر ، فيمكنك إجراؤه بالرجوع إلى الملف المرفق أدناه.

الخطوة الثانية: تحضير المواد

الإعداد المادي
الإعداد المادي

الخطوة الثالثة: قص الأكريليك

قطع الاكريليك
قطع الاكريليك
قطع الاكريليك
قطع الاكريليك
قطع الاكريليك
قطع الاكريليك
قطع الاكريليك
قطع الاكريليك

استخدم قاطع ليزر لقطع الجزء الأمامي والخلفي لكل جزء. يمكن أن يكون لون الأكريليك على الظهر هو أي شيء تريده ، ولكن تأكد من استخدام الأكريليك الشفاف لأنه يجب تعتيم الواجهة! إذا كنت تستخدم لون أكريليك غير شفاف ، فلن ترى الضوء جيدًا.

الخطوة 4: عمل جوانب باستخدام الطابعات ثلاثية الأبعاد

اصنع جوانب مع طابعات ثلاثية الأبعاد
اصنع جوانب مع طابعات ثلاثية الأبعاد
اصنع جوانب مع طابعات ثلاثية الأبعاد
اصنع جوانب مع طابعات ثلاثية الأبعاد
اصنع جوانب مع طابعات ثلاثية الأبعاد
اصنع جوانب مع طابعات ثلاثية الأبعاد

حان الوقت الآن لعمل جوانب كل قطعة. دعونا نجعلها! يتم إرفاق ملفات النمذجة ثلاثية الأبعاد الموجودة على الجانب أدناه. استخدمنا جيش التحرير الشعبى الصينى لتشكيل الجوانب. جيش التحرير الشعبى الصينى أقوى وأقل تقلصات من ABS ، لذلك يوصى باستخدام خيوط جيش التحرير الشعبى الصينى.

الخطوة الخامسة: التصوير

التصوير
التصوير
التصوير
التصوير
التصوير
التصوير

الآن دعونا نضع فيلم نشر الضوء على الأكريليك في المقدمة. إذا وضعت عليها فيلمًا ، ينتشر ويضيء بشكل أجمل. أولاً ، قم بقص الفيلم على شكل مثلث. (من الأفضل أن تقطع الفيلم أكبر من قطع الأكريليك) من السهل وضع فيلم ، مثل فيلم واقي على هاتفك. إذا كنت تريد الحصول على إكرامية هنا ، فيمكنك استخدام بطاقة لدفعها حتى يتم تعليقها بدقة!

الخطوة 6: قم بتوصيل شريط LED + شريط لحام LED (NeoPixel) بالأسلاك

إرفاق شريط LED + شريط لحام LED (NeoPixel) مع الأسلاك
إرفاق شريط LED + شريط لحام LED (NeoPixel) مع الأسلاك
إرفاق شريط LED + شريط لحام LED (NeoPixel) مع الأسلاك
إرفاق شريط LED + شريط لحام LED (NeoPixel) مع الأسلاك
إرفاق شريط LED + شريط لحام LED (NeoPixel) مع الأسلاك
إرفاق شريط LED + شريط لحام LED (NeoPixel) مع الأسلاك
إرفاق شريط LED + شريط لحام LED (NeoPixel) مع الأسلاك
إرفاق شريط LED + شريط لحام LED (NeoPixel) مع الأسلاك

إذا كنت جيدًا في لحام شريط LED ، فقد حان الوقت لوضع شريط LED في الخلف. أولاً ، قم بإرفاق مسدس الغراء أو الشريط ذي الوجهين في الجزء الخلفي من شريط LED. وقم أولاً بإزالة الأسلاك من جانبي سلك اللحام من خلال الفتحات الموجودة على كلا الجانبين. أخيرًا ، قم بتوصيل شريط LED بالجزء الخلفي من الأكريليك وانتهى الأمر!

حان وقت اللحام! قم بإعداد شرائط LED وموصلات ذات 4 سنون (موصل أو أسلاك) وما تحتاجه للحام. لقد استخدمت مصابيح LED في ثلاث وحدات. يمكنك استخدام واحد أو اثنين من مصابيح LED إذا كنت تريد ، لكني أوصي باستخدام ثلاثة. عندما تكون جميع المواد جاهزة ، قم بلحام الأسلاك في كل من خطوط البيانات وخطوط 5 فولت والخطوط الأرضية لشريط LED.

الخطوة 7: مفتاح لحام اللحام بالأسلاك

مفتاح لحام اللحام بالأسلاك
مفتاح لحام اللحام بالأسلاك
مفتاح لحام اللحام بالأسلاك
مفتاح لحام اللحام بالأسلاك

الخطوة 8: التجميع - أدخل الترباس على الجانب = ①

التجميع - أدخل الترباس على الجانب = ①
التجميع - أدخل الترباس على الجانب = ①
التجميع - أدخل الترباس على الجانب =
التجميع - أدخل الترباس على الجانب =

الآن هو جزء سهل حقيقي! ضع مسمارًا واحدًا على كل جانب من الجوانب الثلاثة المطبوعة ثلاثية الأبعاد. السبب وراء استخدام زر الترباس مثل استخدام البراغي والصواميل الهيكلية سيكون قادرًا على صنعه. عند الانتهاء من القطعة ، سأضع القطعة في العلبة وأكملها بالجوز.

الخطوة 9: قم بإرفاق Ⓛⓣ بـ Ⓒ = ②

أرفق Ⓛⓣ بـ Ⓒ = ②
أرفق Ⓛⓣ بـ Ⓒ = ②
أرفق Ⓛⓣ بـ Ⓒ = ②
أرفق Ⓛⓣ بـ Ⓒ = ②

الخطوة 10: التجميع - استخدم a Ⓦ و للجمع بين ① و ② = ③

التجميع - استخدم و للجمع بين ① و ② = ③
التجميع - استخدم و للجمع بين ① و ② = ③
التجميع - استخدم و للجمع بين ① و ② = ③
التجميع - استخدم و للجمع بين ① و ② = ③
التجميع - استخدم و للجمع بين ① و ② = ③
التجميع - استخدم و للجمع بين ① و ② = ③

الخطوة 11: التجميع - اربط Ⓐⓔ و ③ باستخدام رابطة أكريليك = ④

التجميع - اربط Ⓐⓔ و باستخدام رابطة أكريليك = ④
التجميع - اربط Ⓐⓔ و باستخدام رابطة أكريليك = ④
التجميع - اربط Ⓐⓔ و باستخدام رابطة أكريليك = ④
التجميع - اربط Ⓐⓔ و باستخدام رابطة أكريليك = ④
التجميع - اربط Ⓐⓔ و باستخدام رابطة أكريليك = ④
التجميع - اربط Ⓐⓔ و باستخدام رابطة أكريليك = ④
التجميع - اربط Ⓐⓔ و باستخدام رابطة أكريليك = ④
التجميع - اربط Ⓐⓔ و باستخدام رابطة أكريليك = ④

إذا وضعت مسمارًا على الجانب ، فسنضعه على الجانب والأمام. الجزء الأمامي من الأكريليك ، لذلك عليك وضعه برباط أكريليك مخصص. إذا قمت بإرفاق الأكريليك برابطة عادية ، فسوف تترك علامة.

الخطوة 12: أرفق Ⓢ بـ Ⓓ = ⑤

أرفق Ⓢ بـ Ⓓ = ⑤
أرفق Ⓢ بـ Ⓓ = ⑤
أرفق Ⓢ بـ Ⓓ = ⑤
أرفق Ⓢ بـ Ⓓ = ⑤

الخطوة 13: التجميع - امزج ④ و ⑤ باستخدام Ⓦ و Ⓝ = ⑥

التجميع - اجمع بين ④ و ⑤ باستخدام Ⓦ و Ⓝ = ⑥
التجميع - اجمع بين ④ و ⑤ باستخدام Ⓦ و Ⓝ = ⑥
التجميع - اجمع بين ④ و ⑤ باستخدام Ⓦ و Ⓝ = ⑥
التجميع - اجمع بين ④ و ⑤ باستخدام Ⓦ و Ⓝ = ⑥
التجميع - اجمع بين ④ و ⑤ باستخدام Ⓦ و Ⓝ = ⑥
التجميع - اجمع بين ④ و ⑤ باستخدام Ⓦ و Ⓝ = ⑥

الخطوة 14: أكمل تجميع القطعة

تجميع قطعة كاملة
تجميع قطعة كاملة
تجميع قطعة كاملة
تجميع قطعة كاملة
تجميع قطعة كاملة
تجميع قطعة كاملة

الخطوة 15: المظهر العملي للمشروع

Image
Image

الخطوة 16: NeoPixel ، موصل الأسلاك

NeoPixel ، موصل الأسلاك
NeoPixel ، موصل الأسلاك
NeoPixel ، موصل الأسلاك
NeoPixel ، موصل الأسلاك
NeoPixel ، موصل الأسلاك
NeoPixel ، موصل الأسلاك

الخطوة 17: أسلاك NeoPixel و Arduino

أسلاك NeoPixel و Arduino
أسلاك NeoPixel و Arduino

الخطوة 18: برمجة Arduino

جهاز توقيت خارجي متقلب طويل غير موقّع 0_ ميلي ؛

#يشمل

#define MODEBTNNUM 3 int ani_mode = 0 ؛ preM1 طويل بدون توقيع ، preM2 ، preM3 ؛

الإعداد باطل() {

Wire.begin () ؛ لـ (int i = 0 ؛ i <MODEBTNNUM ؛ i ++) {pinMode (i + 2 ، INPUT_PULLUP) ؛ } //Serial.begin (9600) ، }

حلقة فارغة() {

لـ (int i = 0 ؛ i <MODEBTNNUM ؛ i ++) {if (! digitalRead (i + 2)) ani_mode = i + 1 ؛ } لـ (int i = 0؛ i <6؛ i ++) {Wire.requestFrom (i + 1، 1)؛ while (Wire.available ()) {int x = Wire.read () ؛ // Serial.println (x) ؛ إذا (س == 5) {ani_mode = 0 ؛ // Serial.println ("x = 5") ؛ }}} ///////////////////////////////////////////////////// /////// if (ani_mode == 0) {لـ (int i = 1؛ i 3000) {preM1 = current1 ؛ لـ (int i = 1 ؛ i 5000) {preM2 = current2 ؛ لـ (int i = 1 ؛ i 3000) {preM3 = current3 ؛ // timer0_millis = 0 ؛ // preM1 = 0 ؛ // preM2 = 0 ؛ // preM3 = 0 ؛ // Serial.println ("إعادة ضبط المؤقت") ؛ لـ (int i = 1؛ i <7؛ i ++) {Wire.beginTransmission (i) ؛ Wire.write (ani_mode) ؛ //Serial.println("3000 ") ؛ Wire.endTransmission (ط) ؛ }}}}

الخطوة 19:

جهاز توقيت خارجي متقلب طويل غير موقّع 0_ ميلي ؛

#يشمل

# تضمين # تعريف رقم التعريف الشخصي 12 # تعريف NUMPIXELS 162 شريط Adafruit_NeoPixel = Adafruit_NeoPixel (NUMPIXELS، PIN، NEO_GRB + NEO_KHZ800) ؛ عدد صحيح عدد مرات = NUMPIXELS / 3 ؛ const int slaveNum = 1 ؛ ألوان int [عدد] [3] ؛ هوى int [num] ؛ int جلس [عدد] ؛ مشرق كثافة العمليات [عدد] ؛ عدد int pNumber = 0 ؛ int gValue [عدد] = {1، 1، 1، 1، 1، 1، 1، 1، 1، 1، 1، 1، 1، 1، 1، 1، 1، 1، 1، 1، 1 ، 1 ، 1 ، 1 ، 1 ، 1 ، 1 ، 1 ، 1 ، 1 ، 1 ، 1 ، 1 ، 1 ، 1 ، 1 ، 1 ، 1 ، 1 ، 1 ، 1 ، 1 ، 1 ، 1 ، 1 ، 1 ، 1 ، 1 ، 1 ، 1 ، 1} ؛ const int btnPin [العدد] = {2 ، 3 ، 4 ، 5 ، 6 ، 7 ، 8 ، 9 ، 10 ، 11 ، 14 ، 15 ، 16 ، 17 ، 18 ، 19 ، 22 ، 24 ، 26 ، 28 ، 30 ، 32 ، 34 ، 36 ، 38 ، 40 ، 42 ، 44 ، 46 ، 48 ، 50 ، 52 ، 23 ، 25 ، 27 ، 29 ، 31 ، 33 ، 35 ، 37 ، 39 ، 41 ، 43 ، 45 ، 47 ، 49 ، 51 ، 53 ، 54 ، 55 ، 56 ، 57 ، 58 ، 59} ؛ int btnState [num] ؛ منطقية btnMode ؛ درجة اللون V [العدد] = {1، 1، 1، 1، 1، 1، 1، 1، 1، 1، 1، 1، 1، 1، 1، 1، 1، 1، 1، 1، 1 ، 1 ، 1 ، 1 ، 1 ، 1 ، 1 ، 1 ، 1 ، 1 ، 1 ، 1 ، 1 ، 1 ، 1 ، 1 ، 1 ، 1 ، 1 ، 1 ، 1 ، 1 ، 1 ، 1 ، 1 ، 1 ، 1 ، 1 ، 1 ، 1 ، 1} ؛ # تضمين # تعريف BTNNUM 1 int f_v = 1 ؛ preMillis1 طويل بدون توقيع ؛ بريم طويل بدون توقيع ؛ int ani_mode = 0 ؛ int ani2_Counter = 0 ؛ عداد int = 0 ؛ ///////////////////////////////////////////// إعداد باطل () {Wire. تبدأ (slaveNum) ؛ Wire.onRequest (requestEvent) ؛ Wire.onReceive (استقبال الحدث) ؛ لـ (int i = 0؛ i <num؛ i ++) {pinMode (btnPin ، INPUT_PULLUP) ؛ } //Serial.begin (9600) ، strip.begin () ، } ///////////////////////////////////////////////

حلقة فارغة() {

إذا (f_v == 1) {لـ (int i = 0؛ i <num؛ i ++) {hue = 50 ؛ جلس = 95 ؛ مشرق = 100 ؛ } f_v = 0 ؛ } //////////////////////////////////////// // 버튼 입력 체크: 멈춤 신호 보내기 btnMode = خاطئة؛ لـ (int i = 0؛ i <num؛ i ++) {if (! digitalRead (btnPin )) {btnMode = true ؛ }} btnEvent (5) ؛ // Serial.println (ani_mode) ؛ ////////////////////////////////////// التبديل (ani_mode) {حالة 0: ani0 () ؛ استراحة؛ الحالة 1: ani1 () ؛ ani_mode = 0 ؛ ani2_Counter = 0 ؛ استراحة؛ الحالة 2: ani2_Counter = 1 ؛ ani_mode = 0 ؛ استراحة؛ الحالة 3: ani3 () ؛ ani_mode = 0 ؛ ani2_Counter = 0 ؛ استراحة؛ الافتراضي: readyState () ؛ استراحة؛ } إذا (ani2_Counter == 1) {ani2 () ؛ } setPixels (num) ؛ }

///////////////////////////////////////////

getEvent (int howMany) باطل {int x = Wire.read () ؛ إذا (x == 5) {// Serial.println ("تم استلام 5") ؛ ani_mode = 0 ؛ } ani_mode = x ؛ // Serial.println (ani_mode) ؛ } /////////////////////////////////////////////// طلب باطل الحدث () {

إذا (btnMode == صحيح) {

Wire.write (5) ؛ // Serial.println ("5 보냄") ؛ } else {Wire.write (0) ؛ }

}

ani0 باطل () {

// Serial.println ("0") ؛ }

ani1 باطل () {

// Serial.println ("1") ؛ if (pNumber == 0) {for (int i = 0؛ i <num؛ i ++) {bright = 0 ؛ gValue = 1 ، } int a1 = {25، 26} ؛ int b1 = {39، 52} ، int c1 = {40، 53} ، لـ (int a = 0؛ a <2؛ a ++) {hue [a1 [a] = 100 ؛ جلس [a1 [أ] = 95 ؛ مشرق [a1 [a] = 100 ؛ } لـ (int b = 0؛ b <2؛ b ++) {hue [b1 = 200 ؛ سات [b1 = 95 ؛ مشرق [b1 [ب] = 100 ؛ } لـ (int c = 0؛ c <2؛ c ++) {hue [c1 [c] = 300 ؛ sat [c1 [c] = 95 ؛ مشرق [c1 [ج] = 100 ؛ } // Serial.println ("0") ؛ } else if (pNumber == 1) {for (int i = 0؛ i <num؛ i ++) {bright = 0؛ gValue = 1 ، } int a2 = {21، 22، 34، 35، 37، 46، 47، 51} ؛ // int b2 = {} ، // int c2 = {} ، int d2 = {36، 48، 49، 50} ؛ لـ (int a = 0؛ a <8؛ a ++) {hue [a2 [a] = 26 ؛ جلس [a2 [أ] = 95 ؛ مشرق [a2 [a] = 100 ؛ } لـ (int d = 0؛ d <4؛ d ++) {hue [d2 [d] = 63 ؛ جلس [د 2 [د] = 95 ؛ مشرق [d2 [د] = 100 ؛ } // Serial.println ("1") ؛ } else if (pNumber == 2) {// نموذج مكعب عملاق لـ (int i = 0؛ i <num؛ i ++) {bright = 0؛ gValue = 1 ، } int a14 = {34، 35، 46، 47، 48، 49}؛ // أصفر 06 لـ (int a = 0؛ a <6؛ a ++) {hue [a14 [a] = 35 ؛ جلس [أ 14 [أ] = 95 ؛ مشرق [a14 [a] = 100 ؛ }} else if (pNumber == 3) {for (int i = 0؛ i <num؛ i ++) {bright = 0؛ gValue = 1 ، } int a3 = {34، 35، 46، 47، 48، 49}؛ // أصفر لـ (int a = 0؛ a <6؛ a ++) {hue [a3 [a] = 53؛ جلس [a3 [أ] = 95 ؛ مشرق [a3 [أ] = 100 ؛ }} else if (pNumber == 4) {for (int i = 0؛ i <num؛ i ++) {bright = 0؛ gValue = 1 ، } int a4 = {34، 35}؛ // yellow int b4 = {47}؛ // blue int c4 = {48}؛ // أرجواني

لـ (int a = 0؛ a <2؛ a ++) {hue [a4 [a] = 53 ؛ جلس [a4 [أ] = 95 ؛ مشرق [a4 [a] = 100 ؛ }

لـ (int b = 0؛ b <1؛ b ++) {hue [b4 = 210 ؛ سات [b4 = 95 ؛ مشرق [b4 [ب] = 100 ؛ } لـ (int c = 0؛ c <1؛ c ++) {hue [c4 [c] = 307 ؛ سات [c4 [ج] = 95 ؛ مشرق [c4 [ج] = 100 ؛ }} else if (pNumber == 5) {for (int i = 0؛ i <num؛ i ++) {bright = 0؛ gValue = 1 ، } int a5 = {34، 35، 46، 47، 48، 49} ؛

لـ (int a = 0؛ a <6؛ a ++) {hue [a5 [a] = 100 ؛ جلس [a5 [أ] = 95 ؛ مشرق [a5 [a] = 100 ؛ }} else if (pNumber == 6) {for (int i = 0؛ i <num؛ i ++) {bright = 0؛ gValue = 1 ، } int a6 = {34، 35، 46، 47، 48، 49}؛ // أصفر لـ (int a = 0؛ a <6؛ a ++) {hue [a6 [a] = 53؛ جلس [a6 [أ] = 95 ؛ مشرق [a6 [أ] = 100 ؛ }} else if (pNumber == 7) {for (int i = 0؛ i <num؛ i ++) {bright = 0؛ gValue = 1 ، } int c7 = {34، 35، 46، 47، 48، 49}؛ // أرجواني لـ (int c = 0؛ c <6؛ c ++) {hue [c7 [c] = 307 ؛ سات [c7 [ج] = 95 ؛ مشرق [c7 [ج] = 100 ؛ }} else if (pNumber == 8) {for (int i = 0؛ i <num؛ i ++) {bright = 0؛ gValue = 1 ، } int c8 = {34، 35، 46، 47، 48، 49} ؛ // أرجواني لـ (int c = 0؛ c <6؛ c ++) {hue [c8 [c] = 307 ؛ سات [c8 [ج] = 95 ؛ مشرق [c8 [ج] = 100 ؛ }} else if (pNumber == 9) {for (int i = 0؛ i <num؛ i ++) {bright = 0؛ gValue = 1 ، } int c9 = {34، 35، 46، 47، 48، 49} ؛ // أرجواني لـ (int c = 0؛ c <6؛ c ++) {hue [c9 [c] = 307 ؛ سات [c9 [ج] = 95 ؛ مشرق [c9 [ج] = 100 ؛ }} else if (pNumber == 10) {for (int i = 0؛ i <num؛ i ++) {bright = 0؛ gValue = 1 ، } int c10 = {34، 35، 46، 47، 48، 49} ؛ // أرجواني لـ (int c = 0؛ c <6؛ c ++) {hue [c10 [c] = 307 ؛ sat [c10 [c] = 95 ؛ مشرق [c10 [ج] = 100 ؛ }} else if (pNumber == 11) {for (int i = 0؛ i <num؛ i ++) {bright = 0؛ gValue = 1 ، } int c11 = {34، 35، 46، 47، 48، 49} ؛ // أرجواني لـ (int c = 0؛ c <6؛ c ++) {hue [c11 [c] = 307 ؛ sat [c11 [c] = 95 ؛ مشرق [c11 [ج] = 100 ؛ }} else if (pNumber == 12) {for (int i = 0؛ i <num؛ i ++) {bright = 0؛ gValue = 1 ، } int c12 = {34، 35، 46، 47، 48، 49} ؛ // أرجواني لـ (int c = 0؛ c <6؛ c ++) {hue [c12 [c] = 307 ؛ sat [c12 [c] = 95 ؛ مشرق [c12 [ج] = 100 ؛ }} else if (pNumber == 13) {for (int i = 0؛ i <num؛ i ++) {bright = 0؛ gValue = 1 ، } int a13 = {34، 35} ؛ // yellow int b13 = {47} ؛ // blue int c13 = {48} ؛ // أرجواني لـ (int a = 0؛ a <2؛ a ++) {hue [a13 [a] = 53 ؛ جلس [a13 [a] = 95 ؛ مشرق [a13 [a] = 100 ؛ } لـ (int b = 0؛ b <1؛ b ++) {hue [b13 = 210 ؛ sat [b13 = 95 ؛ مشرق [b13 [ب] = 100 ؛ } لـ (int c = 0؛ c <1؛ c ++) {hue [c13 [c] = 307 ؛ sat [c13 [c] = 95 ؛ مشرق [c13 [ج] = 100 ؛ }} pNumber = pNumber + 1 ؛

إذا (pNumber == 14) {

pNumber = 0 ؛ }}

ani2 باطل () {

// Serial.println ("2") ؛ curM طويل بدون توقيع = مللي () ؛

إذا (curM - preM> = 10) {

preM = curM ؛ لـ (int i = 0؛ i <num؛ i ++) {if (hue = 360) {gValue = -1؛ } hue = hue + gValue ؛ } عداد ++ ؛ إذا (العداد == 360) {// Serial.print ("العداد:") ؛ // Serial.println (عداد) ؛ // Serial.println (curM) ؛ عداد = 0 ؛ ani2_Counter = 0 ؛ }}}

ani3 باطل () {

// Serial.println ("3") ؛ } /////////////////////////////////////////////// void readyState () {/ / Serial.println ("جاهز") ؛ } /////////////////////////////////////////////// void btnEvent (int b_interval) {long curMillis1 غير موقعة = ميلي () ؛

لـ (int i = 0؛ i <num؛ i ++) {btnState = digitalRead (btnPin ) ؛ }

إذا (curMillis1 - preMillis1> b_interval) {

preMillis1 = curMillis1 ؛ لـ (int i = 0 ؛ i = 360) {hueV = -1 ؛ } else if (hue <= 0) {hueV = 1 ؛ } hue = hue + hueV ؛ مشرق = 100 ؛ }}}} /////////////////////////////////////////////// مجموعة باطلة بكسل (int k) {for (int i = 0؛ i <k؛ i ++) {H2R_HSBtoRGB (hue ، sat ، bright ، colours )؛ عدد العمليات 1 = أنا * 3 ؛ strip.setPixelColor (عدد 1 ، ألوان [0] ، ألوان [1] ، ألوان [2]) ؛ strip.setPixelColor (عدد 1 + 1 ، ألوان [0] ، ألوان [1] ، ألوان [2]) ؛ strip.setPixelColor (عدد 1 + 2 ، ألوان [0] ، ألوان [1] ، ألوان [2]) ؛ } عرض الشريط()؛ }

الخطوة 20: الأنماط

أنماط - رسم!
أنماط - رسم!
أنماط - رسم!
أنماط - رسم!

يحتوي هذا المشروع على عدة مثلثات تشكل شكلًا سداسيًا. حتى تتمكن من إنشاء أنماط مجسمة وفقًا لكيفية تصميم الضوء! فقط اضغط على كل قطعة وسيتم تصنيف الألوان المختلفة ، وعندما يظهر اللون الذي تريده ، فقط اضغط على اليد التي ضغطت عليها وستستمر في التألق بشكل جميل باللون الذي تريده!