สารบัญ:
วีดีโอ: ไฟลานแบบโต้ตอบ, ไฟทางเดิน: 3 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:06
ฉันต้องการสร้างไฟสนามแบบอินเทอร์แอคทีฟสำหรับสวนหลังบ้านของฉัน แนวคิดก็คือ เมื่อมีคนเดินไปทางเดียว มันจะทำให้เกิดแอนิเมชั่นไปในทิศทางที่คุณกำลังเดิน ฉันเริ่มต้นด้วยไฟพลังงานแสงอาทิตย์ Dollar General $1.00
ขั้นตอนที่ 1: 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("วนรอบเสร็จสิ้นรอ"); }
แนะนำ:
ไฟ AC ขัดข้อง ไฟทางเดิน LED สำรองแบตเตอรี่: 8 ขั้นตอน
ไฟ AC ขัดข้อง ไฟทางเดิน LED ที่ใช้แบตเตอรี่สำรอง: ในช่วงที่ไฟฟ้าดับเมื่อเร็วๆ นี้ ในห้องใต้ดินที่มืดมิดที่สุด…แสงจะมีประโยชน์มากจริงๆ น่าเสียดายที่ไฟฉายของฉันอยู่ห่างออกไปไม่กี่ห้องที่มืดมิด ฉันคลำหาเล็กน้อย พบแสงสว่างและเดินไปที่ห้องแฟมิลี่ ของฉัน wi
การออกแบบเกมในการสะบัดใน 5 ขั้นตอน: 5 ขั้นตอน
การออกแบบเกมในการสะบัดใน 5 ขั้นตอน: การตวัดเป็นวิธีง่ายๆ ในการสร้างเกม โดยเฉพาะอย่างยิ่งเกมปริศนา นิยายภาพ หรือเกมผจญภัย
การตรวจจับใบหน้าบน Raspberry Pi 4B ใน 3 ขั้นตอน: 3 ขั้นตอน
การตรวจจับใบหน้าบน Raspberry Pi 4B ใน 3 ขั้นตอน: ในคำแนะนำนี้ เราจะทำการตรวจจับใบหน้าบน Raspberry Pi 4 ด้วย Shunya O/S โดยใช้ Shunyaface Library Shunyaface เป็นห้องสมุดจดจำใบหน้า/ตรวจจับใบหน้า โปรเจ็กต์นี้มีจุดมุ่งหมายเพื่อให้เกิดความเร็วในการตรวจจับและจดจำได้เร็วที่สุดด้วย
วิธีการติดตั้งปลั๊กอินใน WordPress ใน 3 ขั้นตอน: 3 ขั้นตอน
วิธีการติดตั้งปลั๊กอินใน WordPress ใน 3 ขั้นตอน: ในบทช่วยสอนนี้ ฉันจะแสดงขั้นตอนสำคัญในการติดตั้งปลั๊กอิน WordPress ให้กับเว็บไซต์ของคุณ โดยทั่วไป คุณสามารถติดตั้งปลั๊กอินได้สองวิธี วิธีแรกคือผ่าน ftp หรือผ่าน cpanel แต่ฉันจะไม่แสดงมันเพราะมันสอดคล้องกับ
การลอยแบบอะคูสติกด้วย Arduino Uno ทีละขั้นตอน (8 ขั้นตอน): 8 ขั้นตอน
การลอยแบบอะคูสติกด้วย Arduino Uno ทีละขั้นตอน (8 ขั้นตอน): ตัวแปลงสัญญาณเสียงล้ำเสียง L298N Dc ตัวเมียอะแดปเตอร์จ่ายไฟพร้อมขา DC ตัวผู้ Arduino UNOBreadboardวิธีการทำงาน: ก่อนอื่น คุณอัปโหลดรหัสไปยัง Arduino Uno (เป็นไมโครคอนโทรลเลอร์ที่ติดตั้งดิจิตอล และพอร์ตแอนะล็อกเพื่อแปลงรหัส (C++)