โปรเจกต์ minutes AC timer ที่ปรับตั้งค่าได้ง่าย
คุณเคยลืมเปิด soldering iron หรือ gluegun ทิ้งไว้ทั้งคืนโดยไม่ได้ตั้งใจไหม? นี่คือทางแก้ปัญหา!
คุณเคยลืมเปิด soldering iron หรือ gluegun ทิ้งไว้ทั้งคืนโดยไม่ได้ตั้งใจไหม? นี่คือทางแก้ปัญหา!
หัวแร้งหรือปืนกาวบ้างไหม? ผมเคยนะ!
จะดีแค่ไหนถ้ามีอุปกรณ์ง่ายๆ ที่ช่วยจัดการเรื่องนี้ให้คุณ? แล้วมันจะตั้งค่ายุ่งยากเกินไปหรือเปล่า? ไม่ใช่กับเจ้าตัวนี้แน่นอน ถ้าคุณหมุนปุ่มเพียงเล็กน้อย มันจะแสดงตัวเลข 1 และจ่ายไฟให้กับอุปกรณ์ AC ที่เชื่อมต่ออยู่เป็นเวลา 1 นาที หากคุณหมุนต่อไป (หรือหมุนไปอีกทาง) คุณสามารถตั้งเวลาได้สูงสุดถึง 255 นาที ในนาทีสุดท้ายไฟ led สีแดงจะเริ่มกะพริบ ซึ่งคุณสามารถเพิ่มเวลาหรือปล่อยไว้เฉยๆ ก็ได้ และในที่สุด อุปกรณ์ที่เชื่อมต่ออยู่จะถูกปิดโดยอัตโนมัติ
ส่วนประกอบ
หัวใจสำคัญของตัวตั้งเวลานี้คือ rotary encoder ผมอยากลองใช้ตัวที่มีวางทิ้งไว้มานานแล้ว แต่ไม่เคยทำสำเร็จจนกระทั่งไปเจอ Arduinoscript ที่ใช้งานได้จริง มันใช้ระบบ interrupts ซึ่งผมก็ไม่เข้าใจการทำงานที่แน่ชัดของมันเท่าไหร่นัก แต่มันทำงานได้อย่างสมบูรณ์แบบ คุณสามารถใช้ Arduino รุ่นไหนก็ได้หรือรุ่นที่ใกล้เคียง ตราบใดที่คุณใช้ pin 2 & 3 ส่วนตัวผมชอบใช้ปุ่มเปิด/ปิด แต่ไม่จำเป็นต้องมีก็ได้ครับ มันจะช่วยเปิดแหล่งจ่ายไฟขนาดเล็กที่เลี้ยงไฟให้ Arduino และไฟ led สีเขียว ส่วน 5v relay จะทำหน้าที่เปิดอุปกรณ์ไฟฟ้า 110/230V ที่เชื่อมต่อกับเต้ารับติดผนังราคาถูกและเปิดไฟ led สีแดง ตัว relay ถูกติดกาวไว้ที่ด้านหลังของจอแสดงผล seven segment โดยมีชิ้นส่วนพลาสติกเล็กๆ คั่นกลางไว้ (ซึ่งรวมอยู่ในชิ้นส่วน 3D printer แล้ว) ดูชิ้นส่วน 3D เวอร์ชันล่าสุดได้ที่นี่: https://www.thingiverse.com/thing:5020051 โปรดระมัดระวังในการป้องกันสายไฟ 110/220v ไม่ให้สัมผัสโดน ผมบัดกรี female headers 2 แถวสำหรับ Arduino ลงบน perfboard ขนาดเล็ก (เพื่อให้สามารถถอด nano ออกมาเขียนโปรแกรมได้) คุณจะใช้ breadboard แทนก็ได้หากต้องการ ส่วนตัวเคสผมออกแบบใน Tinkercad และสั่ง 3D-printed ด้วยเครื่อง Prusa MK3s ของผม ผมจะแชร์ไฟล์ออกแบบไว้ในโปรเจกต์นี้และใน Thingiverse เร็วๆ นี้ (เผื่อใครอยากได้คำแนะนำหรือนำไปปรับปรุงต่อ) หรือคุณอาจจะใช้เคสมาตรฐานทั่วไปแทนก็ได้ครับ

Schematic นี้ค่อนข้างเรียบง่าย Rotary encoder ใช้ GND และ pins 2 & 3 (บังคับ) ส่วน pinout อาจแตกต่างกันไป ให้ตรวจสอบสเปกของคุณว่าขาไหนคือ GND (ส่วนใหญ่มักจะเป็นขาตรงกลาง) อีก 2 ขาที่เหลือไม่ต้องกังวล (คุณสามารถสลับตำแหน่งเพื่อเปลี่ยนทิศทางการหมุนได้) จอแสดงผล TM1637 4 digit seven segment มีทั้งหมด 4 pins ดังนี้:
VCC = pin 5V
GND = pin GND
CLK = 4
DIO = 5
ตามที่ได้กล่าวไว้ข้างต้น ส่วนของ rotary (void PinA และ void PinB) ผมไม่ได้เป็นคนเขียนเอง แต่เป็นการแบ่งปันจากแหล่งข้อมูลสาธารณะ ส่วนโค้ดที่เหลือผมเขียนเองซึ่งค่อนข้างตรงไปตรงมาครับ
การออกแบบเคสอาจจะดูไม่ทันสมัยเท่าไหร่นัก และฟังก์ชันการกดของ rotary บางรุ่นสามารถนำมาใช้สั่งงานเสียง buzzer ได้
สนับสนุนเพื่อรับ Source Code หรือแอปพลิเคชันสำหรับโปรเจกต์นี้