วันศุกร์ที่ 19 กุมภาพันธ์ พ.ศ. 2559

ไม่ต้องใช้ board arduino สำเร็จรูปกันเถอะ



ทำไมเราต้องทำ Arduino StandAlone  ก็เพราะว่าบ้างงานมีพื้นที่จำกัด และต้องการความประหยัด
วิธีทำให้ Atmega328 เป็น Arduino StandAlone เป็นสิ่งที่เราจะทำกันในวันนี้  มีอยู่ 2 ขั้นตอนด้วยกันคือ
1.ทำ Burn Arduino Bootloader ด้วย Arduino UNO
2.วิธีโปรแกรม(flash rom) ผ่านทางสาย serial หรือ usb



เพื่อไม่ให้เสียเวลามาดูที่ละขั้นตอน

1.ทำ Burn Arduino Bootloader ด้วย Arduino UNO
ปกติแล้ว IC Microcontroller Atmega เช่น atmega328 / atmega168 / atmega8 ที่ซื้อมาตอนแรกจะยังไม่สามารถนำมาใช้เป็น IC Arduino ได้ ก็เพราะว่ายังไม่มี "Arduino Bootloader"




1.1 อุปกรณ์ที่ใช้
- ไอซี atmega328   1 ตัว
- crystal 16 MHz  1 อัน
- ความต้านทาน 10k  1 อัน
- ตัวเก็บประจุ 22 picofarad  2 ตัว
- สายไฟ (jump wire)

1.2ขั้นตอนการทำ Arduino Bootloader
1.2.1 แปลง Arduino Uno ให้เป็นเครื่องโปรแกรม Arduino as ISP โดยโปรแกรมนี้อยู่ที่ File > Examples > ArduinoISP


ต่อสาย Arduino Uno เข้าคอมพิวเตอร์ แล้ว upload โปรแกรม Arduino as ISP ลงไป 


แค่นี้ก็ได้เครื่องโปรแกรมเมอร์ Arduino แล้ว

1.2.2 ต่อสายวงจร ดังรูปด้านล่าง



1.2.3 หลังจากนำอุปกรณ์ต่างๆต่อวงจรครบแล้ว ก็พร้อมที่จะ upload Arduino Bootloader แล้ว ในตัวอย่างนี้ เราจะทำ Bootloader เป็น Arduino Uno 
   - เลือกบอร์ดเป็น Arduino Uno ไปที่เมนู Tools > Board > Arduino Uno



- เลือกวิธีโปรแกรม(flash rom)แบบ Arduino as ISP ไปที่เมนู Tools > Programmer> Arduino as ISP



- ทำการ upload Arduino Bootloader ไปที่เมนู Tools >ฺ Burn Bootloader




หลังจากทำ bootloader แล้ว ขั้นต่อไปคือการโปรแกรม(flash rom) ผ่านทางสาย serial หรือ usb

2.วิธีโปรแกรม(flash rom) ผ่านทางสาย serial หรือ usb



2.1 อุปกรณ์ที่ใช้
- ไอซี atmega328   1 ตัว
-ิ FTDI Platinum V2.1 (module usb to serial UART) 1 ตัว
- crystal 16 MHz  1 อัน
- ความต้านทาน 10k  1 อัน
- ตัวเก็บประจุ 22 pF  2 ตัว
- ตัวเก็บประจุ 0.1 uF  2 ตัว
- LED  1 ตัว
- ความต้านทาน 220 หรือ 470 โอห์ม 1 ตัว

2.2ขั้นตอนการทำโปรแกรม(flash rom)
2.1 ต่อรูปตามวงจรด้านล่าง


2.2 เลือกบอร์ดให้ตรงกับ IC ถ้าเป็น IC Arduino Atmega328 เลือกบอร์ดเป็น Arduino Uno ส่วนเป็น IC Arduino Atmega8 เลือกบอร์ดเป็น Arduino NG/Atmega8
2.3 อัพโหลดโปรแกรมลงไป

ตัวอย่างโปรแกรม (นำมาจากโปรแกรม Blink โปรแกรมตัวอย่างของโปรแกรม Arduino)

// the setup function runs once when you press reset or power the board
void setup() {
  // initialize digital pin 13 as an output.
  pinMode(13, OUTPUT);
}

// the loop function runs over and over again forever
void loop() {
  digitalWrite(13, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(1000);              // wait for a second
  digitalWrite(13, LOW);    // turn the LED off by making the voltage LOW
  delay(1000);              // wait for a second
}


เมื่อได้ ic arduino ที่ลงโปรแกรมตามที่ต้องการแล้ว ถอด ic ออกมาแล้วต่อวงจรตามรูป

ไม่มีความคิดเห็น:

แสดงความคิดเห็น