สร้างบอร์ดทดลอง AVR Microcontroller
[ข้อมูลเมื่อ
27 มิถุนายน 2552 ]
|
| 1.1 | บอร์ดทดลองที่สร้างขึ้นสามารถเลือกใช้ไอซีเบอร์ ATmega8 หรือ ATmega168 และเลือกใช้ค่าความถี่ของคริสตอล สูงสุด 16 MHz ได้ |
| 1.2 | บอร์ดทดลองที่สร้างขึ้นใช้สำหรับการทดลองเขียนโปรแกรมภาษาซีเพื่อศึกษาการทำงานของไอซีไมโครคอนโทรลเลอร์ AVR โดยโปรแกรม WinAVR หรือ CodeVision AVR |
| 1.3 | สามารถโปรแกรมข้อมูลลงในตัวไอซี โดยโปรแกรม Bootloader เพื่อใช้สำหรับการทดลองภายใต้โปรแกรม Arduino ซึ่งเป็นการนำไอซี AVR มาพัฒนาใช้งานได้ |
| 1.4 | สามารถเพิ่มอุปกรณ์เพื่อทดลอง ผ่านบอร์ดทดลองที่เพิ่มเติมภายหลังได้ |
ไอซีเบอร์ ATmega8 และ เบอร์ ATmega168 ที่นำมาใช้งานมีหน่วยความจำ และคุณสมบัติต่างๆดังรายละเอียดตารางข้างล่างนี้



|
แหล่งจ่ายไฟของวงจรได้จาก AC หรือ DC อแดปเตอร์ค่าประมาณ 9 -12 โวลต์โดยผ่านวงจรไดโอดบริดจ์เรกติไฟเออร์ BD1 จะทำหน้าที่แปลงสัญญาณไฟฟ้ากระแสสลับ ให้เป็นไฟฟ้ากระแสตรง และยังทำหน้าที่จัดขั้วของไฟฟ้ากระแสตรงให้ถูกต้อง ในกรณีที่ป้อนแหล่งจ่ายไฟกระแสตรงที่มีขั้วไม่แน่นอน หลังจากนั้นจะต่อเข้ากับ IC1 เบอร์ 7805 ซึ่งทำหน้าที่รักษาระดับแรงดันเอาต์พุตให้คงที่ 5 โวลต์ ป้อนเป็นไฟเลี้ยงให้กับวงจร โดยมีตัวต้านทาน R1 จำกัดกระแสให้กับ LED1ทำหน้าที่แสดงสถานะการทำงานของวงจร ตัวเก็บประจุ C1 และ C3 จะทำหน้าที่กรองแรงดันที่เกิดจากการกระเพื่อมของสัญญาณ ให้ราบเรียบมากขึ้น โดยมี C2 และC4 ทำหน้าที่กรองความถี่สูงซึ่งอาจเกิดจากอุปกรณ์ที่อยู่ภายในของไอซี
|

| จากวงจรของบอร์ดทดลองที่สร้างขึ้น ผมได้เลือกใช้ไอซีเบอร์ ATmega8 โดยใช้ค่าความถี่ของคริสตอล 16 MHz แต่สามารถเปลี่ยนเบอร์ไอซี และค่าความถี่ของคริสตอลได้ โดยบอร์ดทดลองที่ตั้งใจไว้คือสามารถใช้ทดลองสำหรับการเขียนโปรแกรมเพื่อทดลองศึกษาการทำงานของไอซีไมโครคอนโทรลเลอร์ AVR โดยใช้โปรแกรมภาษาซี เช่น WinAVR หรือ CodeVision AVR แต่ก็ยังสามารถที่จะนำบอร์ดทดลองที่สร้างขึ้นมา มาทำการโปรแกรมข้อมูลลงในตัวไอซีที่เรียกว่า Boot loader เพื่อใช้สำหรับการทดลองภายใต้โปรแกรม Arduino ซึ่งเป็นการนำไอซี AVR มาพัฒนาใช้งานให้สะดวก และง่ายมากขึ้น ภายใต้ชื่อ Arduino ซึ่งสามารถที่จะโปรแกรมข้อมูลลงในตัวเองได้ (รายละเอียดและคุณสมบัติอื่นของ Arduino สามารถหาดูได้จากเวปไซต์ที่เกี่ยวข้องข้างล่างนี้) โดยสามารถนำไอซีเบอร์ ATmega168 มาใช้งานแทนซึ่งมีหน่วยความจำมากกว่า ATmega8 รายละเอียดดังตารางข้างล่างนี้ ในวงจรจะมีแอลอีดี LED2 ที่ใช้สำหรับทดสอบในการเขียนโปรแกรม มีคอนเน็คเตอร์ ISP ขนาด 10 pin มาตรฐานของ Atmel |
คุณสมบัติที่ยังเหลือเปิดอ่านจาก Datasheet ดูเพิ่มเติมได้ที่ Atmel


3.2 การเตรียมอุปกรณ์
ขนาดของอุปกรณ์ ผลการทดลอง หรือ ตำแหน่งต่างๆของขาอุปกรณ์ เพื่อใช้เป็นข้อมูลในครั้งต่อไป ดังนั้นเราจึงต้องมีบอร์ดหนีบการดาษบันทึกผลไว้เสมอ การวางตำแหน่งต่างๆ ของเครื่องมือบนโต๊ะปฏิบัติงานก็เป็นเรื่องทีสำคัญมาก เพราะคงไม่อยากให้สายมิเตอร์มีตำหนิจากปลายหัวแร้ง ดังนั้นในการทำงาน เราควรจะวางโดยแยกประเภทเครื่องมือวัด และทดสอบไว้ทางด้านซ้ายมือ ส่วนเครื่องมือหนักประเภทคีม หัวแร้ง ควรจะอยู่ทางด้านขวามือ 3.3 การลงอุปกรณ์ เริ่มจากการจัดทำแผ่นวงจรพิมพ์ที่กัดลายทองแดงตามภาพที่ 3 ทำการเจาะรูให้ได้ตามขนาดของขาอุปกรณ์ เคลือบน้ำยากันสนิมให้เรียบร้อย และเตรียมอุปกรณ์ให้ครบตามรายการ แล้วเริ่มลงมือได้เลย ให้วางอุปกรณ์ทุกตัวลงแผ่นวงจรพิมพ์ตามรูป โดยเริ่มต้นจากการวางอุปกรณ์ ที่อยู่ใต้แผ่นวงจรที่เป็น SMD โดยให้ใช้ตะกั่วแต้มไปที่ด้านใดด้านหนึ่งก่อน หลังจากนั้นใช้คีมหนีบเล็ก(แหนบ) จับอุปกรณ์เพื่อบัดกรี จัดตำแหน่งให้ตรง หลังจากนั้นจึงจะบัดกรีอีกด้านหนึ่ง เมื่อทำการบัดกรีอุปกรณ์ใต้แผ่นวงจรพิมพ์จนครบทุกตัวแล้วให้หงายแผ่นวงจรพิมพ์ และเริ่มใส่ลวดจัมเปอร์ลงไปแล้วให้ใส่อุปกรณ์ที่มีความสูงตามลำดับ การวางตัวเก็บประจุไม่ต้องเผื่อขาไว้ ให้กดลงให้สนิทชิดติดกับแผ่นวงจรพิมพ์จะไม่ทำให้เกิดการโยกคลอน สำหรับตัวเก็บประจุที่มีขั้วจะต้องวางตำแหน่งให้ถูกขั้วด้วย โดยให้สังเกตได้จากขั้วลบจะมีเครื่องหมายลบอยู่บนตัวเก็บประจุ อุปกรณ์ทุกตัวเราควรจะทำความสะอาดขาก่อนการบัดกรี เพราะความสกปรกทำให้บัดกรี ตะกั่วติดได้ยาก หรือไม่ติด ทำให้รอยบัดกรีไม่แน่นและไม่สวยงาม หลังจากบัดกรีอุปกรณ์เสร็จแล้วหลังจากนั้นให้ตรวจสอบความเรียบร้อย ดูการวางอุปกรณ์ว่าถูกต้องหรือไม่ จุดบัดกรีใต้แผ่นวงจรพิมพ์และเศษตะกั่วอย่าให้ติดค้างในส่วนของลายวงจรพิมพ์อาจทำให้เกิดการลัดวงจรได้ 3.4 การสร้างบอร์ดจากแผ่นวงจรพิมพ์แบบอเนกประสงค์
ในการสร้างชุดทดลองโดยใช้ แผ่นวงจรพิมพ์แบบอเนกประสงค์นั้น เราถือได้ว่าเป็นวิธีที่ให้ความเข้าใจการทำงานของวงจร และการออกแบบวงจรที่ดี ซึ่งข้อดีของการใช้งานในวิธีแบบนี้ จะทำให้ผู้สร้างสามารถจะจดจำตำแหน่งทางกายภาพของอุปกรณ์ และวงจรได้ เราอาจจะบอกได้ว่าเป็นการสร้างหรือออกแบบโครงงานแบบประหยัดก็ได้ เพราะในบางครั้งเราอาจจะมีอุปกรณ์ที่เหลือใช้ หรือของเก่าที่ถอดมาจากบอร์ดอื่นๆ อยู่แล้ว ดังนั้นถ้าหากเราต้องการออกแบบวงจร และมีการกำหนดค่าของอุปกรณ์ไว้ก่อนแล้ว เราก็สามารถจะนำอุปกรณ์ที่มีมาใช้งานได้เหมือนกัน หรือในกรณีที่อุปกรณ์มีค่าเท่ากัน แต่มีขนาด หรือรูปร่างของอุปกรณ์ที่ไม่เหมือนกัน ทุกอย่างที่กล่าวมานั้นก็สามารถที่จะนำมาใช้งานแทนกันได้
แผ่นวงจรพิมพ์แบบอเนกประสงค์จะมีรูปแบบของลายทองแดงแตกต่างกันไป แต่ในที่นี้เราจะใช้ลายทองแดงแบบโดนัดขนาดเล็ก (บางคนเรียกว่าแบบไข่ปลา) ขนาดวางตัวไอซีได้ ดังในรูปที่ เป็นแบบลายทองแดงสองด้าน ในที่นี้เราจะนำสายไวแรฟมาใช้งานในกรณีที่สายทองแดงไม่สามารถเดินลายเชื่อมต่อไปถึงกันได้ เราจะใช้สายไวแรฟเบอร์ AWG#30 ซึ่งมีขายเป็นม้วน หรือที่แบ่งขายเป็นเมตร แต่ถ้าต้องการแบบหลากสีราคาถูกก็มีของเก่าที่ขายเป็นถุง
การวางแผนการลงตำแหน่งของอุปกรณ์ก่อนอื่นเราควรจะใช้กระดาษกราฟ หรือ การดาษถ่ายเอกสารรูปแผ่นวงจรพิมพ์แบบอเนกประสงค์ มาเริ่มวางตำแหน่งก่อนที่จะลงมือปฏิบัติจริง โดยทำการกำหนดตำแหน่งของอุปกรณ์ และใช้ปากกาทำการลากเส้นเพื่อที่จะเดินสายไฟแทนลายทองแดง การวางอุปกรณ์ลงบนบอร์ด เราควรจะทำให้เป็นลำดับขั้นตอน หากในวงจรที่เราทำอยู่นั้นมีวงจรแหล่งจ่ายไฟ เราก็ควรจะประกอบส่วนของวงจรแหล่งจ่ายไฟก่อนเป็นลำดับแรก เพราะจะเป็นส่วนสำคัญในการทดลอง หลังจากนั้นจึงประกอบวงจรตามลำดับความสำคัญของวงจร แต่ถ้าหากเราลงอุปกรณ์ ตามวงจรทั้งหมดในครั้งเดียว โดยไม่ประกอบวงจรทีละลำดับ ปัญหาที่ตามมาก็คือ เมื่อวงจรไม่ทำงาน ก็ไม่ทราบว่าจะเริ่มต้นหรือแก้ไขได้อย่างไร ดังนั้นเราควรจะแบ่งการต่อวงจรให้เป็นลำดับก่อน หากวงจรไม่ทำงานในส่วนใดก็ให้แก้ไขทีละส่วนไป ในที่นี้จะขอเรียกการแบ่งวงจรออกแต่ละลำดับว่า 1ลำดับวงจร ในการใช้สายไวแรปจะต้องเผื่อความยาวของสายไว้สำหรับการตรวจซ่อมภายหลังด้วย ดังนั้นอย่าเดินสายไว้ตึงจนเกินไป การปลอกสายไวแรป เพื่อที่จะบัดกรี ให้ปลอกปลายสายให้ได้ระยะประมาณ 1-2 มิลลิเมตร ในการบัดกรีจะต้องไม่ให้เห็นสายที่เป็นตัวนำ และจะต้องแนบสายไวแรปลงไปให้ชิดติดกับแผ่น แผ่นวงจรพิมพ์ โดยให้ใช้นิ้วหัวแม่มือรีดสายไวแรปก่อน เพื่อไม่ให้สายโก่งขึ้นมา ทำให้เกิดการโยกค่อนอาจทำให้สายขาดตรงตำแหน่งจุดบัดกรีที่ปลายสายได้ในภายหลัง การเดินสายบัดกรี และการต่อวงจรโดยใช้สายไวแรปแสดงได้ดังรูป
|
![]() |
ไอซีไมโครคอนโทรลเลอร์
ATmega8 หรือ ATmega168 |
![]() |
ไอซี MAX232 สำหรับติดต่อทางพอร์ตอนุกรม |
![]() ![]() |
|
| |
|
| |
|
![]() |
และกลับขั้วไฟให้ถูกต้อง |
| |
|
| |
|
![]() |
|
![]() |
|
| |
|
| |
|
![]() |
|
![]() |
|
![]() |
|
| |
| 1 ตัว 1 ตัว 1 ตัว 1 ตัว 2 ตัว |
|
| |
2 ตัว 1 ตัว |
| ์ ์ |
|
| |
|
Designed by Adisak Chinawong