เริ่มเขียนโปรแกรมแรกกับ Arduino UNO R3

What would be here?

บทความนี้จะสอนวิธีการเขียนโปรแกรมพื้นฐานสุดๆเป็นโปรแกรมไฟกระพริบ (Blink) ซึ่งถือว่าเป็นโปรแกรมแรกที่ผู้เริ่มต้นควรฝึกเขียนครับ

โดยครั้งนี้เราจะใช้ Arduino UNO R3 เป็นบอร์ดทดลองโดยจะใช้ pin 13 ในการส่งสัญญาณ เนื่องจากมี LED built-in อยู่ทำให้เราไม่จำเป็นต้องต่อ LED ภายนอกก็ได้

อุปกรณ์สำหรับ built-in LED blink

วิดิโอตัวอย่างการทำงานของ blink

เตรียมโปรแกรม Arduino IDE

อันดับแรก ให้เราลงโปรแกรมเพื่อใช้เขียนชุดคำสั่งลงบน Arduino ใครยังไม่มีให้ไป ดาวโหลดและติดตั้ง Arduino IDE ก่อนจากเวปไซต์ของ Arduino ครับ

หลังจากลงโปรแกรมเรียบร้อบแล้ว ให้เสียบสาย usb เพื่อเชื่อม Arduino และ คอมพิวเตอร์เข้าด้วยกันและทำตามขั้นตอนข้างล่างดังนี้

หลังจากเปิดโปรแกรมขึ้นมา เลือกพอร์ตการเชื่อมต่อให้ตรงกับ usb ที่เราเสียบ Arduino ไว้ ไปที่ Tools > Port:…

ถ้าใครไม่รู้ว่า port Arduino คืออันไหน ให้ออกจากโปรแกรม ถอดสาย usb แล้วโปรแกรมใหม่ จากนั้นก็เข้าไปดูว่ามี port อะไรอยู่บ้าง หลังจากนั้น ปิดโปรแกรมเสียบ usb แล้วเปิดอีกครั้ง port ที่เพิ่มเข้ามาจากตอนไม่เสียบ usb ก็คือ พอร์ตของ Arduino นั่นเองครับ

ส่วนที่ Tools > Board ให้เลือก Arduino/Genuino Uno

Arduino IDE

เขียนโปรแกรมเพื่อสั่งให้หลอด LED กระพริบ

จริงๆแล้วเจ้าตัว Arduino IDE จะมีโปรแกรมพื้นฐานเตรียมให้เราอยู่แล้ว เราสามารถโหลด source code ออกมาใช้งานได้เลย

ไปที่ File > Examples > 01. Basics > Blink

Arduino จะโหลด source code ขึ้นมาหลังจากนั้น ให้เรา click สัญลักษณ์ ลูกศรชี้ขวา เพื่อทำการ upload โปรแกรมไปสู่ board (วงกลมสีแดงตามรูปข้างล่าง)

เลือก upload source code icon

หลังจาก upload เรียบร้อย LED built-in สีเขียวๆบนบอร์ด ก็จะกระพริบตามที่เราสั่งแล้ว :)

หลอดไฟเขียบวกระพริบ

อธิบายการทำงานของโปรแกรม blink

การเขียนโปรแกรมใน Arduino IDE จะมี function หลักที่จำเป็นอยู่สองส่วนด้วยกันคือ setup() และ loop()

โดย setup จะถูกเรียกครั้งเดียวในตอนเริ่มต้น และ loop จะถูกวนเรียกไปเรื่อยตลอดการทำงาน

ส่วน void setup()

1
void setup() {
2
pinMode(LED_BUILTIN, OUTPUT);
3
}

function pinMode จะใช้ในการ set ค่าของ pin แต่ละตัวว่าเป็น mode อะไร อย่างเช่น OUTPUT (ส่งสัญญาณออก) และ INPUT (อ่านสัญญาณเข้า)

โดย syntax การใช้งานเป็นดังนี้ pinMode(<ขา pin>, <โหมด>)

ในที่นี้เรา set ให้ขา 13 (LED_BUILTIN) เป็นขาส่งสัญญาณออก

LED_BUILTIN เป็นค่าคงที่ที่ตั้งไว้โดยตัวโปรแกรม ในที่นี้เราเลือกบอร์ด Arduino UNO ซึ่งจะได้ค่าออกมาเป็น 13 ถ้าใครจะเขียนเลข 13 ลงไปแทน LED_BUILTIN ก็ได้เหมือนกัน การทำงานจะไม่แตกต่างครับ

ส่วน void loop()

ประกอบไปด้วยคำสั่ง 2 คำสั่ง

  1. digitalWrite(<pin>, <HIGH/LOW>) ใช้ส่งค่า เปิด/ปิด (HIGH/LOW) ไปยัง pin ที่กำหนด
  2. delay(milliseconds) ใช้หน่วงเวลาตามจำนวน มิลลิวินาทีที่กำหนด

การทำงานของตัวโปรแกรม

1
void loop() {
2
digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level)
3
delay(1000); // wait for a second
4
digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW
5
delay(1000); // wait for a second
6
}
  • บรรทัดที่ 2 – สั่งให้จ่ายไฟไปยัง pin 13 (หลอดไฟเปิด)
  • บรรทัดที่ 3 – หน่วงเวลา 1000 มิลลิวินาที หรือ 1 วินาที
  • บรรทัดที่ 4 – สั่งให้เลิกจ่ายไฟไปยัง pin 13
  • บรรทัดที่ 5 – หน่วงเวลา 1 วินาที

หลังจากนั้นโปรแกรมก็จะวนกลับไปทีบรรทัดที่ 2 ใหม่ไปเรื่อยๆ ทำให้เราเห็นหลอดไฟกระพริบต่อเนื่อง ใครเห็นว่ากระพริบช้าไปก็อาจไปลองแก้ไขตัวเลข 1000 ให้น้อยลง หลอดไฟก็จะกระพริบเร็วขึ้นครับ

ต่อโปรแกรม Blink กับ LED ภายนอก

เนื่องจาก Buiit-in LED ของ Arduino UNO ต่ออยู่กับ pin ที่ 13 ทำให้เราสามารถนำวงจร led ภายนอกมาต่อเพื่อให้ไฟกระพริบไปพร้อมกันกับ built-in ได้เลยดังนี้

อุปกรณ์สำหรับเชื่อต่อ blink กับวงจรภายนอก

เนื่องจาก Arduino UNO จะจ่ายไฟออกที่ 5V และ led ส่วนใหญ่จะทนไฟได้ที่ 3v เราจึงจำเป็นต้องใช้ตัวต้านทานเพื่อลดแรงดันที่จะเข้า led เพื่อป้องกันหลอดขาด ถ้าใครมี LED ที่ทนไฟได้ 5v อยู่แล้วก็สามารถต่อขั้วบวกกับ pin 13 และขาลบลง ground ได้เลย ในที่นี้เราจะต่อวงจรเพื่อให้ LED 3v กระพริบนะครับ

วงจรบอร์ดอเนกประสงค์ arduino
วงจรปรับแรงดัน arduino

สอบถาม ติดชม เสนอแนะ ได้ที่ช่อง comment ด้านล่างเลยครับ

แหล่งซื้อราคาถูกสำหรับคนที่เพิ่งเริ่ม

ชุด Arduino kit สำหรับผู้เริ่มต้น
แนะนำให้ซื้อจาก AliExpress เป็นชุด Starter kits มีอุปกรณ์พร้อมสำหรับผู้เริ่มเล่นครับ (ราคาประมาณ 600-700 บาท)

Copyright © 2022. All rights reserved - ThaiArduino.Club