ตั้งเวลาเปิดปิดอุปกรณ์เครื่องไฟฟ้า 8 ช่องควบคุมด้วย AVR
อารัมภีย์ จันทร์ใย
การควบคุมการเปิดปิดอุปกรณ์ไฟฟ้า
ณ ปัจจุบันนับว่าเป็นเรื่องที่จำเป็นเช่นกัน เพราะ ณ
สังคมปัจจุบันการทำอะไรสักอย่างจะต้องแข่งขันกับเวลา ดั่งคำที่ว่า เวลาเป็นสิ่งมีค่า
จุดประสงค์ของโครงงานนี้ก็เพื่อต้องการจัดสรรค์เวลาเพื่อแบ่งเบากิจกรรมที่ท่านต้องทำในแต่ละวัน
ในชีวิตประจำวันกล่าวได้ว่ามีความเกี่ยวข้องกับเรื่องของเวลา
นับตั้งแต่ตื่นเช้าขึ้นมาก็ต้องมีเวลาเป็นตัวจัดการ
ที่จะต้องทำภาระกิจส่วนตัวเพื่อให้ทันเวลาเพื่อที่จะทำงาน แม้กระทั่งเวลาในการทำงาน
ซึ่งมีการใช้เวลาเป็นกฎเกณฑ์ข้อบังคับเป็นหลัก เวลาเข้างาน เวลพักเที่ยง
เวลาเลิกงาน
จากประสบการณ์ส่วนตัวผู้เขียนในชีวิตประจำวันที่ต้องมีการจัดการเรื่องของเวลาในอาชีพทำสวนเพื่อควบคุมเวลาการรดน้ำต้นไม้ในสวน
จุดประสงค์หลักก็เพื่อต้องการให้ต้นไม้ได้มีการเจริญเติบโตและมีความสมบูรณ์
ซึ่งจำเป็นต้องมีการจ่ายน้ำไปที่หัวจ่ายในสวนและจะต้องควบคุมการจ่ายน้ำเป็นช่วงๆ
ในตอนเช้าและเย็น โดยแต่ละช่วงจะจ่ายน้ำนานกว่า 30 นาที
ครั้นจะใช้วิธีการเดิมๆ
โดยการนั่งเฝ้าเพื่อการเปิดปิดหัวจ่ายด้วยตัวเองคงจะไม่สะดวกเป็นแน่เพราะคงจะไปทำธุระอย่างอื่นไม่ได้
ดังนั้นหากมีเครื่องตั้งเวลาเพื่อเปิดปิดหัวจ่าย
ก็คงจะช่วยผ่อนแรงแทนการนั่งเฝ้าได้ไม่น้อย
พอจะมองเห็นคุณสมบัตของโครงงานนี้บ้างแล้วหรือยังครับ
คราวนี้เรามาดูกันว่าโครงงานเครื่องตั้งเวลาที่จะนำเสนอนี้จัสามารถนำไปประยุกต์ใช้งานในลักษณะอื่นๆ
ได้อย่างไรได้บ้าง
หลักการทำงาน
เริ่มต้นการทำงานด้วยจ่ายแรงดันไฟฟ้ากระแสตรง (DC) ขนาด
12 โวลต์ โดยป้อนเข้าทาง CON1 จากนั้นแรงดันจะถูกลดระดับลงให้เหลือ
5 โวลต์โดย IC4 (LM2576-5) เพื่อป้อนให้กับอุปกรณ์ต่างๆ
ในวงจร สำหรับ IC2 (MAX232) จะเป็นตัวเชื่อมต่อข้อมูลระหว่างตัว
IC3 กับคอมพิวเตอร์โดยใช้การสื่อสารแบบอนุกรม (หรือ Serial Port ซึ่งส่วนนี้จะเป็นฟังก์ชันเสริมเพื่อรองรับการเชื่อมต่อกับคอมพิวเตอร์ในการเก็บข้อมูลหรือการพัฒนาในการทำงานส่วนต่างๆ
ที่ต้องการอนาคต ซึ่งในโครงงานนี้จะยังไม่ใช้) ส่วน Q1
จะใช้ในการกระตุ้นการทำงานของบัสเซอร์เนื่องจากกระแสที่ได้จากไมโครคอนโทรลเลอร์นั้นไม่เพียงพอ
IC3 ไมโครคอนโทรลเลอร์ตระกูล AVR เบอร์
ATMEGA128 เป็นหัวใจหลักของโครงงานนี้เลยก็ว่าได้
เนื่องจากเป็นตัวที่ทำหน้าที่เชื่อมต่อกับอุปกรณ์ต่างๆ ที่อยู่ในวงจรแล้วนำมาประมวลผลเพื่อให้ได้การทำงานตามคุณสมบัติที่ต้องการ
ซึ่งอุปกรณ์ต่างๆ ที่กล่าวมาได้แก่ IC1 (DS1307) เป็นอุปกรณ์กำเนิดฐานเวลาจริงการเชื่อมต่อกับ
IC3 จะใช้ลักษณะของการเชื่อมต่อแบบ I2C โดยการทำงานของ IC1 จำเป็นต้องได้รับแรงดันตลอดเวลาเพื่อให้ฐานเวลาทำงานได้ตลอดในกรณีที่แหล่งจ่ายไฟหลักขัดข้อง
โดยในโครงงานนี้จะใช้แบตเตอรี่แบบกระดุมแรงดัน 3 โวลต์ (CR2032)
การเชื่อมต่อกับสวิตช์แบบเมตริกซ์
(Matrix)
ขนาด 4x3 จะใช้พอร์ต F ของ
IC3 โดยการตรวจสอบสภาวะของสวิตช์นั้นจะใช้การแสกนอย่างรวดเร็วทั้งแนวตั้งและแนวนอนเพื่อหาตำแหน่งของสวิตช์ที่กด
ในส่วนการแสดงผลจะใช้ LCD1 ที่มีคุณสบัติเป็นกราฟิกแอลซีดี (Graphic
LCD) ขนาด 240x64 การเชื่อมต่อเข้ากับ IC3
จะแบ่งออกเป็นสองส่วน คือ
ส่วนของข้อมูลที่ใช้แสดงผลและส่วนควบคุมการแสดงผล
โดยขาข้อมูลจะเชื่อมต่อเข้ากับพอร์ต A และขาควบคุมจะใช้พอร์ต
C สำหรับการควบคุมการเปิดปิดไฟพื้นหลัง (Black Light)
จะใช้ทรานซิสเตอร์ Q2 (B772) ต่อผ่าน CON7
และจะมี VR1 เป็นตัวต้านทานแบบปรับค่าได้ขนาด 10
กิโลโอห์มทำหน้าที่ปรับค่าความเข้มของจุด (dot) ขนแอลซีดีเพื่อให้สามารถมองเห็นสิ่งที่แสดงบนแอลซีดีได้อย่างสะดวก
ในส่วนของเอาต์พุตที่ใช้สำหรับเชื่อมต่อเพื่อขับโหลดจะใช้ไอซีเบอร์ PC817
ซึ่งมีคุณสมบัติเป็นออปโตไอโซเลต (OPTO ISOLATE) เพื่อทำการแยกสัญญาณระหว่างวงจรโหลดและตัวไมโครคอนโทรเลอร์
ซึ่งจะมีทั้งหมด 8 ช่อง
การประกอบ
ก่อนประกอบผู้อ่านต้องเตรียมแผ่นวงจรพิมพ์ซึ่งมีลักษณะเป็นแบบ Plate
Through Hold (PTH) ดังแสดงในรูปที่ 2 เมื่อได้แล้วก็ให้ดูรูปที่
3 เพื่อเป็นแนวทางในการลงอุปกรณ์ให้ถูกต้อง
การลงประกอบให้เริ่มใส่อุปกรณ์ที่มีความสูงน้อยก่อน โดยให้เริ่มจากการใส่ IC3
ก่อนเพราะเป็นอุปกรณ์ที่มีขนาดความสูงน้อยที่สุดและเนื่องจากโครงงานนี้มีอุปกรณ์
IC3 ซึ่งเป็นแบบ Surface Mount Device (SMD) ดังนั้นจะต้องระวังในเรื่องของการบัดกรีไม่ควรใช้ความร้อนสูงและเวลาของการบัดกรีควรทำอย่างรวดเร็วเพราะอุปกรณ์ชนิดนี้มีความทนทานต่อความร้อนไม่มากนักไม่อย่างนั้นอาจจะทำอุปกรณ์เกิดความเสียหายได้
หลังจากนั้นก็เริ่มใส่อุปกรณ์ตัวอื่นๆ ต่อไป เช่น ตัวเก็บประจุแบบ SMD (C1 และ C2), ตัวต้านทาน เป็นต้น
เมื่อลงอุปกรณ์ครบหมดทุกตัวแล้วให้ทำการตรวจสอบความเรียบร้อยและความถูกต้องของการลงอุปกรณ์ทั้งหมดอีกทีหนึ่ง
เมื่อแน่ใจว่าถูกต้องแล้วให้ทำการจ่ายแรงดันไฟกระแสตรง
12
โวลต์ที่ CON1 แล้วสังเกตสิ่งที่เกิดขึ้นด้วยสายตา
ซึ่งขณะนั้น LED1 และ LED2 จะต้องติดสว่างหากพบว่ามีสิ่งผิดปกติให้ถอดแหล่งจ่ายออกทันที
หากไม่มีสิ่งผิดปกติให้นำโวลต์มิเตอร์ไปวัดแรงดันแต่ละจุดโดยดูจากรูปที่ 1 ว่าถูกต้องหรือไม่ หลังจากนั้นให้ต่อเครื่องโปรแกรม AVR ที่ตำแหน่ง CON3 ให้ทำการ Fuse Bit AVR ดังรูปที่ 4 จากนั้นก็ให้ทำการโปรแกรมไฟล์นามสกุล .Hex
ที่ไปยังหน่วยความจำของ IC3 ได้ทันที (ไฟล์นามสกุล HEX สามารถดาวน์โหลดได้จากเว็บไซต์ http://electronics.se-ed.com)
การทดสอบ
หลังจากที่ทำการโปรแกรมเรียบร้อยแล้ว ให้สังเกตการแสดงผลที่หน้าจอแอลซีดีซึ่งจะต้องปรากฎตัวอักษรขึ้นมา
ดังรูป หากไม่ปรากฎข้อความขึ้นหรือความเข้มของตัวอักษรไม่ชัดเจน
ให้ทำการปรับตัวต้านทาน VR1 เพื่อให้สามารถมองได้อย่างชัดเจน
เมื่อมองเห็นได้อย่างชัดเจนแล้วให้ทดสอบการทำงานในโหมดการตั้งเวลา
โดยเริ่มจากการกดเครื่องหมาย * ที่สวิตช์แบบเมตริกซ์แล้วตามด้วยรหัสผ่านซึ่งได้กำหนดไว้จากโปรแกรม
คือ 123456 แล้วตามด้วยเครื่องหมาย #
หากใส่รหัสผ่านถูกต้องก็จะเข้าสู่โหมดการตั้งเวลาหน้าจอแอลซีดีจะแสดงข้อความดังรูปที่
6
โดยที่หน้าจอแอลซีดีจะแสดงเมนูให้เลือกดังนี้
1.
Set Date ตั้งวันที่
2.
Set Time ตั้งเวลา
3.
Set Day ตั้งค่าของวันคือวันอาทิตย์ (Sunday) ไปจนถึงวัน
เสาร์ (Saturday)
4.
Set Load ตั้งค่าเปิดปิดของโหลด
การเลื่อนเมนูขึ้นและลงสามารถทำได้โดยการกดปุ่ม
1
และ 7 เพื่อเลื่อนเมนูขึ้นและลงตามลำดับ
หากแถบบาร์ตรงกับช่องที่ต้องการตั้งค่า ให้กดที่ปุ่ม # เพื่อยืนยันการเข้าสู่การตั้งค่า
เริ่มแรกคือการตั้งค่า วัน/เดือน/ปี
โดยแถบบาร์จะขึ้นที่ 1.Set Date แล้วกดเครื่องหมาย #
ที่หน้าจอจะปรากฎข้อความเป็นวันที่ตั้งค่าไว้ปัจจุบันที่อ่านมาจาก Real
Time Clock (DS1307) หากต้องการเปลี่ยนแปลงให้กดสวิตช์เป็นค่าวันที่ต้องการได้เลยหรือหากต้องการยกเลิกการเข้าเมนูนี้ก็ให้กดปุ่ม
* ซึ่งการใส่ค่า วัน/เดือน/ปี นั้นจะต้องเป็นค่าที่มีจริงในปฎิทินเท่านั้น ยกตัวอย่างเช่น
วันที่จะต้องไม่เกิน 31 และเดือนไม่เกิน 12 หากใส่ถูกต้องวันที่จะถูกใช้ค่าที่ป้อนเข้าไปเพื่อเปลี่ยนแปลงค่าภายใน DS1307
แต่ถ้าใส่ค่าไม่ถูกต้องค่าที่กำหนดจะไม่ถูกใส่เข้าไปหรือค่าวันจะไม่เปลี่ยนแปลงนั่นเอง
การตั้งค่าเวลาทำได้โดยเลื่อนแถบบาร์มาที่ 2.Set
Time แล้วทำตามขั้นตอนเหมือนกับการตั้งค่าของวันที่
โดยในโหมดนี้จะเริ่มตั้งจาก ชั่วโมง/นาที/วินาที โดยมีการตรวจสอบการตั้งค่าเหมือนกัน
ซึ่งค่าชั่วโมงจะใส่ได้ไม่เกิน 24 และในส่วนค่าของนาทีและวินาทีจะต้องไม่เกิน
59 หากใส่ค่าถูกต้องเวลาจะถูกป้อนเข้าไปใน DS1307 เช่นเดียวกับการตั้งค่าวันที่ การตั้งค่าวันในสัปดาห์ (day of the week)
ก็ทำขั้นตอนเหมือนกับการตั้งวันที่และเวลา โดยเลื่อนแถบบาร์มาที่ 3.Set
Day และหลังจากนั้นก็ทำตามขั้นตอนได้เลย
สุดท้าย คือ การตั้งค่าเปิด-ปิดของโหลดโดยให้เลื่อนแถบบาร์มาที่ตำแหน่ง
4.Set Load แล้วตามด้วยเครื่องหมาย # สำหรับการเลือกโหลด (Load) สามารถเลือกช่วงเวลาได้ทั้งหมด
8 ช่วง ดังตัวอย่างที่จะแสดงดังต่อไปนี้
ตัวอย่างการตั้งค่าการเปิด ปิดการทำงานของโหลด
ตัวอย่างนี้จะสาธิตการตั้งค่าเวลาในช่องที่ 1 โดยให้เลื่อนแถบบาร์มาที่ 1. Timer ch
(สามารถเลือกได้ทั้งหมด 8 Channel) หากเลื่อนแถบบาร์มาตำแหน่งที่
1 แล้วให้กดเครื่องหมาย # ที่หน้าจอจะแสดงค่าเดิมที่ตั้งไว้
(ในกรณีที่มีการตั้งไว้ก่อนหน้า) เช่น
Open 12:00:00 หากต้องการเปลี่ยนแปลงค่าเวลาเปิดโหลดให้ใส่ค่าเวลาใหม่ที่ต้องการเปลี่ยนและจะต้องคำนึงด้วยว่าจะต้องใส่ให้ถูกต้องตามรูปแบบที่กำหนดคือ
ชั่วโมงจะใส่ค่าไม่เกิน 24 นาฬิกา
และค่าของนาทีและค่าของวินาทีไม่เกิน 59 หากใส่ค่าผิดโปรแกรมจะทำการยกเลิกและให้ตั้งค่าใหม่จนก่วาจะถูกต้องหรือถ้าต้องการยกเลิกการตั้งค่าเองจากผู้ใช้ให้กดปุ่ม
*
หากไม่ต้องการเปลี่ยนเวลาเปิด
กล่าวคือ ต้องการใช้ค่าเดิมที่ตั้งไว้ก็ให้กดเครื่องหมาย # ได้เลย ซึ่งค่าของเวลาที่เปิดจะจำค่าเดิมไว้
หลังจากนั้นหน้าจอแอลซีดีจะปรากฎข้อความ Close 13:00:00 เพื่อให้ผู้ใช้ใส่ค่าเวลาที่ต้องการปิดโหลด
ซึ่งในส่วนนี้ก็สามารถเปลี่ยนแปลงหรือยกเลิกได้ โดยการกดปุ่ม * เพื่อทำการยกเลิก หากไม่ต้องการยกเลิกให้ใส่ค่าเวลาที่ต้องการหรือกด #
เพื่อใช้ค่าเดิม และที่หน้าจอจะแสดงแถบบาร์ 1 ถึง
9 เพื่อให้ผู้ใช้เลือกโหลด โดยหากเลือกตำแหน่งที่ 9 จะสามารถเปิดปิดโหลดในเวลาเดียวกันได้ แต่ถ้าหากเลือกโหลดที่ 1 ถึง 8 จะเป็นการเปิด-ปิดเพียงโหลดที่เลือกเท่านั้น
สำหรับ
SW2
จะใช้เลือกว่าจะให้ระบบทำงานเป็นแบบอัติโนมัติ (Automatic) คือจะทำงานตามค่าของเวลาที่ตั้งไว้ และหากสวิตช์ถูกปรับมาที่ตำแหน่ง Manual
โหลดทุกตัวจะเปิดหมดทุกช่อง (Channel) และจะไม่ทำงานตามเวลาที่ตั้งไว้จนกว่าสวิตช์จะถูกปรับมาที่ตำแหน่ง
Automatic ซึ่งการทำงานสามารถสังเกตได้ที่มุมล่างซ้ายของแอลซีดี
แนวการประยุกต์ใช้งาน สำหรับโครงงานนี้
ผู้เขียนได้นำมาประยุกต์ในเรื่องของการจ่ายน้ำในสวนเพื่อการรดน้ำต้นไม้
แต่สำหรับโครงงานนี้สามารถนำไปประยุกต์ใช้งานในด้านอื่นๆ ได้ เช่น
เรื่องของการเปิด-ปิดออดของโรงเรียน ซึ่งอาจจะช่วยแบ่งเบาภานะของเจ้าหน้าที่โดยไม่ต้องกังวลว่าต้องมาคอยเปิดออดให้ทำงานหลายๆ
ครั้งใน 1 วัน สำหรับหน้าจอ สามารถเลือกการแสดงผลได้ทั้ง Character
LCD และแสดงผล ที่ใช้แบบ Graphic LCD ดังรูปข้างต้น
เพียงเท่านี้ท่านก็ได้เครื่องมือช่วยที่จะ
ทุ่นแรง ทุ่นเวลา เพื่อให้เหมาะกับยุคสมัยนี้ที่หนึ่งคนจะต้องทำหน้าที่หลายๆ
อย่างในเวลาเดียวกัน
ทั้งนี้ก็เพื่อประคองตนให้อยู่ได้ในสภาวะเศรฐกิจที่ไม่ค่อยสู้ดีนักของบ้านเราและทั่วโลก
สำหรับผู้อ่านท่านใดที่มีข้อเสนอแนะสามารถติชมโครงงานของผู้เขียนได้ที่ arampee@jnutthailand.com หรือที่เว็บไซต์ของผู้เขียน http://www.jnutthailand.com
รายการอุปกรณ์
ตัวต้านทาน 1/4 วัตต์ +/-5%
R1-R9,R13,R14 10k 7 ตัว
R5,R6 4.7k 2 ตัว
R7 1k 1 ตัว
R8,R12 10 2 ตัว
R10,R15-R21 470 8 ตัว
R11 680 1 ตัว
R23 1.5k 1 ตัว
VR1 ตัวต้านทานปรัค่าได้แบบเกือกม้า 10k 1 ตัว
ตัวเก็บประจุ
C1,C2 10pF
50V เซรามิก 2 ตัว
C3-C6,C8,C9,C12,C15,C17,C18,C19
0.1uF 50V โพลีเอสเตอร์ 11 ตัว
C7,C10,C11,C16,C20 470uF
16V อิเล็กทรอไลต์ 5 ตัว
C13,C14 22pF
50V เซรามิก 2 ตัว
อุปกรณ์สารกึ่งตัวนำ
D1 1N5819 1 ตัว
Q1 2N4403 1 ตัว
Q2 B772 1 ตัว
IC1 DS1307 1 ตัว
IC2 MAX232 1 ตัว
IC3 ATMEGA128 1 ตัว
IC4 LM2576-5 1 ตัว
IC5-IC12 PC817 8 ตัว
LED1-LED2 แอลอีดีสีแดง 3 มม. 2 ตัว
อื่นๆ
XTAL1 คริสตอล 32.768KHz 1 ตัว
XTAL2 คริสตอล 16 MHz 1 ตัว
L1 100uH 1 ตัว
SW1 กดติดปล่อยดับ 1 ตัว
SW2 สวิตช์โยก 1 ตัว
SW1 สวิตช์แบบเมตริกซ์ขนาด 4x3 1 ตัว
SP1 บัสเซอร์ 5 โวลต์ 1 ตัว
BATT1 ถ่านกระดุมรุ่น CR2032 หร้อมซ็อกเก็ตแบบตั้ง 1 ชุด
CON1 คอนเน็กเตอร์ 2 ขา 1 ตัว
CON2 RS-232
ตัวเมีย 1 ตัว
CON3- CON4 คอนเน็กเตอร์ 10 ขา 2 ตัว
CON5 คอนเน็กเตอร์ 26 ขา 2 ตัว
CON6-CON15 คอนเน็กเตอร์ 2 ขา 10 ตัว
ขอบคุณครับ
อารัมภีย์ จันทร์ใย