สารบัญ:
2025 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2025-01-13 06:58
สิ่งนี้เริ่มต้นเมื่อฉันต้องการพื้นที่จัดเก็บเพิ่มเติมถัดจากโต๊ะ แต่ฉันต้องการให้มีการออกแบบพิเศษบางอย่าง ทำไมไม่ลองใช้แถบไฟ LED ที่น่าทึ่งซึ่งสามารถระบุสีแต่ละอันและใช้สีอะไรก็ได้ล่ะ ฉันจดบันทึกเกี่ยวกับตัวชั้นวางในขั้นตอนต่อไป แต่นี่คือสิ่งที่คุณต้องตกแต่งชั้นวางของคุณ:- สำรองแถบ LED สองสามเมตร ด้วยกาว ~ $ 40- Arduino nano, ~ $ 10 (จริง ๆ แล้ว Arduino ใด ๆ) - ต่อสายสีขาวหรือสีอะไรก็ได้ที่ชั้นวางของคุณเป็นจริง - สายเชื่อมต่อสองสามเส้น (อุปกรณ์เสริม) - ที่ชาร์จสมาร์ทโฟนสำรอง (เพื่อจ่ายไฟให้กับ Arduino ปลั๊ก usb)- บัดกรีและหัวแร้ง เริ่มที่นี่ถ้าคุณยังไม่รู้วิธีบัดกรี- เครื่องปอกสายไฟ
ขั้นตอนที่ 1: บันทึกย่อเกี่ยวกับชั้นวาง
สำหรับข้อมูลเท่านั้น นี่คือสิ่งที่ฉันใช้เพื่อสร้างชั้นวางที่ซื้อใน Amazon หรือโฮมดีโป:- ชั้นวางหนังสือ $50- ชั้นวางลูกบาศก์ 4x2 $70- ชั้นวางลูกบาศก์ 3x2 อีกชั้นหนึ่ง $57 เพื่อไปถึงผนังที่ หน้าโต๊ะฉันไม่ได้ให้รายละเอียดมากนักเกี่ยวกับการประกอบ แต่เป็นการยึดลูกบาศก์ด้านบนเข้าด้วยกันและกับผนังด้วยขายึดสำหรับงานหนัก ทำด้วยความช่วยเหลือจากผู้อื่นและใช้สามัญสำนึกของคุณ … หรือของเธอ อาจเป็นความคิดที่ดี อย่างไรก็ตาม ให้วางวงเล็บที่มุมของลูกบาศก์ที่คุณไม่เห็นจากที่ที่เป็นธรรมชาติที่สุดในห้อง
ขั้นตอนที่ 2: ติดแถบ LED
ใช้กรรไกรตัดแถบ LED เป็นหลายชิ้นตามต้องการ ในกรณีของฉัน มีไฟ LED 8 ดวง 14 ดวง (=8") จากนั้นติดไว้ในกล่อง shlef ของคุณ แต่โปรดทราบว่า:- ไฟ LED เหล่านั้นจะสว่างมาก และคุณไม่ต้องการให้มองเห็นโดยตรง เนื่องจากชั้นวางของฉันอยู่เหนือระดับสายตาทั้งหมด ฉันจึงวางแถบไว้ที่ด้านล่างของลูกบาศก์ ถ้าของคุณอยู่บนพื้น คุณต้องวางมันที่ส่วนบนเพื่อที่คุณจะไม่มองเห็นมันเมื่อยืนอยู่ข้างๆ. - คุณอาจต้องการติดแถบไว้ใกล้กับขอบของชั้นวางเพราะสิ่งต่าง ๆ อาจจบลงด้วยการเติมกล่องและคุณไม่ต้องการให้พวกมันบังแสงจาก LEDs - ให้เกียรติ ("เคารพ…!!") ทิศทางที่ระบุบนแถบ ลูกศรแสดงทิศทางที่ข้อมูลไหล จาก Arduino ไปยังส่วนท้ายของแถบ หมายเหตุเกี่ยวกับวิธีการทำงาน: LED WS2812 แต่ละดวงประกอบด้วยไมโครชิปที่รับตรรกะ 0 วินาที และ 1 วินาที ที่อัตรา 800kHz หลังจากเปิดเครื่อง LED ตัวแรกจะฟังสัญญาณนี้และลบ 3 ไบต์แรก (24 บิต) ออกจากการไหลของบิต ใช้ข้อมูลนี้ mation เพื่อกำหนดสีและส่งสัญญาณที่เหลือไปยัง LED ถัดไปซึ่งจะดำเนินการเดียวกัน LED แต่ละตัวมีอินพุตและเอาต์พุต ดังนั้น ทิศทางจึงมีความสำคัญ - จุดก่อนหน้านี้บ่งบอกว่าคุณต้องคิดล่วงหน้าว่าอาร์ดิโนจะป้อนแถบใดและแถบนั้นจะไปในทิศทางใด ในกรณีของฉัน มันค่อนข้างง่าย โดยซ่อน Arduino ไว้ในลูกบาศก์ที่ไกลที่สุด ซึ่งฉันสามารถเข้าถึงสายไฟแบบกระจายที่วิ่งอยู่ในมุมห้องได้อย่างง่ายดาย แถบจะผ่านลูกบาศก์ทั้งหมดในระดับนั้น จากนั้นขึ้น และผ่านลูกบาศก์ทั้งหมดของระดับอื่น
ขั้นตอนที่ 3: Pre-tin the Strip Connections
ซึ่งหมายความว่าคุณวางบัดกรีที่ปลายเชื่อมต่อแต่ละด้านของแถบ LED ของคุณ ด้วยชิ้นส่วน 14 ชิ้นของฉันเพื่อเชื่อมต่อเข้าด้วยกันและการเชื่อมต่อ 3 จุดที่ปลายแต่ละด้าน (กราวด์ 5V สัญญาณ) ที่ทำให้บัดกรี 84 หยด แต่มันจะทำให้ชีวิตคุณง่ายขึ้นประมาณ 84 เท่า ในขั้นตอนต่อไป !!!
ขั้นตอนที่ 4: เชื่อมต่อแถบ
- ด้วยที่ปอกสายไฟ ให้ถอดฉนวนเพียง 2 มม. ออกจากสายไฟของคุณ Pre-tin ลวด (โดยการให้ความร้อนด้วยหัวแร้งจนดูดซับบิตของบัดกรี)- บัดกรีให้ถูกต้องบนการเชื่อมต่อกราวด์ของแถบใดแถบหนึ่งเพื่อเชื่อมต่อ เนื่องจากคุณทำการชุบสีล่วงหน้าแล้ว ก็แค่กดหัวแร้งบนลวดที่วางอยู่บนจุดเชื่อมต่อ - จากนั้นดึงลวดของคุณให้แน่นกับจุดเชื่อมของแถบอีกชิ้นหนึ่ง (กราวด์) แล้วตัดลวดให้ตรงที่ระดับ ของจุดต่อ- ถอดฉนวน 2 มม. พรีดีบุกแล้วบัดกรีเข้ากับขั้วต่อ- ณ จุดนั้น คุณควรมีสายที่ต่อแถบของคุณไว้และไม่ควรมีลักษณะหลวม ดำเนินการอีกครั้งสำหรับขั้วต่อ SIGNAL และ สำหรับขั้วต่อ 5V
ขั้นตอนที่ 5: เชื่อมต่อ Arduino และ Code
เว็บไซต์ที่ยอดเยี่ยมของ Adafruit มีแนวปฏิบัติที่ดีที่สุดที่เป็นประโยชน์อย่างมากเกี่ยวกับการเชื่อมต่อ Arduino กับแถบ LED (หนึ่งแบรนด์ "Neo-Pixel") มีความชัดเจนมากและคุณควรอ่าน:https://learn.adafruit.com/ adafruit-neopixel-uberguide/overviewhttps://learn.adafruit.com/adafruit-neopixel-uberguide/best-practiceshttps://learn.adafruit.com/adafruit-neopixel-uberguide/arduino-library- เชื่อมต่อ PIN6 (ใน ตัวอย่างโค้ดร้องเราใช้พิน 6) กับ SIGNAL ของ LED ตัวแรก - เชื่อมต่อ Arduino Ground กับ LED GND ตัวแรก - จ่ายไฟให้กับแถบ LED ของคุณด้วยแหล่งจ่ายไฟ 5V และเสียบ Arduino ของคุณกับเครื่องชาร์จ usb - คำเตือน: หากคุณจ่ายไฟให้กับแถบผ่าน Arduino อย่าใช้พิน "+5V" จาก Arduino พินนี้เกี่ยวข้องกับวงจรที่ละเอียดอ่อนบน Arduino และอาจไหม้เนื่องจากกระแสไฟที่ดึงโดยแถบ LED คุณอาจลองใช้หมุด "Vin" แทน หากคุณวางแผนที่จะวาดกระแสไฟฟ้ามากกว่า 1A (~ 20 ถึง 50 mA ต่อ LED) ให้เชื่อมต่อแหล่งจ่ายไฟ 5v เข้ากับแถบ LED โดยตรง (และจะต้องแชร์กราวด์กับ Arduino) นี่คือรหัสที่ฉันใช้สำหรับ การเคลื่อนไหวช้าของสีผ่านลูกบาศก์ นำมาและดัดแปลงโดยตรงจากตัวอย่างไลบรารี Neo_Pixel:#include "Adafruit_NeoPixel.h"#define PIN 6// Parameter 1 = จำนวนพิกเซลในแถบ// Parameter 2 = Arduino pin number (ส่วนใหญ่ถูกต้อง)// Parameter 3 = แฟล็กประเภทพิกเซล เพิ่มเข้าด้วยกันตามต้องการ: // NEO_KHZ800 800 KHz bitstream (ผลิตภัณฑ์ NeoPixel ส่วนใหญ่ที่มีไฟ LED WS2812)// NEO_KHZ400 400 KHz ('v1' แบบคลาสสิก (ไม่ใช่ v2) พิกเซล FLORA, ไดรเวอร์ WS2811)// NEO_GRB Pixels คือ ต่อสายสำหรับ GRB bitstream (ผลิตภัณฑ์ NeoPixel ส่วนใหญ่)// NEO_RGB Pixels ถูกต่อสายสำหรับ RGB bitstream (พิกเซล V1 FLORA ไม่ใช่ v2)Adafruit_NeoPixel strip = Adafruit_NeoPixel(8*14, PIN, NEO_GRB + NEO_KHZ800); // สำคัญ: เพื่อลดความเหนื่อยหน่ายของ NeoPixel เพิ่มตัวเก็บประจุ 1000 uF ข้าม// สายไฟของพิกเซล เพิ่มตัวต้านทาน 300 - 500 โอห์มในการป้อนข้อมูลของพิกเซลแรก // และลดระยะห่างระหว่าง Arduino และพิกเซลแรก หลีกเลี่ยงการเชื่อมต่อ// บนวงจรที่มีกระแสไฟ…หากคุณต้องการ เชื่อมต่อ GND ก่อน.void setup() {strip.begin();strip.show(); // เริ่มต้นพิกเซลทั้งหมดเป็น 'off'}void loop() {rainbowCycle(20);}void rainbowCycle(uint8_t wait) {uint16_t i, j;for(j=0; j<256; j++) {for(i= 0; i< strip.numPixels(); i++) {strip.setPixelColor(i, Wheel(((i) * 256 / strip.numPixels()) + j) & 255));}strip.show(); ล่าช้า(รอ);}}// ป้อนค่า 0 ถึง 255 เพื่อรับค่าสี// สีคือการเปลี่ยน r - g - b - กลับไปที่ r.uint32_t Wheel(byte WheelPos) {if(WheelPos < 85) {return strip. Color(WheelPos * 3, 255 - WheelPos * 3, 0);} else if(WheelPos < 170) {WheelPos -= 85;return strip. Color (255 - WheelPos * 3, 0, WheelPos * 3));} อื่น {WheelPos -= 170;return strip. Color(0, WheelPos * 3, 255 - WheelPos * 3);}}
รางวัลที่ 3 การประกวดผู้เขียนบท ธารุณ อุปถัยยา