Arduino Project‎ > ‎

01. เริ่มต้นกับอาร์ดูโน (บอร์ดแดง)

เริ่มต้นกับ Arduino Red Board  (UNO)

รายละเอียด และตำแหน่งสัญญาณ

อารฺดูโนที่นำมาใช้ทดสอบเป็นของบริษัท sparkfun มีรายละเอียดตำแหน่งขาดังนี้


เป็นรุ่น  UNO สเป็คคร่าวๆมีดังนี้  
  • ATmega328 microcontroller with Optiboot (UNO) Bootloader
  • USB Programming Facilitated by the Ubiquitous FTDI FT231X
  • Input voltage - 7-15V
  • 0-5V outputs with 3.3V compatible inputs
  • 14 Digital I/O Pins (6 PWM outputs)
  • 6 Analog Inputs
  • ISP Header
  • 32k Flash Memory
  • 16MHz Clock Speed
  • All SMD Construction
  • R3 Shield Compatible
  • Red PCB!
ถ้าต้องการดูรายละเอียดให้เข้าไปที่เว็บของผู้ผลิต
สำหรับ Circuit Diagram ดูได้จาก  http://cdn.sparkfun.com/datasheets/Dev/Arduino/Boards/RedBoard-v21.pdf

ตำแหน่งอุปกรณ์เบื้องต้น

การติดตั้งบอร์ดอาร์ดูโนเข้ากับเครื่องคอมพิวเตอร์และการทดสอบ
  1. ติดตั้งโปรแกรม   ดาวน์โหลดโปรแกรมอาร์ดูโน จาก  http://arduino.cc/  ในเมนู Download  ซึ่งมีให้เลือกทั้ง Windows   Mac OS X  และ Linux: 32 bit64 bit  ในขณะนี้  ใช้บน Windows และเป็นเวอร์ชั่น arduino-1.0-windows.zip  นำมาขยาย (Unzip) แล้วคัดลอกทั้งโฟลดเดอร์ไปติดตั้งที่ C:\Program Files\    (สามารถติดตั้งที่ใหนก็ได้)  และเพื่อความสะดวกของการเรียกใช้ให้ทำ Short cut เอาใว้ จะได้ไม่ลืม  
  2. การติดตั้ง  USB to Serial   เมื่อต่อสายดาวน์โหลดจากบอร์ดเข้ากับพอร์ท USB  สามารถตรวจสอบพอร์ทได้จาก การคลิกขวาที่ Mycomputer แล้วดูที่
     Device Manager   ในที่นี้ได้หมายเลขพอร์ทเป็น COM6    

  3. กรณีที่ไม่มี driver ให้ download driver จาก http://www.ftdichip.com/Drivers/VCP.htm  กรณี window 64 บิต  จะได้ไฟล์ CDM v2.12.18 WHQL Certified.zip  แล้ว Unzip  ไปใว้ที่ใดที่หนึ่ง แล้วสั่ง Update driver เมื่อถามหาที่อยู่ Driver ให้ใช้ Browse my computer for driver  แล้วระบุไปที่ เรา Unzip ไฟล์ใว้  

  4. การเลือกพอร์ท
  5.  เมื่อรันโปรแกรม Arduno ใช้เมนู Tools  เลือก Serial Port แล้วคลิกเลือกพอร์ท COM ที่ตรวจสอบได้จาข้อ 2



    4. การเลือกบอร์ด  จาก เมนู Tools ในโปรแกรม Arduino เลือก Board  สำหรับบอร์ดที่ทดลองให้คลิกที่ Arduino UNO


    5. การกำหนด  Programmer  ให้เลือก AVRISP mkII
  6. การกำหนดโฟลเดอร์สำหรับใว้โปรแกรมที่เขียนขึ้น  ในArduino เรียกโฟลเดอร์นี้ว่า "Sketchbook" สามารถเลือกใว้ที่     ใหนก็ได้  โดยใช้เมนู File เลือก Preference  
  7. การเขียนโปรแกรมใหม่   ใช้เมนู File เลือก NEW  ให้เขียนโปรแกรมตามตัวอย่างนี้  
    void setup() {                           //ส่วนฟังก์ชั่น setup ใช้ใส่คำสั่งที่ต้องการให้ทำครั้งเดียว ก่อนเริ่มทำโปรแกรม loop
         pinMode(13, OUTPUT); // กำหนดให้ขา digital 13 เป็นขาเอาท์พุท 
    }
    void loop() {                             //ทำงานต่อเนื่องไม่มีการหยุด
         digitalWrite(13, HIGH);  // ทำให้ LED ติด
         delay(500);                         // หน่วงเวลาการทำงานใว้ 500 ms
         digitalWrite(13, LOW);   // ทำให้ LED ดับ 
         delay(300);                         // หน่วงเวลาการทำงานใว้ 300 ms
    }
  8. การรันโปรแกรม  ใช้เมนู File  เลือก Upload Using Programmer หรือใช้     ขั้นตอนนี้อาร์ดูโน จะทำการแปลโปรแกรม  แล้วดาวน์โหลดโปรแกรมลงบอร์ดทดลอง  สุดท้าย  บอร์ดทดลองก็รันโปรแกรม  ถ้าไม่ทำให้ลองกดสวิทช์รีเซ็ตของบอร์ดทดลอง
ข้อควรจำ  เนื่องจากขา Digital 0 (PD0) เป็นขา RxD และ Digital 1 (PD1) เป็นขา TxD ของพอร์ทอนุกรม UART ซึ่ง Arduino ใช้เป็นพอร์ทดาวน์โหลดโปรแกรมลงชิพ AVR ดังนั้นขณะดาวน์โหลดโปรแกรมนี้  ห้ามต่อขา D0 และ D1 เข้ากับวงจรใดๆ 

ข้อมูลเพิ่มเติมศึกษาได้จากคู่มือบอร์ดทดลอง
วงจรทดลอง
สำหรับการทดลองแรกนี้  จะใช้เพียงบอร์ดทดลองอาร์ดูโนอย่างเดียว  ไม่ต้องใช้อุปกรณ์อื่นจากภายนอก  โดยจะให้ LED ที่ D13 ติดกระพริบ  ไฟ้ฟ้า +5 โวลท์ก็ใช้จากพอร์ท USB ไม่ต้องต่อเพิ่ม

   


ความหมายของโปรแกรม  

อาร์ดูโน จัดโปรกรมเป็นฟังก์ชั่นหลายๆฟังก์ชั่น แต่หลักๆจะมี 

  • ฟังก์ชั่น setup  ใช้สำหรับกำหนดหน้าที่ของขาสัญญาณ
  • ฟังก์ชั่น loop เป็นส่วนของฟังก์ชั่น main  อาร์ดูโนจะทำงานที่ฟังก์ชั่นนี้เป็นหลัก
  • นอกจากนี้  สามารถมีฟังก์ชั่นอื่นๆได้อีก  ดังจะเห็นได้จากตัวอย่างต่อๆไป 


กำหนดขาสัญญาณ

void setup() {               

  // initialize the digital pin as an output.

  pinMode(13, OUTPUT);    

}

โปรแกรมที่ต้องการให้ทำ

void loop() {

            digitalWrite(13, HIGH);               // set the LED on

            delay(500);                               // wait for a second

            digitalWrite(13, LOW);                // set the LED off

            delay(300);                               // wait for a second

}



Ċ
Narong Buabthong,
Jan 21, 2016, 5:20 AM
Comments