สารบัญ:
วีดีโอ: Holiday Ornament PCB: 3 ขั้นตอน (พร้อมรูปภาพ)
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:04
เฮ้ทุกคน!
ช่วงเวลานั้นของปีและฤดูกาลแห่งการแลกเปลี่ยนของขวัญก็ใกล้เข้ามาแล้ว โดยส่วนตัวแล้วฉันชอบทำสิ่งต่าง ๆ และแบ่งปันให้กับครอบครัว ปีนี้ฉันตัดสินใจทำเครื่องประดับวันหยุดโดยใช้ Atting85 และไฟ LED WS2812C 2020 บางรุ่น เครื่องประดับมีเส้นผ่านศูนย์กลางประมาณ 80 มม. ดังนั้นจึงเป็นเครื่องประดับที่มีขนาดเหมาะสมสำหรับต้นไม้ ถ้าคุณไม่ใช่คนต้นไม้ คุณรู้อะไรไหม มันทำให้เป็นเครื่องประดับโต๊ะที่ดีเช่นกัน ไฟ LED WS2812C 2020 เป็นไฟ LED ที่สว่างอย่างไม่น่าเชื่อ ดังนั้นอย่ากังวลว่าไฟจะสลัวเกินไป ฮ่าฮ่า ฉันได้ทดสอบที่ 3.3 โวลต์โดยใช้กระแสไฟ 0.013 แอมป์ จากนั้นสำหรับ 5 โวลต์ ปริมาณการใช้ปัจจุบันคือ 0.023 แอมป์ คุณสามารถจ่ายไฟให้กับบอร์ดนี้โดยใช้ไฟตรง 5 โวลต์ที่ด้านหลังหรือผ่านขั้วต่อไมโคร USB ที่ด้านหลัง ฉันสามารถเสียบสิ่งนี้เข้ากับแล็ปท็อปของฉันและเปิดเครื่องได้ นอกจากนี้ยังมีตัวเลือกที่ด้านหลังเพื่อจ่ายไฟให้กับแหล่งพลังงานอื่น ๆ ที่แรงดันไฟสูงสุด 30 โวลต์ แต่นั่นก็ทำให้เชื่อมั่นในเอกสารข้อมูลสำหรับตัวควบคุม 78L05 5V ฉันจะไม่ผลักมันไปไกลขนาดนั้น
โปรดอ่านคู่มือทั้งหมดก่อนสร้างสิ่งนี้ เรียนรู้จากความผิดพลาดของฉัน เพราะเชื่อฉันเถอะ ฉันมักจะทำสิ่งต่างๆ มากมายและสามารถแบ่งปันไข่มุกแห่งปัญญาได้
หากคุณสนใจที่จะซื้อ PCB แบบพรีเมดหรือเพียงแค่ PCB เอง โปรดเยี่ยมชมร้าน tindie ของฉัน
เสบียง
เริ่มจากเครื่องมือทั้งหมดที่คุณต้องใช้เพื่อสร้างหนึ่งในเครื่องประดับเหล่านี้ด้วยตัวเอง นี่เป็นหนึ่งในไม่กี่โครงการของฉันที่ไม่ต้องการเครื่องมือจำนวนมากซึ่งเหมาะสำหรับคุณ!
เครื่องมือ
- ปืนความร้อน (เครื่องมือหลัก)/หัวแร้ง (ตัวจับผิด)
- แหนบ ESD
- ไอโซโพรพิลแอลกอฮอล์
- ลายฉลุ SMT (แนะนำเป็นอย่างยิ่ง)
- วางประสาน (ฉันใช้การวางประสานแบบไร้สารตะกั่วที่อุณหภูมิต่ำที่ขายใน Amazon)
เสบียง
- x10 WS2812 2020 LEDs
- x1 Attiny85 ไมโครคอนโทรลเลอร์
- x11 0.1uf 0603 ตัวเก็บประจุ
- x1 0.1uf 0402 Capacitor (คุณสามารถใช้ 0603 Cap)
- ขั้วต่อไมโคร USB SMD x1
- x1 ตัวต้านทาน 1.5K โอห์ม
- x1 4.7uf 0805 ตัวเก็บประจุ
- x1 78L05 5V เครื่องปรับลม
- x1 SOD123 Diode (ฉันใช้ลวดแทนเพราะไม่จำเป็น แต่ฉันลืมถอดออกเมื่อออกแบบบอร์ด)
- x2 SOD323 ไดโอด
- ตัวต้านทาน x2 66.5 Ohm (คุณสามารถใช้ตัวต้านทาน x2 24-Ohm ที่นี่ได้เช่นกัน ฉันเชื่อว่าคู่ที่ตรงกันจะทำได้จริง - อย่าอ้างฉัน)
ไม่จำเป็น
- x1 ตัวต้านทาน 24 โอห์ม
- x1 ตัวต้านทาน 30 โอห์ม
(สิ่งเหล่านี้มีไว้สำหรับตัวแบ่งแรงดันไฟฟ้าหากคุณต้องการวัดแรงดันไฟฟ้าขาเข้าสำหรับจอภาพแรงดันต่ำ - เพียงตัวเลือก)
ขั้นตอนที่ 1: การประกอบ
กระบวนการประกอบค่อนข้างตรงไปตรงมา ตรวจสอบให้แน่ใจว่าคุณได้จัดวางชิ้นส่วนต่างๆ อย่างถูกต้อง และไม่ควรประสบปัญหา คุณรู้อะไรไหม ถ้าคุณเป็นเหมือนฉันและไม่มีอะไรเกิดขึ้นเลยในครั้งแรก… ไม่มีอะไรเลย ฉันจะทำตามขั้นตอนการแก้ปัญหาในตอนท้าย
ก่อนอื่นคุณต้องมีลายฉลุนั้นก่อน… ฉันได้แนบไฟล์ PCB PDF ขนาด 1:1 เพื่อให้คุณสามารถแรสเตอร์บนเครื่องตัดเลเซอร์ของคุณเอง ถ้าคุณต้องการตัดให้คุณ ส่งข้อความมาว่าฉันจะทำแบบนั้นด้วย มิฉะนั้น การทำเช่นนี้ด้วยมือจะทำให้คุณมีฝีมือ $$
หากคุณมีประสบการณ์ในการทำ PCBs นี่คือที่ที่คุณจะดำเนินการต่อและรักษาความปลอดภัยลายฉลุของคุณ ให้กระจายวางบัดกรี bla bla bla ที่คุณได้รับ สำหรับผู้ที่ไม่เคยทำเช่นนี้ไม่ต้องกังวลดูวิดีโอ youtube หรือสองวิดีโอ ตรวจสอบให้แน่ใจว่าการจัดตำแหน่งของคุณสมบูรณ์แบบก่อนที่คุณจะวางบัดกรีและบีบมะนาวแบบง่าย ๆ
แกะลายฉลุออกอย่างระมัดระวัง และเริ่มวางชิ้นส่วนได้เลย!!
สังเกตรูปภาพที่ฉันวาดอย่างพิถีพิถันเพื่อคุณ ทำด้วยความรักและความเอาใจใส่
- สีม่วงเข้ม = 0.1uf 0603
- สีน้ำเงิน = ไดโอด
- Lime Green = 4.7 uf 0805 (น่าจะใช้ 0603 ได้)
- สีม่วง = สะพานลวด
- สีชมพู = ตัวต้านทานแบ่งแรงดัน
- ไฟ LED สีแดง = WS2812C (สังเกตการวางแนว ส่วนที่มืดกว่าจะอยู่ด้านล่าง)
- สีเหลือง = 78L05 5V ตัวควบคุม 100mA
คุณต้องการที่จะรู้ว่าเครื่องหมายสีเหลืองอื่น ๆ มีไว้เพื่ออะไร? คุณแน่ใจไหม? ก็… มันผิดพลาดได้! ฉันวางพื้นประหลาดผ่านในการติดตามสัญญาณ แท้จริงตบเบา ๆ ตรงกลางตกลง ทำไม… ฉันไม่รู้
ฉันพูดนอกเรื่อง หลังจากถอนผมออกอย่างเจ็บปวดเป็นเวลาหลายชั่วโมง ฉันก็รู้ตัวว่าผิดพลาด เพื่อที่จะแก้ไข ฉันต้องไม่เพียงแค่เจาะพื้นออกเท่านั้น แต่ต้องเจาะรูเล็กๆ อย่างเหลือเชื่อผ่านกระดานและต่อสัญญาณตามรอยด้วยลวดเส้นเล็ก ฉันใช้เทปพันสายไฟเหลวเพื่อยึดและปกปิดความผิดพลาดของฉัน คุณไม่สามารถมองเห็นได้อย่างดีเมื่อปิดบังแล้ว ขอบคุณพระเจ้า
ฉันจะแก้ไขปัญหานี้ด้วยหากคุณซื้อบอร์ดจากฉัน ไม่ต้องกังวลที่นั่น
ขั้นตอนที่ 2: การเข้ารหัส
ดังนั้น ก่อนที่ฉันจะออกแบบสิ่งนี้ ฉันคิดว่า "โอ้ LED WS2812 ขนาดเล็ก พวกเขาต้องใช้รหัสเดียวกันกับของ WS2812b นี่จะเป็นการเดินในสวนสาธารณะ!" ผิด
สิ่งเหล่านี้ไม่ได้ใช้ช่วงเวลาเดียวกันกับ LED WS2812b ดังนั้นจึงมีเส้นโค้งการเรียนรู้หรือภูเขาขึ้นอยู่กับความสะดวกสบายของคุณในการเข้ารหัส
หลังจากช่วงเวลา "Oh $hit" เล็กน้อย ฉันพบบล็อกนี้โดย Josh Levin ดังนั้นจงตะโกนให้เขาช่วยฉันคิดออก ฉันใช้รหัสของเขาเป็นจำนวนมากและแก้ไขให้ทำงานกับบอร์ดเหล่านี้ได้ ตรวจสอบบล็อกของเขาหากต้องการทำความเข้าใจว่าโค้ดนี้ทำงานอย่างไร รหัสที่ฉันโพสต์ทำให้สายรุ้งส่งผลกระทบ เป็นไปได้ดังนั้นให้สร้างสีทึบถ้าเป็นของคุณ
สิ่งเล็กน้อยอย่างหนึ่งคือฉันไม่สามารถหาวิธีหรี่ไฟ LED เหล่านี้ได้เนื่องจากสว่างมาก อาจมีใครบางคนสามารถแสดงความคิดเห็นและช่วยฉันได้
#รวม #define PIXELS 3000 #define PIXEL_PORT PORTB #define PIXEL_DDR DDRB #define PIXEL_BIT 0 #define T1H 700 #define T1L 320 #define T0H 320 #define T0L 700 #define RES 300000 #define NS_PER_SEC (1000000000L)_define #define NS_PER_CYCLE (NS_PER_SEC / CYCLES_PER_SEC) #define NS_TO_CYCLES(n) ((n) / NS_PER_CYCLE)
โมฆะอินไลน์ sendBit (บูล bitVal) {
if (bitVal) { asm ระเหย ("sbi %[port], %[bit] n\t" ".rept %[onCycles] n\t" "nop \n\t" ".endr \n\t " "cbi %[พอร์ต], %[บิต] n\t" ".rept %[offCycles] n\t" "nop \n\t" ".endr \n\t":: [พอร์ต] " ฉัน" (_SFR_IO_ADDR(PIXEL_PORT)), [บิต] "ฉัน" (PIXEL_BIT), [onCycles] "I" (NS_TO_CYCLES(T1H) - 2), [offCycles] "I" (NS_TO_CYCLES(T1L) - 2));
} อื่น {
asm ระเหย ("sbi %[port], %[bit] n\t" ".rept %[onCycles] n\t" "nop \n\t" ".endr \n\t" "cbi %[port], %[บิต] n\t" ".rept %[offCycles] n\t" "nop \n\t" ".endr \n\t":: [พอร์ต] "ฉัน" (_SFR_IO_ADDR(PIXEL_PORT)), [บิต] "ฉัน" (PIXEL_BIT), [onCycles] "ฉัน" (NS_TO_CYCLES(T0H) - 2), [offCycles] "I" (NS_TO_CYCLES(T0L) - 2));
} }
โมฆะแบบอินไลน์ sendByte (ไบต์ถ่านที่ไม่ได้ลงนาม) { สำหรับ (บิตถ่านที่ไม่ได้ลงชื่อ = 0; บิต < 8; บิต ++) { sendBit (บิตอ่าน (ไบต์, 7)); ไบต์ <<= 1; } }
เป็นโมฆะ ledsetup () {
bitSet(PIXEL_DDR, PIXEL_BIT); }
โมฆะอินไลน์ sendPixel (ถ่านที่ไม่ได้ลงชื่อ r, ถ่านที่ไม่ได้ลงชื่อ g, ถ่านที่ไม่ได้ลงชื่อ b) {
sendByte(g); // Neopixel ต้องการสีเป็นสีเขียวแล้วสีแดงแล้วสีน้ำเงินเพื่อ sendByte(r); sendByte(b); }
โมฆะแสดง () {
_delay_us((RES / 1000UL) + 1); // ปัดเศษขึ้นเนื่องจากการดีเลย์ต้อง _at_least_ นานขนาดนี้ (สั้นเกินไปอาจไม่ทำงาน นานเกินไปไม่ใช่ปัญหา) }
เป็นโมฆะ showColor (ถ่านที่ไม่ได้ลงชื่อ r, ถ่านที่ไม่ได้ลงชื่อ g, ถ่านที่ไม่ได้ลงชื่อ b) {
cli(); สำหรับ(int p=0; p
8;
ขั้นตอนถ่านที่ไม่ได้ลงชื่อ = currentPixelHue & 0xff; สวิตช์ (เฟส) { กรณีที่ 0: sendPixel (~ ขั้นตอน, ขั้นตอน, 0); หยุดพัก; กรณีที่ 1: sendPixel(0, ~ขั้นตอน, ขั้นตอน); หยุดพัก;
กรณีที่ 2:
sendPixel(ขั้นตอน, 0, ~ขั้นตอน); หยุดพัก; } currentPixelHue+=pixelAdvance; } sei(); แสดง(); firstPixelHue += frameAdvance; } }
การตั้งค่าเป็นโมฆะ () {
ledsetup(); }
วงเป็นโมฆะ () {
วงจรรุ้ง (1000, 10, 10); กลับ; }
ขั้นตอนที่ 3: เสร็จสิ้นทั้งหมด
หวังว่าทุกอย่างจะทำงานได้ ณ จุดนี้ แต่ถ้าไม่ใช่ เรามาจบด้วยการแก้ไขปัญหากันเถอะ
1. Arduino ไม่รู้จักบอร์ด - ตรวจสอบให้แน่ใจว่าคุณได้ติดตั้งไลบรารี digispark และอ่านวิธีใช้บอร์ด digispark แล้ว
2. รหัสไม่อัปโหลด - คุณต้องกดอัปโหลดแล้วเสียบโมดูลเข้ากับคอมพิวเตอร์ โง่ ฉันรู้ แต่นั่นเป็นวิธีการทำงาน
3. บอร์ดยังคงไม่ทำงาน - ตรวจสอบให้แน่ใจว่าสายเคเบิล micro-USB ของคุณอนุญาตให้ใช้ข้อมูลและพลังงาน ไม่ใช่สายเคเบิลทั้งหมด คุณสามารถจินตนาการได้ว่าฉันคิดเรื่องนี้ออกยาก
4. ยังไม่มีอะไรเลย - ไดโอดของคุณอาจถอยหลังได้ - ตรวจสอบด้วยมัลติมิเตอร์สำหรับการวางแนวที่ถูกต้อง
5. ไฟ LED กะพริบแปลก ๆ - นี่อาจเป็นปัญหาของรหัสหรือไฟ LED ดวงใดดวงหนึ่งของคุณไม่ได้นั่งบนแผ่นสัญญาณอย่างถูกต้อง
6. ไฟ LED 3 ดวงสุดท้ายเลอะ - อ้า! คุณพบความผิดพลาดในการออกแบบของฉัน ตรวจสอบให้แน่ใจว่าได้เจาะกราวด์ - ตรวจสอบด้วยความต่อเนื่องของมัลติมิเตอร์ระหว่างสัญญาณกับกราวด์ จากนั้นตรวจสอบให้แน่ใจว่าสายสะพานของคุณถูกแยกออกจากพื้น
7. ยังพังอยู่ - ฉันแก้ปัญหาไม่ได้จริงๆ ส่งข้อความหาฉัน
ฉันหวังว่าคุณจะสนุกกับการสอนของฉัน! กรุณาแสดงความคิดเห็นถ้าคุณทำ
ดีที่สุด, นิค
แนะนำ:
ตั้ง @Holiday = Valentines_Day: 7 ขั้นตอน (พร้อมรูปภาพ)
Set @Holiday = Valentines_Day: คำแนะนำนี้สามารถแก้ไขได้สำหรับวันหยุดสำคัญ ๆ แต่นักเรียนของฉันต้องการมุ่งเน้นไปที่สิ่งที่พวกเขาสามารถทำได้ในวันวาเลนไทน์ ในการออกแบบนี้ มือของนักเรียนเป็นวัสดุนำไฟฟ้าที่ทำให้วงจรสมบูรณ์เมื่อ "สูง
Easy LED Holiday Light Show: พ่อมดในฤดูหนาว - WS2812B LED Strip พร้อม FastLED และบทช่วยสอน Arduino: 6 ขั้นตอน
Easy LED Holiday Light Show: พ่อมดในฤดูหนาว | WS2812B LED Strip พร้อม FastLED และ Arduino Tutorial: ฉันออกแบบและตั้งโปรแกรมการแสดงไฟในวันหยุดนี้เพื่อแสดงทุกที่ ฉันใช้แถบนำ WS2812B หนึ่งแถบที่มีความหนาแน่นของพิกเซล 30 พิกเซล/เมตร เนื่องจากฉันใช้ 5 เมตร ฉันมีไฟ LED ทั้งหมด 150 ดวง ฉันเก็บรหัสไว้อย่างเรียบง่ายเพื่อให้ทุกคนยังใหม่กับการใช้ WS2812
Lighted Animated Holiday Pin: 9 ขั้นตอน (พร้อมรูปภาพ)
Lighted Animated Holiday Pin: เมื่อฉันออกแบบโปรเจ็กต์นี้ครั้งแรก ฉันไม่ได้คาดหวังว่าจะเผยแพร่มันแบบโอเพนซอร์ส ฉันคิดว่ามันเป็นความคิดที่ดีและมีศักยภาพทางการค้าในฐานะสินค้าที่ฉันสามารถขายได้ในงานแสดงงานฝีมือ อาจเป็นเพราะขาดประสบการณ์ หรือบางที
LED Holiday Star: 5 ขั้นตอน
LED Holiday Star: คำแนะนำนี้จะแสดงวิธีสร้างดาววันหยุดโดยใช้ไฟ LED ใช้ประดับโต๊ะ โต๊ะทำงาน หรือในบ้านก็ได้
LED Holiday TuTu: 6 ขั้นตอน (พร้อมรูปภาพ)
LED Holiday TuTu: วิธีทำให้คนเก่งน่ารักมาคุยกับคุณในปาร์ตี้วันหยุดปีนี้ ตูตูปาร์ตี้กะพริบตา eTextile ที่น่าดึงดูดใจ! โครงการ eTextile ที่เรียบง่าย รวดเร็ว สนุก และมีประสิทธิภาพสำหรับทุกคน