เคยอยากได้ตัวนับพัลส์ที่ถูกสุดๆ และง่ายสุดๆ (แบบแสดงผลแค่หลักเดียว) มั้ย?
นี่แหละงานนี้คือการออปติไมซ์และลดความซับซ้อนให้ถึงขีดสุด ขอบคุณ Charlie Allen (เจ้าของเทคนิค Charlieplexing) นะ
ต่อ LED L-144 (ขนาด 2x5mm) ทั้ง 7 ดวงตามรูปด้านล่างเลย:



ใน Arduino IDE -> Preferences ให้เพิ่มลิงก์นี้เข้าไปในช่อง Additional Boards Manager URLs:
https://mcudude.github.io/MicroCore/package_MCUdude_MicroCore_index.json
จากนั้นใน Arduino IDE -> Tools -> Board -> Boards Manager ให้หา ATtiny13 แล้วติดตั้งแพ็กเกจนั้น
เลือกค่า Clock ให้กับ ATtiny13 ตามรูป:

แล้วก็อัพโหลดโค้ดลงไปเลย:

ต่อไมโครคอนโทรลเลอร์เข้ากับไดโอด, ตัวต้านทาน 100Ω และปุ่มกด (ที่ Pin 0) ตามรูปด้านล่างนี้:



ต่อไฟเลี้ยง 5V เข้าไป... เรียบร้อย! หล่อเท่เลยงานนี้
หมายเลข 3 มันจะดูเหมือนตัว C กลับหัวนิดหน่อย แต่ก็เข้าใจได้อยู่ งานนี้จะต่อ Segment F แยกออกมาก็ได้นะ นั่นเป็นโจทย์ท้าทายสำหรับน้องๆ เอง :-)
ข้อมูลเทคนิคเพิ่มเติม (แบบจัดเต็ม)
การตรวจจับสัญญาณดิจิทัล
โปรเจกต์นี้สาธิตวิธีเปลี่ยน Arduino ให้เป็นตัวนับสัญญาณดิจิทัลความเร็วสูง สำหรับงานอุตสาหกรรมหรือวิทยาศาสตร์
- ตรรกะอินพุต: ตรวจสอบสัญญาณที่ Digital Pin ง่ายๆ ทุกพัลส์ (จากรีดสวิตช์, ออปโตคัปเปลอร์ หรือปุ่มกด) จะถูกบันทึก
- Software Debouncing: เพื่อหลีกเลี่ยง "การนับหลอน" จากสัญญาณเด้งของปุ่มกด ฟิร์มแวร์จะล็อกไม่รับสัญญาณใหม่เป็นเวลา 50ms หลังจากตรวจจับพัลส์
ตัวเลือกการแสดงผล
- Serial vs. LCD: ผลลัพธ์สามารถส่งไปที่ Serial Monitor สำหรับชุดติดตั้งต้นทุนต่ำ หรือส่งไปที่ LCD 16x2 แบบ I2C สำหรับการทำงานแบบพกพา
- ขยายขีดความสามารถ: ตรรกะเดียวกันนี้ถูกใช้ในมิเตอร์วัดน้ำ, เซนเซอร์วัดความเร็วลม (Anemometer) และตัวนับในสายการผลิต ทำให้มันเป็นเครื่องมืออุตสาหกรรมที่ทรงพลังและเข้าถึงง่าย