สารบัญ:

Light Me Up!: 20 ขั้นตอน (พร้อมรูปภาพ)
Light Me Up!: 20 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: Light Me Up!: 20 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: Light Me Up!: 20 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: Get Ready with HOURGLASS แต่งหน้าวันสบายๆ สวยได้ใน 20 นาที | DAILYCHERIE 2024, พฤศจิกายน
Anonim
จุดไฟให้ฉัน!
จุดไฟให้ฉัน!
จุดไฟให้ฉัน!
จุดไฟให้ฉัน!
จุดไฟให้ฉัน!
จุดไฟให้ฉัน!
จุดไฟให้ฉัน!
จุดไฟให้ฉัน!

สมาชิกในทีมโครงการ

(ฮเยวอน ชิน, อึนจอง โค, จุนซองยี)

ถ้าคุณสามารถสัมผัสและออกแบบแสงได้ล่ะ? จะเป็นอย่างไรถ้าคุณมีรูปแบบแสงที่สวยงามที่คุณออกแบบเองด้วยแอนิเมชั่นที่น่าสนใจ Light me up จะเป็นสมุดสเก็ตช์ที่น่าสนใจที่สัมผัสและออกแบบแสงเองและสร้างรูปแบบที่น่าสนใจ! โครงการนี้มีรูปสามเหลี่ยมหลายรูปที่ก่อตัวเป็น รูปร่างหกเหลี่ยม เพื่อให้คุณสามารถสร้างรูปแบบสามมิติตามการออกแบบแสงของคุณ! แค่กดแต่ละชิ้นก็ไล่เฉดสีต่างๆ แล้ว เมื่อสีที่ต้องการออกมาก็แค่กดมือที่กดแล้วจะส่องประกายสวยงามตามสีที่ต้องการได้เลย! โปรเจ็กต์ใช้สามเหลี่ยมประมาณ 312 อัน แต่สร้างได้ แสงที่ดีที่ทำงานได้ดีกับ 6 สามเหลี่ยม ตอนนี้ ให้ฉันแสดงวิธีทำด้วยสามเหลี่ยมหกรูป ทำตามขั้นตอนและคุณจะได้งานที่ยอดเยี่ยมของคุณเอง!

เสบียง

ฮาร์ดแวร์: Arduino (ฉันใช้ Arduino mega 2560), อะคริลิค (ใส, ขาว), แถบ LED (NeoPixel), ฟิล์มกระจายแสง, ปุ่ม, ขั้วต่อ 4 ขา, ลวด, แผงวงจร, พาวเวอร์ซัพพลาย

เครื่องมือ: เครื่องตัดด้วยเลเซอร์, เครื่องพิมพ์ 3 มิติ

ขั้นตอนที่ 1: มาสร้างมันกันเถอะ

มาสร้างมันกันเถอะ!
มาสร้างมันกันเถอะ!
มาสร้างมันกันเถอะ!
มาสร้างมันกันเถอะ!
มาสร้างมันกันเถอะ!
มาสร้างมันกันเถอะ!

มาทำชิ้นหกเหลี่ยมที่น่ารักนี้กับฉันกันเถอะ!

Light Me Up สร้างขึ้นโดยใช้สามเหลี่ยม 312 รูป แต่รูปสามเหลี่ยม 6 รูปก็สามารถออกแบบแสงที่ยอดเยี่ยมได้ หากคุณต้องการสร้างในขนาดที่ใหญ่ขึ้น คุณสามารถทำได้โดยอ้างอิงจากไฟล์ที่แนบมาด้านล่าง

ขั้นตอนที่ 2: การเตรียมวัสดุ

การเตรียมวัสดุ
การเตรียมวัสดุ

ขั้นตอนที่ 3: ตัดอะคริลิค

ตัดอะคริลิค
ตัดอะคริลิค
ตัดอะคริลิค
ตัดอะคริลิค
ตัดอะคริลิค
ตัดอะคริลิค
ตัดอะคริลิค
ตัดอะคริลิค

ใช้เครื่องตัดเลเซอร์ตัดด้านหน้าและด้านหลังของแต่ละส่วน สีของอะครีลิคด้านหลังจะเป็นอะไรก็ได้ที่คุณต้องการ แต่อย่าลืมใช้อะครีลิกใสเพราะด้านหน้าต้องหรี่! หากคุณใช้สีอะครีลิคแบบอื่นที่ไม่ใช่แบบโปร่งใส คุณจะมองไม่เห็นแสงที่ดี

ขั้นตอนที่ 4: สร้างด้านด้วยเครื่องพิมพ์ 3 มิติ

สร้างด้านด้วยเครื่องพิมพ์ 3 มิติ
สร้างด้านด้วยเครื่องพิมพ์ 3 มิติ
สร้างด้านด้วยเครื่องพิมพ์ 3 มิติ
สร้างด้านด้วยเครื่องพิมพ์ 3 มิติ
สร้างด้านด้วยเครื่องพิมพ์ 3 มิติ
สร้างด้านด้วยเครื่องพิมพ์ 3 มิติ

ตอนนี้ได้เวลาทำด้านข้างของแต่ละชิ้นแล้ว มาทำกันเถอะ! ไฟล์การสร้างแบบจำลอง 3 มิติที่ด้านข้างแนบมาด้านล่าง เราใช้ PLA เพื่อทำให้ด้าน PLA มีความแข็งแรงและหดตัวน้อยกว่า ABS ดังนั้นจึงแนะนำให้ใช้ PLA

ขั้นตอนที่ 5: ถ่ายทำ

กำลังถ่ายทำ
กำลังถ่ายทำ
กำลังถ่ายทำ
กำลังถ่ายทำ
กำลังถ่ายทำ
กำลังถ่ายทำ

ทีนี้มาติดฟิล์มกระจายแสงที่อะครีลิกที่ด้านหน้ากัน ถ้าติดฟิล์มจะยิ่งส่องประกายสวยขึ้นมาก ขั้นแรก ตัดฟิล์มให้เป็นรูปทรงสามเหลี่ยม (คุณควรตัดฟิล์มให้ใหญ่กว่าอะครีลิกตัด) ติดฟิล์มได้ง่าย เช่น ฟิล์มกันรอยบนโทรศัพท์ของคุณ ถ้าอยากให้ทิปตรงนี้ก็ใช้การ์ดดันให้มันติดได้เรียบร้อย!

ขั้นตอนที่ 6: แนบ LED Strip + บัดกรี LED Strip (NeoPixel) ด้วย Wires

ติด LED Strip + บัดกรี LED Strip (NeoPixel) ด้วยสายไฟ
ติด LED Strip + บัดกรี LED Strip (NeoPixel) ด้วยสายไฟ
ติด LED Strip + บัดกรี LED Strip (NeoPixel) ด้วยสายไฟ
ติด LED Strip + บัดกรี LED Strip (NeoPixel) ด้วยสายไฟ
ติด LED Strip + บัดกรี LED Strip (NeoPixel) ด้วยสายไฟ
ติด LED Strip + บัดกรี LED Strip (NeoPixel) ด้วยสายไฟ
ติด LED Strip + บัดกรี LED Strip (NeoPixel) ด้วยสายไฟ
ติด LED Strip + บัดกรี LED Strip (NeoPixel) ด้วยสายไฟ

หากคุณสามารถบัดกรีแถบ LED ได้ดีมาก ก็ถึงเวลาใส่แถบ LED ที่ด้านหลังแล้ว ขั้นแรก ติดปืนกาวหรือเทปสองด้านที่ด้านหลังของแถบ LED และก่อนอื่นให้ถอดสายไฟออกจากทั้งสองด้านของลวดบัดกรีผ่านรูทั้งสองด้าน สุดท้ายติดแถบ LED ที่ด้านหลังอะครีลิคก็จบ!

ถึงเวลาบัดกรีแล้ว! เตรียมแถบ LED, คอนเนคเตอร์ 4 พิน (คอนเนคเตอร์หรือสายไฟ) และสิ่งที่คุณต้องการสำหรับการบัดกรี ฉันใช้ LED ในสามหน่วย คุณสามารถใช้ไฟ LED หนึ่งหรือสองดวงหากต้องการ แต่ฉันแนะนำให้ใช้สามดวง เมื่อวัสดุทั้งหมดพร้อมแล้ว ให้บัดกรีสายไฟในทั้งสายข้อมูล เส้น 5v และสายกราวด์ของแถบ LED

ขั้นตอนที่ 7: การบัดกรีสวิตช์แทคด้วยสายไฟ

สวิตช์แท็คบัดกรีพร้อมสายไฟ
สวิตช์แท็คบัดกรีพร้อมสายไฟ
สวิตช์แท็คบัดกรีพร้อมสายไฟ
สวิตช์แท็คบัดกรีพร้อมสายไฟ

ขั้นตอนที่ 8: การประกอบ - ใส่โบลท์ที่ด้านข้าง = ①

การประกอบ - ใส่กลอนด้านข้าง = ①
การประกอบ - ใส่กลอนด้านข้าง = ①
การประกอบ - ใส่กลอนด้านข้าง = ①
การประกอบ - ใส่กลอนด้านข้าง = ①

ตอนนี้เป็นส่วนที่ง่ายมาก! วางโบลท์หนึ่งอันบนด้านที่พิมพ์ 3 มิติทั้งสามด้าน เหตุผลที่ใช้ปุ่มโบลต์เหมือนใช้น๊อตโครงสร้างและน๊อตก็ทำได้ เมื่อชิ้นงานเสร็จแล้ว ฉันจะใส่ชิ้นส่วนในกล่องและปิดท้ายด้วยน็อต

ขั้นตอนที่ 9: แนบ Ⓛⓣ กับ Ⓒ= ②

แนบ Ⓛⓣ เข้ากับ Ⓒ= ②
แนบ Ⓛⓣ เข้ากับ Ⓒ= ②
แนบ Ⓛⓣ เข้ากับ Ⓒ= ②
แนบ Ⓛⓣ เข้ากับ Ⓒ= ②

ขั้นตอนที่ 10: การประกอบ - ใช้ Ⓦ และ Ⓝ เพื่อรวม ① และ ②= ③

การประกอบ - ใช้ Ⓦ และ Ⓝ เพื่อรวม ① และ ②= ③
การประกอบ - ใช้ Ⓦ และ Ⓝ เพื่อรวม ① และ ②= ③
การประกอบ - ใช้ Ⓦ และ Ⓝ เพื่อรวม ① และ ②= ③
การประกอบ - ใช้ Ⓦ และ Ⓝ เพื่อรวม ① และ ②= ③
การประกอบ - ใช้ Ⓦ และ Ⓝ เพื่อรวม ① และ ②= ③
การประกอบ - ใช้ Ⓦ และ Ⓝ เพื่อรวม ① และ ②= ③

ขั้นตอนที่ 11: การประกอบ -แนบ Ⓐⓔ และ ③ โดยใช้พันธะอะคริลิก= ④

การประกอบ -แนบ Ⓐⓔ และ ③ โดยใช้พันธะอะคริลิก= ④
การประกอบ -แนบ Ⓐⓔ และ ③ โดยใช้พันธะอะคริลิก= ④
การประกอบ -แนบ Ⓐⓔ และ ③ โดยใช้พันธะอะคริลิก= ④
การประกอบ -แนบ Ⓐⓔ และ ③ โดยใช้พันธะอะคริลิก= ④
การประกอบ -แนบ Ⓐⓔ และ ③ โดยใช้พันธะอะคริลิก= ④
การประกอบ -แนบ Ⓐⓔ และ ③ โดยใช้พันธะอะคริลิก= ④
การประกอบ -แนบ Ⓐⓔ และ ③ โดยใช้พันธะอะคริลิก= ④
การประกอบ -แนบ Ⓐⓔ และ ③ โดยใช้พันธะอะคริลิก= ④

หากคุณใส่สลักเกลียวที่ด้านข้าง เราจะใส่มันที่ด้านข้างและด้านหน้า ด้านหน้าเป็นอะครีลิก ดังนั้นคุณต้องติดด้วยอะครีลิกบอนด์โดยเฉพาะ หากคุณติดอะคริลิกกับพันธะปกติ มันจะทิ้งรอยไว้

ขั้นตอนที่ 12: แนบ Ⓢ กับ Ⓓ= ⑤

แนบ Ⓢ กับ Ⓓ= ⑤
แนบ Ⓢ กับ Ⓓ= ⑤
แนบ Ⓢ กับ Ⓓ= ⑤
แนบ Ⓢ กับ Ⓓ= ⑤

ขั้นตอนที่ 13: การประกอบ - รวม ④ และ ⑤ โดยใช้ Ⓦ และ Ⓝ= ⑥

การประกอบ - รวม ④ และ ⑤ โดยใช้ Ⓦ และ Ⓝ= ⑥
การประกอบ - รวม ④ และ ⑤ โดยใช้ Ⓦ และ Ⓝ= ⑥
การประกอบ - รวม ④ และ ⑤ โดยใช้ Ⓦ และ Ⓝ= ⑥
การประกอบ - รวม ④ และ ⑤ โดยใช้ Ⓦ และ Ⓝ= ⑥
การประกอบ - รวม ④ และ ⑤ โดยใช้ Ⓦ และ Ⓝ= ⑥
การประกอบ - รวม ④ และ ⑤ โดยใช้ Ⓦ และ Ⓝ= ⑥

ขั้นตอนที่ 14: ประกอบชิ้นส่วนให้สมบูรณ์

การประกอบชิ้นส่วนที่สมบูรณ์
การประกอบชิ้นส่วนที่สมบูรณ์
การประกอบชิ้นส่วนที่สมบูรณ์
การประกอบชิ้นส่วนที่สมบูรณ์
การประกอบชิ้นส่วนที่สมบูรณ์
การประกอบชิ้นส่วนที่สมบูรณ์

ขั้นตอนที่ 15: ลักษณะการทำงานของโครงการ

Image
Image

ขั้นตอนที่ 16: NeoPixel การเดินสายตัวเชื่อมต่อ

NeoPixel, การเดินสายคอนเนคเตอร์
NeoPixel, การเดินสายคอนเนคเตอร์
NeoPixel, การเดินสายคอนเนคเตอร์
NeoPixel, การเดินสายคอนเนคเตอร์
NeoPixel, การเดินสายคอนเนคเตอร์
NeoPixel, การเดินสายคอนเนคเตอร์

ขั้นตอนที่ 17: การเดินสาย NeoPixel และ Arduino

การเดินสาย NeoPixel และ Arduino
การเดินสาย NeoPixel และ Arduino

ขั้นตอนที่ 18: ตั้งโปรแกรม Arduino

extern ระเหย unsigned long timer0_millis;

#รวม

#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); ในขณะที่ (Wire.available ()) { int x = Wire.read (); // Serial.println(x); ถ้า (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 = ปัจจุบัน 3; // 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(i); } } } }

ขั้นตอนที่ 19:

extern ระเหย unsigned long timer0_millis;

#รวม

#include #define PIN 12 #define NUMPIXELS 162 Adafruit_NeoPixel แถบ = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800); const int num = NUMPIXELS / 3; const int slaveNum = 1; int สี[num][3]; สีภายใน[num]; int sat[จำนวน]; สว่างสดใส[num]; int pNumber = 0; int gValue[num] = {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, 1, 1, 1 }; const int btnPin[num] = {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[จำนวน]; btnMode บูลีน; int hueV[num] = {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, 1, 1, 1 }; #include #define BTNNUM 1 int f_v = 1; preMillis1 แบบยาวที่ไม่ได้ลงนาม; preM แบบยาวที่ไม่ได้ลงนาม int ani_mode = 0; int ani2_Counter = 0; ตัวนับ int = 0; ///////////////////////////////////////// ตั้งค่าเป็นโมฆะ () { Wire. เริ่ม(slaveNum); Wire.onRequest (requestEvent); Wire.onReceive(receiveEvent); สำหรับ (int i = 0; i < num; i++) { pinMode (btnPin , INPUT_PULLUP); } //Serial.begin(9600); แถบ.begin(); } //////////////////////////////////////////////////////////////////////////////

วงเป็นโมฆะ () {

if (f_v == 1) { สำหรับ (int i = 0; i < num; i++) { hue = 50; sat = 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(); หยุดพัก; } if (ani2_Counter == 1) { ani2(); } setPixels(จำนวน); }

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

เป็นโมฆะ receiveEvent (int howMany) { int x = Wire.read (); ถ้า (x == 5) { // Serial.println ("ได้รับ 5"); ani_mode = 0; } ani_mode = x; // Serial.println (ani_mode); } /////////////////////////////////////////// โมฆะ requestEvent() {

ถ้า (btnMode == จริง) {

Wire.write(5); // Serial.println("5 보냄"); } อื่น ๆ { Wire.write(0); }

}

เป็นโมฆะ ani0 () {

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

เป็นโมฆะ ani1 () {

// Serial.println("1"); ถ้า (pNumber == 0) { สำหรับ (int i = 0; i < num; i++) { สว่าง = 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; sat[a1[a] = 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; เสาร์[c1[c] = 95; สว่าง[c1[c] = 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; sat[a2[a] = 95; สว่าง[a2[a] = 100; } สำหรับ (int d = 0; d < 4; d++) { hue[d2[d] = 63; เสาร์[d2[d] = 95; สว่าง[d2[d] = 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};//yellow 06 สำหรับ (int a = 0; a < 6; a++) { hue[a14[a] = 35; sat[a14[a] = 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};//yellow สำหรับ (int a = 0; a < 6; a++) { hue[a3[a] = 53; sat[a3[a] = 95; สว่าง[a3[a] = 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; sat[a4[a] = 95; สว่าง[a4[a] = 100; }

สำหรับ (int b = 0; b <1; b++) { เฉดสี [b4 = 210; เสาร์[b4 = 95; สดใส[b4 = 100; } สำหรับ (int c = 0; c <1; c++) { hue[c4[c] = 307; เสาร์[c4[c] = 95; สว่าง[c4[c] = 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; sat[a5[a] = 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};//yellow สำหรับ (int a = 0; a < 6; a++) { hue[a6[a] = 53; sat[a6[a] = 95; สว่าง[a6[a] = 100; } } else if (pNumber == 7) { for (int i = 0; i < num; i++) { bright = 0; gValue = 1; } int c7 = {34, 35, 46, 47, 48, 49};//purple for (int c = 0; c < 6; c++) { hue[c7[c] = 307; เสาร์[c7[c] = 95; สว่าง[c7[c] = 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[c] = 95; สว่าง[c8[c] = 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[c] = 95; สว่าง[c9[c] = 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; เสาร์[c10[c] = 95; สว่าง[c10[c] = 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; เสาร์[c11[c] = 95; สว่าง[c11[c] = 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; เสาร์[c12[c] = 95; สว่าง[c12[c] = 100; } } else if (pNumber == 13) { สำหรับ (int i = 0; i < num; i++) { bright = 0; gValue = 1; } int a13 = {34, 35}; // สีเหลือง int b13 = {47}; //สีน้ำเงิน int c13 = {48}; //สีม่วงสำหรับ (int a = 0; a < 2; a++) { hue[a13[a] = 53; sat[a13[a] = 95; สว่าง[a13[a] = 100; } สำหรับ (int b = 0; b < 1; b++) { hue[b13 = 210; เสาร์[b13 = 95; สดใส[b13 = 100; } สำหรับ (int c = 0; c <1; c++) { hue[c13[c] = 307; เสาร์[c13[c] = 95; สดใส[c13[c] = 100; } } pNumber = pNumber + 1;

ถ้า (pNumber == 14) {

pNumber = 0; } }

เป็นโมฆะ ani2 () {

// Serial.println("2"); curM ยาวที่ไม่ได้ลงนาม = millis();

ถ้า (curM - preM >= 10) {

preM = curM; สำหรับ (int i = 0; i < num; i++) { if (hue = 360) { gValue = -1; } สี = สี + gValue; } เคาน์เตอร์++; if (ตัวนับ == 360) { // Serial.print ("ตัวนับ: "); // Serial.println (เคาน์เตอร์); // Serial.println (curM); ตัวนับ = 0; ani2_Counter = 0; } } }

เป็นโมฆะ ani3 () {

// Serial.println("3"); } //////////////////////////////////////////// เป็นโมฆะ readyState () { / / Serial.println("พร้อม"); } /////////////////////////////////////////// void btnEvent(int b_interval) { 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; } } } } /////////////////////////////////////////// โมฆะ setPixels (int k) { สำหรับ (int i = 0; i < k; i++) { H2R_HSBtoRGB(hue, sat, bright, colors); int num1 = ฉัน * 3; strip.setPixelColor(num1, สี[0], สี[1], สี[2]); strip.setPixelColor(num1 + 1, สี[0], สี[1], สี[2]); strip.setPixelColor(num1 + 2, สี[0], สี[1], สี[2]); } strip.show(); }

ขั้นตอนที่ 20: รูปแบบ

รูปแบบ!
รูปแบบ!
รูปแบบ!
รูปแบบ!

โครงการนี้มีรูปสามเหลี่ยมหลายรูปที่เป็นรูปหกเหลี่ยม เพื่อให้คุณสามารถสร้างรูปแบบสามมิติตามการออกแบบแสงของคุณ! แค่กดแต่ละชิ้นก็ไล่สีต่างๆ กันได้เลย และเมื่อสีที่ต้องการออกมาก็กดตรงมือที่กดแล้วจะส่องประกายสวยงามตามสีที่ต้องการได้เลย!

แนะนำ: