หน้าแรก ดูโปรเจกต์ทั้งหมด
Easy

โปรเจกต์ minutes AC timer ที่ปรับตั้งค่าได้ง่าย

คุณเคยลืมเปิด soldering iron หรือ gluegun ทิ้งไว้ทั้งคืนโดยไม่ได้ตั้งใจไหม? นี่คือทางแก้ปัญหา!

โปรเจกต์ minutes AC timer ที่ปรับตั้งค่าได้ง่าย

รายการอุปกรณ์และเครื่องมือ

1x TM1637 4 digit 7 segment display
🛒 สั่งซื้อ
1x AC/DC PCB Mount Power Supply (PSU), 1 Output
🛒 สั่งซื้อ
1x Hot glue gun (generic)
-
1x Toggle Switch, Toggle
🛒 สั่งซื้อ
1x 3D Printer (generic)
-
1x Rotary Encoder with Push-Button
🛒 สั่งซื้อ
1x Soldering iron (generic)
-
1x relais 220/5v ac/dc
🛒 สั่งซื้อ
}

รายละเอียดและวิธีทำ

คุณเคยลืมปิด....

หัวแร้งหรือปืนกาวบ้างไหม? ผมเคยนะ!

จะดีแค่ไหนถ้ามีอุปกรณ์ง่ายๆ ที่ช่วยจัดการเรื่องนี้ให้คุณ? แล้วมันจะตั้งค่ายุ่งยากเกินไปหรือเปล่า? ไม่ใช่กับเจ้าตัวนี้แน่นอน ถ้าคุณหมุนปุ่มเพียงเล็กน้อย มันจะแสดงตัวเลข 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

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

Code

ตามที่ได้กล่าวไว้ข้างต้น ส่วนของ rotary (void PinA และ void PinB) ผมไม่ได้เป็นคนเขียนเอง แต่เป็นการแบ่งปันจากแหล่งข้อมูลสาธารณะ ส่วนโค้ดที่เหลือผมเขียนเองซึ่งค่อนข้างตรงไปตรงมาครับ

การปรับปรุง

การออกแบบเคสอาจจะดูไม่ทันสมัยเท่าไหร่นัก และฟังก์ชันการกดของ rotary บางรุ่นสามารถนำมาใช้สั่งงานเสียง buzzer ได้

Code

🔒 ปลดล็อก Code

สนับสนุนเพื่อรับ Source Code หรือแอปพลิเคชันสำหรับโปรเจกต์นี้

รหัสอ้างอิงโปรเจกต์: easy-adjustable-minutes-ac-timer-3b6103
299 บาท
PromptPay QR Code