ถ้าจะบอกว่าคุณสามารถสร้างนาฬิกาให้เดินได้ตรงกับกรมอุตุทุกวินาทีคุณจะเชื่อไหม?
......เป็นเวลานานแล้วที่นักอิเล็กทรอนิกส์ไทยเราได้ทำนาฬิกาดิจิตอลขึ้นเพื่อใช้ดูเวลา ส่วนใหญ่จะใช้ไอซีสำเร็จรูปในการทำ ความเที่ยงตรงของเวลาก็อาจไม่ตรงนักเพราะรับสัญญาน 50 Hz มาจากไฟบ้านมาแปลงเป็นฐานเวลา ซึ่งสัญญานความถี่นี้มาจากเจนเนอเรเตอร์ของโรงผลิตกระแสไฟฟ้า ความถี่ที่ได้อาจจะคลาดเคลื่อนบ้างทำให้เวลา คลาดเคลื่อนตามไปด้วย แต่บางท่านก็พัฒนาโดยใช้ไมโครโปรเซซเซอร์มาเป็นตัวควบคุม แต่ก็ต้องยุ่งยากมากขึ้น เพราะมีอุปกรณ์ต่อพ่วงมากขึ้น มาถึงยุคนี้เมื่อเหลียวมองที่รัฐสภาไทย ตอนที่ถ่ายทอดการอภิปาย จะเห็นนาฬิกาอยู่หนึ่งเรือนอยู่ด้านหน้าของท่านประธานรัฐสภา ไว้ให้ท่านผู้แทนราษฎรได้ดูเวลาอภิปาย เราในฐานะลูกหลานไทยก็อยากมีนาฬิกาแบบนั้นไว้ดูที่บ้านบ้าง แต่ราคาคงจะหลายบาทพอควร แต่ถ้าใจอยากได้ก็ไม่มีปัญหา เราก็ย่อส่วนให้เล็กลงเพื่อให้พอกับงบประมาณของเรา เพราะเราใช้ดูในบ้านเท่านั้นโครงงานนาฬิกานี้มีประสิทธิภาพที่ดีหลายอย่าง เหมาะที่จะสร้าง ถ้าคิดจะสร้างนาฬิกาไว้ดูเวลาสักหนึ่งเรือน
คุณสมบัติ
การทำงานของวงจร
......มาดูที่ตัวหลักของวงจรกันก่อน
ก็คือไมโครคอนโทรลเลอร์เบอร์
PIC16F84
มีคุณสมบัติดังนี้คือ
มีพอร์ต A4 บิต
ไว้ส่งข้อมูลเป็นเลข BCD
ให้ไอซี 74LS247
เพื่อแปลงรหัสขับตัว 7-segment
อีกที โดยมี R16-R22 ไว้จำกัดกระแสที่เหมาะสม
ขาสัญญานของตัว 7-segment คือ
ขา a-g จะต่อขนานกัน
ยกเว้นขา commond ดังนั้นตัว 7-segment
ทุกตัวจะได้รับสัญญานจาก
ไอซี 74LS247 พร้อมๆกัน
แต่ว่าตัวไหนจะติดก็ขึ้นกับขา
commond
ของตัวนั้นจะได้รับไฟบวก
5V เพราะเป็น 7-segment แบบ commond Anode
ที่พอร์ต B ของ PIC16C54
จะทำหน้าที่สั่งให้ 7-segment
ติดทีละตัว เริ่มจากบิต
RB0 ถึง RB5 โดยแสดงสถานะ "0"
หรือต่อให้ R6-R11 ลงกราวด์ทีละตัว
เพื่อให้มีกระแสไบอัสทรานซิสเตอร์วิ่งผ่านขา
E มาขา B
ทำให้ทรานซิสเตอร์ Q1-Q6
ทำงาน
ไฟบวกก็จะวิ่งผ่านขา E
มาขา C จ่ายให้ 7-segment
ทำงานได้ ตัว 7-segment
ก็จะสว่าง แต่ละตัวจะสว่างสัมพันธ์กับข้อมูลของ
พอร์ต A
และสว่างอยู่ตัวละ 0.001
วินาที
จะเลื่อนไปสว่างตัวถัดไป
รวม 6 ตัวเท่ากับ 0.006
วินาที
แต่ด้วยความเร็วขนาดนี้จะทำให้ตาเราเห็นเหมือนสว่างพร้อมกันทุกตัว
......จะสังเกตเห็นว่า
ที่ขา E ของ Q1-Qุุุุุ6
ไม่ได้รับไฟบวก5V ตรงๆ
ไฟบวก 5V ผ่าน D5
เหลือประมาน 4.3Vทั้งนี้ก็เพราะว่า
ในขณะที่พอร์ต RB0-RB5 เป็น
"1" จะมีไฟประมาน 4.3V
ออกที่เอ้าพุต ถ้ารับไฟ
5V มาตรงๆ จะทำให้มีแรงดันตกคล่อมที่ขา
E กับขา B ประมาณ 0.7V
แรงดันขนาดนี้จะทำให้ทรานซิตเตอร์นำกระแสได้
ซึ่งเราไม่ต้องการ
เราต้องการให้นำกระแสในสถานะ
"0"เท่านั้น
แต่ถ้าแรงดันผ่านไดโอด D5
เหลือ 4.3V แรงดันตกคล่อมที่ขา
E กับ ขา B ประมาน 0V
ซึ่งก็ไม่สามารถทำให้ทรานซิตเตอร์นำกระแสได้
......ในโหมดแสดงวันเดือนปีนั้นจะใช้
dot ของ 7-segment ตัวที่ 2
กับตัวที่ 5 เป็นตัวแสดง
โดยให้ RB7 เป็น "0"
เพื่อให้กระแสไหลจาก dot
ผ่าน R12 ลงกราวด์ที่RB7
ส่วนQ7
ไม่ทำงานเนื่องจากขา B
ไม่มีไฟไบอัส ในโหมดแสดงเวลา
จะให้LED1-LED4 เป็นตัวแสดง
โดย LED1 กับ LED2 ติดค้าง
เนื่องจาก RB7 เป็น "1"
มีไฟไปไบอัส Q7 ให้ทำงาน
ทำให้มีกระแสวิ่งจาก LED1-LED2
ผ่าน R14 ลงกราวด์ที่ Q7
ส่วน LED3 กับ LED4
จะกระพริบทุกครึ่งวินาที
โดยถ้าติดให้ RB6 เป็น "0"ทำให้กระแสไหลผ่าน
LED3-LED4 ผ่าน R13 ลงกราวด์ที่ RB6
......สำหรับในส่วนการตั้งเวลานั้น
หลังจากแสดงตัวเลขเสร็จแล้ว
จะให้ RB0 กับ RB1 เป็น
อินพุตพอร์ตด้วย โดย R1
กับ R2 เป็นตัว พูลอัพให้ RA1
กับ RA2 ส่วน R3 กับ R4
ลดกระแสไม่ให้ลงกราวด์มากเกินไปเวลากดสวิทช์
ส่วนสวิทช์ SW3
ไว้สำหรับกดรีเซต
ส่วนซอฟแวร์
......จุดที่สำคัญที่สุดของนาฬิกาไม่ว่าแบบไหนก็คือความเที่ยงตรงของเวลา
ในวงจรนี้ใช้แร่ XTAL 4.096 MHz
เป็นฐานเวลา โดยตัว PIC
จะหาร 4
ด้วยวงจรภายในเหลือ 1,024,000
Hz
และใช้ซอฟแวร์หารให้เหลือความถี่เท่ากับ
1 Hz หรือ 1 วินาทีพอดี
สำหรับใช้เป็นฐานเวลาที่เที่ยงตรง
มาดูโฟลวชาร์ตการทำงานในรูปที่
1-3 ประกอบ
เมื่อจ่ายไฟเข้าหรือกดสวิทช์รีเซต
โปรแกรมหลักจะเริ่มทำงาน
เซตค่ารีจีสเตอร์ต่างๆ
เช่นค่าวันเวลาเริ่มต้น
ต่อจากนั้นจะหารความถี่
1,024,000 Hz ด้วย 16 เหลือ 64,000 Hz
หารต่อด้วย 512 เหลือ 125 Hz
ซึ่งความถี่ 125 Hz
นี้จะได้คาบเวลาเท่ากับ
0.008 วินาที คาบเวลา 0.008
วินาทีนี้จะใช้ในการรีเฟซ
1 รอบ คือตั้งแต่ให้ 7-segment
แสดงผลครบ 6 ตัว,
คำนวนเวลา,
รวมทั้งการตรวจสอบการกดสวิทช์เสร็จภายในเวลา
0.008 วินาที
เมื่อได้ความถี่ 125 Hz แล้ว
จะรอรับสัญญานเริ่มต้นการนับจาก
RTC (Real Time Clock) ซึ่งเป็นรีจีสเตอร์นับเวลาตัวหนึ่ง
เมื่อได้รับสัญญาน
จะเรียกใช้โปรแกรมย่อยคำนวนเวลา
ที่โปรแกรมคำนวนเวลาจะหาร
125 Hz ด้วย 125
ถ้าหารลงตัวจะบวกวินาทีด้วย
1
และก็จะตรวจสอบและเพิ่มค่ารีจีสเตอร์อื่นๆไปด้วย
จุดที่สำคัญก็คือในแต่ละเดือนจะมีจำนวนวันไม่เท่ากัน
เช่น 30 บ้าง, 31 บ้าง
เดือนกุมภาพันธ์บางปีมี
28 วัน บางปีมี 29 วัน
จะต้องเขียนโปรแกรมให้ครอบคุมทั้งหมดครบทุกปีด้วย
ในรอบ 1 ศตวรรษ หรือ 100
ปีนั้น จำนวนวันของเดือนกุมภาพันธ์ของปีในรอบศตวรรษจะซ้ำกัน
เช่น
จำนวนวันในเดือนกุมภาพันธ์ของปี
1042, 1342, 2142, 2342, 2542, 2842, 3042
จะเท่ากัน
ดังนั้นแค่คำนวน 2 หลักท้ายของปีในรอบ
1 ศตวรรษก็จะใช้ได้ในทุกศตวรรษ
และอย่าลืมตรวจสอบการเปลี่ยนวันเวลาในรอบศตวรรษใหม่ว่าถูกต้องหรือไม่อย่าให้เหมือน
Y2K ที่กำลังแก้กันอยู่
......เมื่อคำนวนเวลาเสร็จ
ต่อมาก็ตรวจสอบมีการกดสวิทช์ตั้งเวลาหรือไม่
ถ้าไม่มีการกดสวิทช์
จะแสดงผลขับ 7-segment ทีละตัว
ตัวละ 0.001 วินาที
โดยตรวจสอบวินาทีที่ 0-19
และ 30-49 ให้แสดงชั่วโมง
นาที วินาที
และวินาทีที่ 20-29 และ 50-59
ให้แสดง วัน เดือน ปี
ในโหมดแสดงเวลานั้นให้
LED3,LED4 ติดดับสลับกันทุก 0.5
วินาทีด้วย
เสร็จแล้วให้ไปรอสัญญาน
RTC ในรอบใหม่
......ถ้ามีการกดสวิทช์
MODE
จะเข้าสู่โหมดการตั้งเวลา
สังเกตได้จากตัวเลขวินาทีจะกระพริบถี่ๆ
เวลาจะหยุดเดิน
ถ้ากดสวิทช์ MODE อีก
ตัวที่กระพริบจะเลื่อนไปเป็นนาทีแทน
ถ้ากดอีกก็จะเลื่อนไปเป็น
ชั่วโมง ปี เดือน วัน
ในขณะที่ตัวเลขใดกระพริบอยู่
ถ้ามีการกดสวิทช์ UP
ตัวเลขนั้นจะเพิ่มทีละ 1
ถ้าตัวเลขหยุดกระพริบแสดงว่าอยู่ในโหมดเวลาเดินปรกติ
เมื่อทุกอย่างเสร็จเรียบร้อยดี
จะวนรอบไปจับเวลารีเฟซใหม่
ภาคจ่ายไฟ
......ใช้หม้อแปลงเข้า 220V ออก 6-0-6V ขนาด100-300 มิลลิแอมป์ ก็เพียงพอ ใช้ฟิวส์ขนาด 250 มิลลิแอมป์ ป้องกันไว้ก่อนเพราะใช้ตลอด 24 ชั่วโมง มีไดโอด D1,D2 เรียงกระแสไฟสลับเป็นกระแสตรง มี C1,C2 ช่วยเรียงกระแสให้เรียบขึ้น ผ่านไอซีเร็กกูเรเตอร์ 7805 รักษาระดับแรงไฟให้ได้ 5V และC3,C4 ช่วยกรองกระแสให้เรียบขึ้นอีกที แรงดัน 5V นี้จะใช้เลี้ยงวงจรทั้งหมด แต่ที่ตัว PIC จะไม่รับไฟ 5V ตรงๆ จะผ่านไดโอด D3 ก่อน ทั้งนี้ก็เพราะว่ามีการต่อแบตเตอรี่ขนาด 3V ไว้เพื่อกันไฟฟ้าดับ เราไม่ต้องไปตั้งเวลาใหม่ ในขณะที่มีแรงดัน 5V แบตเตอรี่จะไม่สามารถจ่ายไฟผ่าน D4 ได้ เนื่องจากแรงดันของแบตเตอรี่น้อยกว่าแรงดัน 5V ดังนั้นในกรณีไฟฟ้าไม่ดับวงจรจะไม่กินกระแสจากแบตเตอรี่ ในกรณีไฟฟ้าดับ แรงดันจากแบตเตอรี่จะมากกว่า สามารถผ่าน D4 ไปจ่ายให้ตัว PIC ได้ แต่ไม่สามารถจ่ายย้อนผ่าน D3 ไปให้ส่วนอื่นๆของวงจรได้ ดังนั้นในเวลาไฟฟ้าดับ เวลาของนาฬิกาจะยังเดินอยู่ แต่จะไม่แสดงผล ทำให้แบตเตอรี่มีอายุยืนยาวนานขึ้น
การสร้างและการใช้งาน
......เริ่มแรกทำแผ่นปริ๊นท์ก่อนเพราะต้องการประหยัดจึงทำแบบหน้าเดียวจึงต้องมีจุดจั๊มหลายจุดหน่อย
แต่ไม่มากแผ่นละ 6
จุดเมื่อได้แผ่นปริ๊นท์แล้วก็ใส่ตัวต้านทานก่อน
แล้วตัดขาตัวต้านทานมาใส่เป็นสายจั๊ม
อย่าลืมแผ่นละ 6 จุด
โดยเฉพาะใต้ตัว PIC
เสร็จแล้วก็ใส่อุปกรณ์ตัวเล็กขึ้นไปหาใหญ่
ตัว IC2 กับ IC3
ควรใส่ซ็อกเก็ต ส่วน IC1
ใส่ขาให้ถูกทางด้วย
เมื่อลงอุปกรณ์เสร็จทั้งสองแผ่น
ต่อไปใส่หัวต่อ 90 องศา
โดยใส่ที่แผ่นหลักก่อน
เสร็จแล้วจึงนำแผ่นแสดงผลมาใส่
บัดกรีให้ทั้งแผ่นได้ฉากกัน
ถ้าไม่มีหัวต่อ 90
องศาใช้ขาอุปกรณ์ที่ตัดทิ้งแทนก็ได้
แต่อาจต้องใช้ฝีมือหน่อย
เสร็จแล้วบัดกรี สวิทช์,ลังถ่านและหม้อแปลง
เมื่อบัดกรีทุกตัวเสร็จแล้ว
ตรวจดูให้แน่ใจอีกครั้ง
เมื่อแน่ใจก็เสียบปลั๊กได้เลย
หากไม่มีอะไรผิดพลาด
จะแสดงเวลา 12 : 00 : 00 คือ
ชั่วโมง นาที วินาที LED 2
ดวง ระหว่าง นาทีกับวินาที
จะกระพริบทุกครึ่งวินาทีบอกเราว่าตอนนี้เวลาเริ่มเดินแล้ว
ถ้าไม่มีอะไรแสดงผล
ให้ทดลองกดสวิทช์ RESET ดู
เมื่อทุกอย่างทำงานปรกติดี
ต่อไปเป็นการตั้งเวลา
ให้กดสวิทช์ MODE
ตัวเลขวินาทีจะกระพริบถี่ๆ
เวลาจะหยุดเดิน LED
จะหยุดกระพริบ
เมื่อกดสวิทช์ MODE
อีกครั้ง ตัวเลขที่กระพริบจะเลื่อนไปกระพริบที่นาทีแทน
เมื่อกดอีกจะเลื่อนไปที่
ชั่วโมง ปี เดือน วัน
ในขณะที่ตัวเลขใดกระพริบอยู่นั้น
ถ้ากดสวิทช์ UP
ตัวเลขนั้นจะเพิ่มค่าไปด้วย
สาเหตที่ให้ตั้งปีก่อนวันนั้นก็เพราะว่าจะไปคำนวนจำนวนวันของเดือนกุมภาพันธ์
ขณะที่วันที่กระพริบอยู่นั้น
ถ้ากดสวิทช์ MODE อีกครั้ง
จะเข้าสู่โหมดเวลาปรกติ
เวลาจะเริ่มเดินต่อจากที่เราตั้งไว้
สังเกตุง่ายๆคือตัวเลขจะหยุดกระพริบ
การแสดงผลจะแสดงเวลาเช่น
14 : 23 : 41 เป็นเวลา 20 วินาที
โดยมี LED 2
จุดเป็นตัวบอกว่าแสดงในโหมดเวลา
สลับกับการแสดงในโหมด
วันเดือนปี เช่น 26. 12. 42
เป็นเวลา 10 วินาที โดยมี
dot
เป็นตัวบอกว่าแสดงในโหมด
วันเดือนปี
......เมื่อตั้งเวลาเสร็จอย่าลืมใส่แบตเตอรี่ไว้กันไฟฟ้าดับจะได้ไม่ต้องมาตั้งเวลาใหม่
ข้อแนะนำอีกหนึ่งจุดคือหาพลาสติกสีแดงใสมาใส่ด้านหน้าตัวเลข
จะทำให้มองชัดเจนและสวยขึ้น
แค่นี้เราก็จะมีนาฬิการุ่นแสดงปีพ.ศ.ไว้ใช้งานแล้ว
รายการอุปกรณ์
สนใจติดต่อได้ที่