สารบัญ:
2025 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2025-01-13 06:58
ทันเวลาสำหรับวันวาเลนไทน์ แกดเจ็ตเล็กๆ ที่จะมอบให้คนรักของคุณ: หัวใจที่วนเวียนอยู่ในแอนิเมชั่นหลายแบบ เหมาะอย่างยิ่งบนโต๊ะหรือโต๊ะเพื่อให้คนที่คุณรักจดจำคุณได้!
หัวใจที่เคลื่อนไหวได้นี้มีขนาดกะทัดรัดและเรียบง่ายมาก เพียงเปิดสวิตช์แล้วไฟ LED 12 ดวงที่สร้างรูปหัวใจจะหมุนเวียนไปตามแอนิเมชั่นที่คุณสามารถปรับแต่งได้อย่างเต็มที่
มันวิ่งออกจาก coincell และใช้ไมโครคอนโทรลเลอร์ทั่วไปราคาถูกอย่าง ATTINY13 8 พิน ซึ่งสามารถตั้งโปรแกรมได้อย่างสะดวกด้วย Arduino Uno ด้วยเทคนิคพิเศษของ charlieplexing ไฟ LED 12 ดวงสามารถควบคุมแยกกันได้โดยใช้ขาออกเพียง 4 ขาเท่านั้น
ขั้นตอนที่ 1: วัสดุและเครื่องมือ:
วัสดุ:
- ไฟ LED สีแดง 12 5 มม.
- บอร์ดต้นแบบขนาด 3x7 ซม. (10x24 รู สีเขียวหนาสองหน้าดีที่สุด)
- ไมโครคอนโทรลเลอร์ Attiny13A
- ซ็อกเก็ต DIP 8 พิน
- มินิสวิตช์
- ที่ใส่เซลล์เหรียญ
- เซลล์เหรียญ CR2032
- ลวดเชื่อมแบบควั่นหลากสี 20 ซม
- ลวดแกนแข็งหนา 15 ซม.
เครื่องมือ:
- Arduino Uno เพื่อตั้งโปรแกรม ATTINY
- หัวแร้ง
- ที่หนีบลวด
ขั้นตอนที่ 2: สร้างหัวใจ
ไฟ LED 12 ดวงถูกใส่ลงในบอร์ดต้นแบบโดยจัดเรียงเป็นรูปหัวใจดังแสดงในแผนภาพ ให้ความสนใจกับขั้ว: ไฟ LED 6 ดวงมีขั้วบวกด้านขวาและขั้วลบด้านซ้าย ไฟ LED 6 ดวงถูกเสียบในทางตรงกันข้าม ปิดไฟ LED ด้วยกระดาษแก้วเพื่อป้องกันไม่ให้หลุดออกมาในขณะที่เราทำงานที่ด้านหลัง
ลีดของไฟ LED จะต้องเชื่อมต่อในรูปแบบที่ซับซ้อน งอหมุดแล้วตัดออกตามแผนภาพ ระวังแผนภาพแสดงด้านหน้า ขณะที่เรากำลังดำเนินการอยู่ด้านหลัง ดังนั้นควรมีลักษณะเป็นภาพสะท้อนของไดอะแกรม ดังที่แสดงในรูปภาพ ตอนนี้ตะกั่วสามารถบัดกรีเข้าด้วยกันและนำกระดาษแก้วออก
ทดสอบว่าใช้งานได้: หัวใจมีการเชื่อมต่อไฟฟ้าสี่จุดที่แสดงเป็นสีน้ำเงิน เขียว เหลือง และขาวในแผนภาพ เชื่อมต่อกราวด์กับการเชื่อมต่อหนึ่งและ +5V ในซีรีย์ด้วยตัวต้านทาน 1kOhm กับอีกอันหนึ่ง ไฟ LED 1 ดวงควรสว่างขึ้น และไฟ LED ทั้ง 12 ดวงควรสว่างด้วยวิธีนี้
ขั้นตอนที่ 3: เรียกใช้หัวใจจาก Arduino
อัปโหลดภาพสเก็ตช์ที่แนบไปยัง Arduino UNO หรือ Nano และติดหมุด D8-D11 เข้ากับจุดเชื่อมต่อไฟฟ้า 4 จุดของหัวใจ: D8 เป็นสีน้ำเงิน D9 เป็นสีเขียว D10 เป็นสีเหลือง และ D11 เป็นสีขาว หัวใจควรแสดงภาพเคลื่อนไหวที่มีความยาวประมาณ 1 นาที
โค้ดสามารถปรับแต่งเพื่อเปลี่ยนความเร็วหรือเปลี่ยนภาพเคลื่อนไหวได้ อาร์เรย์ 'patt' มีรูปแบบแอนิเมชั่น สองไบต์ของแต่ละขั้นตอนระบุว่าไฟ LED ดวงใดติดอยู่ในแต่ละขั้นตอน ไฟ LED มีหมายเลข 0-11 โดยเริ่มจากด้านล่างและหมุนทวนเข็มนาฬิกาไปรอบๆ LED0 สอดคล้องกับบิต 0, LED1 ถึงบิต 1 เป็นต้น
อาร์เรย์รูปแบบถูกเก็บไว้ในหน่วยความจำของโปรแกรม ซึ่งช่วยให้แอนิเมชั่นสมบูรณ์ยิ่งขึ้นกว่าที่เก็บใน RAM ร่างปัจจุบันมี 168 ขั้นตอน สำหรับ Arduino นั้นมีพื้นที่สำหรับอีกหลายพัน และแม้แต่ ATTINY13 ซึ่งมีหน่วยความจำโปรแกรมเพียง 1kByte ก็มีพื้นที่สำหรับประมาณ 400 ขั้น
ความเร็วของแอนิเมชั่นถูกกำหนดโดย 'สเต็ปไทม์' ที่กำหนดไว้ในบรรทัดที่ 196 หากต้องการเร่งความเร็วของแอนิเมชัน ให้ลดจำนวนนี้ลง ระวังว่าใน ATTINY แอนิเมชั่นจะทำงานช้าลงบ้างเพราะเราจะรันด้วยความเร็วสัญญาณนาฬิกาที่ต่ำกว่า
ขั้นตอนที่ 4: ย้ายไปที่ ATTINY
รหัสมีขนาดเล็กพอที่จะใส่ลงในไมโครคอนโทรลเลอร์ 8 พินขนาดเล็กที่สะดวกมาก ATTINY13A แบบร่างจากขั้นตอนก่อนหน้าจะทำงานโดยไม่มีการดัดแปลงใดๆ บน ATTINY
- มีคำแนะนำเฉพาะ https://www.instructables.com/id/Programming-an-A… วิธีตั้งโปรแกรม ATTINY13A สรุปสั้น ๆ อยู่ด้านล่าง:
- เริ่มต้น Arduino IDE เปิด 'การตั้งค่า' จากนั้นเพิ่ม https://mcudude.github.io/MicroCore/package_MCUdude_MicroCore_index.json สำหรับผู้จัดการบอร์ดเพิ่มเติม
- ภายใต้ 'เครื่องมือ/บอร์ด' เลือก 'ตัวจัดการบอร์ด' และที่ด้านล่างของรายการ ให้ติดตั้ง 'ไมโครคอร์โดย MCUdude'
- เชื่อมต่อ Arduino Uno และอัปโหลด 'ArduinoISP' มีอยู่ใน 'ไฟล์/ตัวอย่าง'
- เชื่อมต่อ Arduino กับ ATtiny ทำได้ง่ายที่สุดโดยวาง ATtiny ไว้บนตัวป้องกันต้นแบบ: Arduino pin 13 - ATtiny pin 7 Arduino pin 12 - ATtiny pin 6 Arduino pin 11 - ATtiny pin 5 Arduino pin 10 - ATtiny pin 1 Arduino +5v - ATtiny pin 8 Arduino GND - ATtiny pin 4
- เลือก 'Board ATtiny13', 'B. O. D 2.7V', 'Clock 1.2 MHz internal' และโปรแกรมเมอร์ 'Arduino เป็น ISP' (โปรดทราบว่า: ไม่ใช่ 'ArduinoISP' แต่ 'Arduino เป็น ISP')
- ทำ 'เบิร์น Bootloader' - ไม่มี bootloader สำหรับ attiny และอาจมีข้อผิดพลาด แต่ขั้นตอนนี้จำเป็นสำหรับ 'ตั้งค่าฟิวส์' เป็นการตั้งค่านาฬิกาที่ถูกต้อง อัปโหลดภาพร่าง
ทดสอบว่าใช้งานได้หรือไม่: เชื่อมต่อการเชื่อมต่อสีน้ำเงิน, สีเขียว, สีเหลืองและสีขาวของหัวใจกับ PB0 (พิน 5), PB1 (พิน 6), PB2 (พิน 7) และ PB3 (พิน 2) ตามลำดับ หัวใจควรเคลื่อนไหวในลักษณะเดียวกับ Arduino เพียงช้าลงเล็กน้อย ตรวจสอบด้วยว่าใช้งานได้เมื่อ ATTINY ใช้พลังงานจาก coincell
ขั้นตอนที่ 5: การสิ้นสุดโครงการ
ตอนนี้คุณมีวงจรหัวใจและ ATTINY ที่ตั้งโปรแกรมไว้แล้ว โปรเจ็กต์ก็จะเสร็จสิ้นได้ ประสานซ็อกเก็ต IC ที่ยึดเซลล์แบบเหรียญ และสวิตช์เปิด/ปิดเข้ากับบอร์ดต้นแบบ และเชื่อมต่อให้เสร็จสมบูรณ์ตามที่แสดงในแผนภาพ ใส่ ATTINY, coincell และเปิดเครื่องเพื่อตรวจสอบว่าใช้งานได้หรือไม่
ในที่สุด ฉันได้เพิ่มขาตั้งให้กับมันซึ่งทำจากลวดไฟฟ้าแกนแข็งขนาดประมาณ 15 ซม. ดึงส่วนที่แยกออก 2 ซม. ทั้งสองข้างแล้วงอเป็นรูปขาตั้ง ตอนนี้สามารถบัดกรีชิ้นส่วนที่ถอดออกกับแผ่นรองของบอร์ดต้นแบบได้แล้ว
พร้อมที่จะมอบของขวัญวาเลนไทน์สุดวิเศษ!
รองชนะเลิศอันดับการประกวดหัวใจ