** บทความและโครงงานนี้เป็นความคิดเห็นของผู้เขียนเอง ซึ่งผู้อ่านไม่จำเป็นต้องเห็นด้วยเสมอไปครับ
หาก มีข้อเสนอแนะ หรือพบข้อความใดๆ ผิก กรุณาแจ้งมายังผู้เขียนด้วยครับ จะได้ทำการแก้ไขข้อมุลให้
ถูกต้อง ครับ
กลับหน้าหลัก บทความ
 

AVR robotตอน_รู้จักกับไมโครคอนโทรเลอร์ AVR



หุ่นยนต์ Built-in programmer for AVR


รู้จักกับไมโครคอนโทรเลอร์



ไมโครคอนโทรเลอร์ เป็น IC ที่สามารถโปรแกรมได้ และในปัจจุบันจะมีไมโครคอนโทรลเลอร์ ถูกผลิตออกมามากมายหลายรูปแบบ หรือหลายตระกูลด้วยกันแต่การใช้งานไมโครคอนโทรลเลอร์นั้นจะมีหลักการทำงานคล้ายๆกัน แต่อาจจะแตกต่างทางด้านของสถาปัตยกรรมของตัวไมโครคอนโทรลเลอร์ตัวนั้นๆ

ไมโครคอนโทรลเลอร์ ตระกูล AVR เป็นไมโครคอนโทรลเลอร์ตระกูลหนึ่งซึ่งนิยมนำมาใช้งานในบ้านเรา โดยเฉพาะกับหุ่นยนต์รุ่น Built-in programmer for AVR นี้จะใช้ไมโครคอนโทรลเลอร์ AVR รุ่น ATmega8 ซึ่งเว็บไซด์ผู้ผลิตไมโครคอนโทรลเลอร์ ตระกูลนี้คือ http://www.atmel.com ซึ่งผู้อ่านสามารถเข้าไปอ่านรายละเอียดเพิ่มเติมได้



สัญลักษณ์ของ ATMEL ผู้ให้กำเนิด AVR


รู้จักกับไมโครคอนโทรเลอร์ AVR



ไมโครคอนโทรเลอร์ AVR จะมีให้เลือกใช้งานตั้งแต่ 8 bit ถึง 32 bit ดังนี้
32-bit AVR UC3
8/16-bit AVR XMEGA
8-bit megaAVR
8-bit tinyAVR
ซึ่งรายละเอียดสามารถเข้าไปอ่านได้โดยที่ที่เว็บไซด์

การพัฒนาด้วยภาษา C

ในการเขียนโปรแกรมด้วย ภาษา C นั้น จะใช้ตัวคอมไพเลอร์ AVR studio V4 ซึ่งมีเครื่องมือในการพัฒนามากมายและใช้งานได้ฟรี ซึ่งสามารถเข้าไป download ได้ฟรีที่เว็บไซด์ http://www.atmel.com เช่นเดียวกัน



AVR studio V4


แต่ในปัจจุบันได้มีการพัฒนาเป็น AVR studio 5 แล้วครับ



AVR studio 5


ATmega8

ไมโครคอนโทรลเลอร์ ATmega 8 เป็นไมโครคอนโทรลเลอร์ AVR ขนาด 8 bit รุ่นเล็ก ขนาด 28 ขา และมี I/O ใช้งาน 23 I/O ด้วยกัน ส่วนในรายละเอียดต่างๆหรือข้อมูลเพิ่มเติมสามารถอ่านได้จาก datasheet ครับ


ตำแหน่งขาใช้งานของ ATmega 8

การเขียนโปรแกรมเบื้องต้น

ในการเขียนโปรแกรมทุกครั้งเราต้องรู้ว่าการต่อตำแหน่งขาของ IC นั้นต่อแบบไหน ต่อกับอะไร ขาอะไรทำหน้าที่ Input และ ขาอะไร ทำหน้าที่เป็น Output หากไม่รู้แล้วก็จะไม่สามารถเขียนโปรแกรมได้ โดยภาษา C นั้นจะเป็นการทำงานในลักษณะของฟังก์ชั่น ซึ่งจะต้องมี ฟังก์ชั่น main เป็นฟังก์ชั่นเริ่มในการทำงาน

ตัวอย่างการอธิบายการทำงานของโปรแกรม

#include // กำหนด AVR ทำหน้าที่ I/O
int main(void) // เริ่มฟังก์ชั่น main
{
DDRB =0XFF; // กำหนดคุณสมบัติขา PORT B เป็น Output
DDRD =0XFF; // // กำหนดคุณสมบัติขา PORT B เป็น Output
While(1)
{
PORTB=0x10; // 0001 0000 ส่งค่าออกที่ขา PORT B ขาที่ B4
PORTD=0x80; // 1000 0000 ส่งค่าออกที่ขา PORT B ขาที่ B7
}
return 0;
}


ส่วนรายละเอียดการเขียนโปรแกรมสามารถหาอ่านได้ในหนังสือ ไมโครคอนโทรลเลอร์ AVR ทั่วไป หรือ อ่านในบทความของ AVR ที่ผู้เขียนจะเขียนขึ้นมาให้อ่านในโอกาสต่อไปครับ


เขียนเมื่อ 22 ธ.ค. 2554