ชื่อโปรเจกต์: 555 Timer เพื่อส่งสัญญาณขัดจังหวะ Atmega328Untitled
เป้าหมายหลักของวงจรนี้คือการประหยัดพลังงาน ดังนั้น ผมจะไม่พูดถึง Arduino เนื่องจากตัวบอร์ดเองมีการใช้พลังงานที่ไม่จำเป็นสำหรับผลิตภัณฑ์สุดท้าย มันยอดเยี่ยมสำหรับการพัฒนา แต่ไม่ค่อยดีนักสำหรับโปรเจกต์สุดท้ายที่ใช้พลังงานจากแบตเตอรี่ ผมจะใช้บอร์ดหนึ่งสำหรับ POC ของผม แต่เพื่อประหยัดพลังงาน การใช้ Atmega328 แบบ Standalone จะให้ผลลัพธ์ที่ดีกว่า
ผมสร้างสถานีตรวจอากาศ (TOBE) ที่จะชาร์จแบตเตอรี่ 3.7 V สองก้อนแบบขนานโดยใช้แผงโซลาร์เซลล์ เวอร์ชันแรกของผมเป็นไปได้ด้วยดีมากครับ แต่ผมมีปัญหา การใช้แบตเตอรี่สูงกว่าอัตราการชาร์จของแผงโซลาร์เซลล์ ผมจะไม่ลงรายละเอียดตัวเลขที่นี่ แต่หลังจากนั้นไม่นาน ผมก็สังเกตเห็นระดับแบตเตอรี่ค่อยๆ ลดลง นอกเหนือจากความจริงที่ว่าผมมาจากแคนาดาและแสงอาทิตย์ที่นี่ไม่ได้มีมากนัก จากนั้น ผมใช้ library เพื่อทำให้ Atmega328 เข้าสู่โหมด Sleep เป็นเวลา 8 วินาที (มีช่วงเวลาอื่นอีกแต่ 8 วินาทีคือสูงสุด) แล้วกลับมาทำงาน การใช้งานนั้นตรงไปตรงมามากและมันทำงานได้ตามที่ควรจะเป็น แต่ 8 วินาทีนั้นไม่เพียงพอสำหรับผม
รายละเอียดทางเทคนิคเพิ่มเติม
สถาปัตยกรรมเวลาแบบไฮบริด
โปรเจกต์ทางเทคนิคนี้สำรวจการผสมผสานระหว่างการจับเวลาแบบแอนะล็อกคลาสสิกกับการขัดจังหวะแบบดิจิทัลสมัยใหม่เพื่อสร้างฮาร์ดแวร์นาฬิกาที่เสถียรเป็นพิเศษ
- ชุดพัลส์ 555 ที่แม่นยำ: ใช้ NE555 Timer IC ที่ตั้งค่าในโหมด Astable เพื่อสร้างคลื่นสี่เหลี่ยมความถี่ 1Hz หรือ 10Hz ที่แม่นยำ สัญญาณนี้จะถูกป้อนโดยตรงไปยัง INT0 (Pin 2) ของ ATmega328P
- การจัดการ Hardware Interrupt: แทนที่จะใช้ Software Timer ภายใน (ซึ่งอาจมีความคลาดเคลื่อน) Arduino จะถือว่าทุกพัลส์จาก 555 เป็นตัวกระตุ้น "Master Clock" เฟิร์มแวร์จะดำเนินการงานที่สำคัญ (เช่น การบันทึกข้อมูล หรือการนับพัลส์) ภายในรูทีน
ISR(INT0_vect)
ประสิทธิภาพ
- การทำงานแบบ Zero-Drift: ช่วยให้มั่นใจว่าลอจิกระดับสูงของ Arduino ถูกซิงโครไนซ์อย่างสมบูรณ์แบบกับฮาร์ดแวร์แอนะล็อกภายนอก ซึ่งเหมาะสำหรับการทดลองที่ต้องการความแม่นยำทางเวลา หรือการเชื่อมต่อกับอุปกรณ์รุ่นเก่า