สารบัญ:

ไฟลานแบบโต้ตอบ, ไฟทางเดิน: 3 ขั้นตอน
ไฟลานแบบโต้ตอบ, ไฟทางเดิน: 3 ขั้นตอน

วีดีโอ: ไฟลานแบบโต้ตอบ, ไฟทางเดิน: 3 ขั้นตอน

วีดีโอ: ไฟลานแบบโต้ตอบ, ไฟทางเดิน: 3 ขั้นตอน
วีดีโอ: ไฟฟ้า 3 เฟสคืออะไร ? ไฟฟ้า 3 เฟส มีกี่โวลต์ ? 2024, พฤศจิกายน
Anonim
ไฟลานแบบโต้ตอบ, ไฟทางเดิน
ไฟลานแบบโต้ตอบ, ไฟทางเดิน
ไฟสนามแบบโต้ตอบ, ไฟทางเดิน
ไฟสนามแบบโต้ตอบ, ไฟทางเดิน

ฉันต้องการสร้างไฟสนามแบบอินเทอร์แอคทีฟสำหรับสวนหลังบ้านของฉัน แนวคิดก็คือ เมื่อมีคนเดินไปทางเดียว มันจะทำให้เกิดแอนิเมชั่นไปในทิศทางที่คุณกำลังเดิน ฉันเริ่มต้นด้วยไฟพลังงานแสงอาทิตย์ Dollar General $1.00

ขั้นตอนที่ 1: Gut the Solor Lights

Gut the Solor Lights
Gut the Solor Lights
Gut the Solor Lights
Gut the Solor Lights
Gut the Solor Lights
Gut the Solor Lights

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

ขั้นตอนที่ 2: การติดตั้ง Better Lights

การติดตั้งไฟที่ดีกว่า
การติดตั้งไฟที่ดีกว่า
การติดตั้งไฟที่ดีกว่า
การติดตั้งไฟที่ดีกว่า
การติดตั้งไฟที่ดีกว่า
การติดตั้งไฟที่ดีกว่า

สำหรับ led ฉันใช้กันน้ำ ws2811b ซึ่งสามารถพบได้ที่นี่

www.ebay.com/itm/50-X-12mm-LED-Module-RGB-…

เดิมทีฉันวางแผนที่จะวางเซ็นเซอร์ PIR ไว้ในไฟพลังงานแสงอาทิตย์ แต่สิ่งนี้พิสูจน์แล้วว่าเป็นปัญหาเพราะโดยพื้นฐานแล้วเซ็นเซอร์ไม่สามารถมองผ่านพลาสติกได้ มันต้องมีคุณสมบัติในการกรองรังสียูวีบางประเภท ฉันก็เลยเลือกอะไรแบบนี้มากกว่า

www.thingiverse.com/thing:2590216

ขั้นตอนที่ 3: การเข้ารหัส

หากคุณต้องการให้ไฟไม่ใช้เซ็นเซอร์หรือวิ่งตลอดเวลา ให้มองหาสถานที่ที่เขียนว่า "กำลังเปลี่ยนสถานะแฟล็ก" แล้วตั้งค่าเป็นอีเธอร์ 1 หรือ 0 ฉันจะเพิ่มรูปภาพเมื่อฉันทำสิ่งนี้ให้เสร็จด้วยตัวเอง มันยังอยู่ในระหว่างดำเนินการ แต่ฉันคิดว่ามันเรียบร้อยเกินไปที่จะไม่แบ่งปันในทันที ขอบคุณที่มองหา

การตั้งค่าเป็นโมฆะ () {

// ใส่รหัสการตั้งค่าของคุณที่นี่ เพื่อเรียกใช้ครั้งเดียว: FastLED.addLeds(leds, NUM_LEDS); Serial.begin(9600); pinMode (ปุ่ม Pin1, INPUT); pinMode(ปุ่มPin2, INPUT); }

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

Serial.println (FlagState);

ถ้า (FlagState == 0) { ForwardLeds (); } if(FlagState == 1){ RevLeds(); } if(FlagState == 2){ รอ (); } }

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

FirstLed = -1; LastLed = 16; สำหรับ (int i=0; i <8; i++) { LastLed--; FirstLed++; ไฟ LED[LastLed] = CRGB::สีขาว; ไฟ LED[FirstLed] = CRGB::สีขาว; ล่าช้า (750); FastLED.show(); Serial.print ("บัตรสีขาว"); Serial.print (i); Serial.println ("จาก 8"); } FirstLed = -1; LastLed = 16; สำหรับ (int i=0; i <8; i++) { LastLed--; FirstLed++; ไฟ LED[LastLed] = CRGB::สีน้ำเงิน; ไฟ LED[FirstLed] = CRGB::สีน้ำเงิน; ล่าช้า (250); FastLED.show(); Serial.print ("Blue Pass "); Serial.print (i); Serial.println ("จาก 8"); } FirstLed = -1; LastLed = 16; สำหรับ (int i=0; i <8; i++) { LastLed--; FirstLed++; ไฟ LED[LastLed] = CRGB::สีม่วง; ไฟ LED[FirstLed] = CRGB::Purple; ล่าช้า (250); FastLED.show(); Serial.print ("บัตรแดง"); Serial.print (i); Serial.println ("จาก 8"); } FirstLed = -1; LastLed = 16; สำหรับ (int i=0; i <8; i++) { LastLed--; FirstLed++; ไฟ LED[LastLed] = CRGB::Black; ไฟ LED[FirstLed] = CRGB::Black; ล่าช้า (250); FastLED.show(); Serial.print (" ปิดไฟ LED "); Serial.print (i); Serial.println ("จาก 8"); } FlagState = 2; // เปลี่ยนสถานะแฟล็ก } void RevLeds(){ Serial.println("in reverse"); FirstLed = 8; LastLed = 7; สำหรับ (int i=0; i <8; i++){ LastLed++; FirstLed--; ไฟ LED[LastLed] = CRGB::สีขาว; ไฟ LED[FirstLed] = CRGB::สีขาว; ล่าช้า (750); FastLED.show(); Serial.print (" ผ่านสีขาว "); Serial.print (i); Serial.println ("จาก 8"); } FirstLed = 8; LastLed = 7; สำหรับ (int i=0; i <8; i++){ LastLed++; FirstLed--; ไฟ LED[LastLed] = CRGB::สีน้ำเงิน; ไฟ LED[FirstLed] = CRGB::สีน้ำเงิน; ล่าช้า (250); FastLED.show(); Serial.print (" ผ่านสีน้ำเงิน "); Serial.print (i); Serial.println ("จาก 8"); } FirstLed = 8; LastLed = 7; สำหรับ (int i=0; i <8; i++){ LastLed++; FirstLed--; ไฟ LED[LastLed] = CRGB::สีม่วง; ไฟ LED[FirstLed] = CRGB::Purple; ล่าช้า (250); FastLED.show(); Serial.print (" ผ่านสีแดง "); Serial.print (i); Serial.println ("จาก 8"); }

FirstLed = 8;

LastLed = 7; สำหรับ (int i=0; i <8; i++){ LastLed++; FirstLed--; ไฟ LED[LastLed] = CRGB::Black; ไฟ LED[FirstLed] = CRGB::Black; ล่าช้า (250); FastLED.show(); Serial.print (" การปิดไฟ Led "); Serial.print (i); Serial.println ("จาก 8"); } FlagState = 2; // เปลี่ยนสถานะแฟล็ก } เป็นโมฆะรอ () { buttonState1 = digitalRead (buttonPin1); buttonState2 = digitalRead (buttonPin2); ถ้า (buttonState1 == สูง) { Serial.println ("ส่งต่อทริกเกอร์"); สถานะธง = 0; } อื่น ๆ if(buttonState2 == HIGH){ Serial.println("Rev triggered"); สถานะธง = 1; } Serial.println("วนรอบเสร็จสิ้นรอ"); }

แนะนำ: