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

Arduino IDE

ก่อนที่เราจะเข้าสู่บทเรียนเรื่องของการทำไฟกระพริบ เราจะต้องมีโปรแกรม Arduino IDE ก่อน โดยArduino IDE นั้นเป็นโปรแกรมที่ใช้สำหรับเขียนโค้ดและอัพโหลดโปรแกรมลงบอร์ด Arduino ซึ่งสามารถเข้าไปโหลดได้ที่ https://www.arduino.cc/en/Main/Software

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

หน้า GUI ของโปรแกรม Arduino IDE นั้น แบ่งออกเป็นเป็น 4 ส่วนหลักๆ ได้แก่

  • Menu Bar: เหมือนกับ Menu Bar ของโปรแกรมอื่นๆ เป็นส่วนที่ไว้สำหรับตั้งค่าหรือดูข้อมูลต่างๆ รวมถึงการ save, open และ create ไฟล์
  • Toolbar: ประกอบไปด้วยหลายๆปุ่ม ได้แก่
  • Verify: Compile เพื่อเช็คว่า โปรแกรมเขียนถูกไวยกรณ์หรือป่าว
  • Upload: อัพโหลดโปรแกรมลงบอร์ด ซึ่งจะทำการ Compile ก่อนโดยอัติโนมัติ
  • New: สร้าง Sketch ใหม่
  • Open: เปิด Sketch ที่มีอยู่
  • Save: บันทึก Sketch
  • Serial Monitor: สำหรับแสดงข้อมูลที่ได้รับหรือถูกส่งจากบอร์ด Arduino
  • Text editor: เป็นพื้นที่สำหรับแสดงโปรแกรมที่เราเขียน
  • Message Area: แสดงสถานะของการ Compile และ Upload โปรกรม รวมถึงข้อผิดพลาดหรือ error ต่างๆ
  • Console: แสดงสถานะของการ Compile และ Upload โปรแกรม

โครงสร้างของ Arduino Sketch

void setup() {
 // put your setup code here, to run once:

}

void loop() {
 // put your main code here, to run repeatedly:

}

            การเขียนโปรแกรมบน Arduino นั้น เราจะเขียนโปรแกรมในรูปแบบที่เรียกว่า “Sketch” ซึ่งมาจากการที่ Arduino ถูกออกแบบมาสำหรับการสร้าง Prototype สำหรับทดสอบสิ่งที่คิดไว้ว่าเวิร์คมั้ย คล้ายๆกับการ Sketch ไอเดียลงบนกระดาษนั่นเอง จึงได้เรียกโปรแกรมที่เขียนสำหรับ Arduino ว่าเป็น Sketch นั่นเอง โดย Sketch ของ Arduino จะประกอบไปด้วย 2 ส่วน ได้แก่ ฟังก์ชัน setup() และฟังก์ชัน loop()  โดยทุก Sketch จะต้องมี 2 ฟังก์ชันนี้เป็นพื้นฐาน ไม่งั้น Sketch จะ Compile ไม่ผ่าน

  • ฟังก์ชัน setup() : เป็นส่วนที่เอาไว้ตั้งค่าเริ่มต้นของการทำงาน เวลากดปุ่ม Reset ที่บอร์ดก็จะเริ่มทำจากโค้ดในส่วนนี้ก่อน ซึ่งจะทำแค่รอบเดียวเท่านั้น
  • ฟังก์ชชัน loop() : เป็นส่วนที่เอาไว้เขียนโปรแกรมที่จะทำงานซ้ำๆวนเป็นลูปไปเรื่อย ซึ่งจะทำหลังจากฟังก์ชั่น setup()

ควบคุมไฟกระพริบบนบอร์ดด้วยโปรแกรม Blink

 

Sketch แรกเราที่จะมาเรียนรู้ในวันนี้ก็คือ Blink Sketch หรือ โปรแกรมควบคุมไฟกระพริบนั่นเอง โดยขั้นแรกเราจะลองทำกับ LED บนบอร์ดที่เชื่อมต่อกับ Pin 13 กันก่อน โดยอุปกรณ์ที่ต้องใช้มีดังนี้

โปรแกรม Blink นั้นจริงๆแล้วใน Arduino IDE จะมีโค้ดมาให้อยู่ใน File>Example>01.Basics>Blink หรือใครจะพิมเองก็ได้ตามโค้ดด้านล่าง จะได้คุ้นเคยกับการเขียนโค้ด

// 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
 }

โดยในฟังก์ชั่น setup() จะเป็นการประกาศใช้ Digital Pin 13 เป็น output

ส่วนในฟังก์ชั่น loop() จะใช้คำสั่ง digitalWrite (13, HIGH) เป็นการสั่งให้voltageที่ Digital Pin 13 มีค่าเป็น HIGH หรือ 5 Volt และคำสั่ง digitalWrite (13, LOW) เป็นการสั่งให้voltageที่ Digital Pin 13 มีค่าเป็น LOW หรือ 0 Volt เพื่อทำให้ไฟ LED ติดและดับตามลำดับ ทั้งสองคำสั่งจะมีการคั่นด้วยคำสั่ง delay ซึ่งเป็นคำสั่งที่ใช้ในการหน่วงเวลาให้ทำคำสั่งเดิมค้างไว้เป็นเวลาเท่าไหร่ก่อนที่จะทำคำสั่งถัดไป โดยค่าเวลาที่ใส่ในฟังก์ชั่น delay นั้นจะมีหน่วยเป็น Millisecond ในที่นี้ให้ delay 1000 Millisecond หรือเท่ากับ 1 วินาที

ขั้นตอนต่อไปเราจะมาทำการอัพโหลดโค้ดลงบอร์ด Arduino กัน  เริ่มจากต่อสาย USB จากบอร์ด Arduino เข้ากับคอมพิวเตอร์ของเรา จะมีไฟแสดงสถานะ ON ขึ้นบนบอร์ด จากนั้นเข้าไปที่ Tools>Board: “…………….” แล้วเลือกบอร์ดให้ตรงรุ่นกับที่เราใช้ ในที่นี้เราจะเลือกเป็นบอร์ดArduino/Genuino Uno

จากนั้นจะเป็นการเลือก Serial Port เพื่อเป็นเส้นทางเชื่อมต่อให้คอมพิวเตอร์และบอรฺด Arduino สามารถสื่อสารกันได้ โดยเข้าไปที่ Tools > Port แล้วเลือก Port ให้ตรงกับ Port ที่เราใช้เสียบสาย USB เวลาเราเสียบสาย USB เข้ากับบอร์ดและคอมพิวเตอร์ มันก็จะมีลิสต์ขึ้นมาว่ามี port ในใช้อยู่เราก็เลือกให้ตรง โดยในที่นี้จะเลือกเป็น COM3

สุดท้ายก็ทำการกดปุ่ม Compile เพื่อเช็คว่ามี error หรือข้อผิดพลาดอะไรหรือไม่ ถ้ามีก็ให้ทำการแก้ไขให้เรียบร้อยก่อนจนไม่มี error โดยถ้าทำการ Compile เสร็จเรียบร้อยก็จะขึ้นว่า Done Compiling ตรง Message Area ด้านล่างจึงกดปุ่ม Upload เพื่ออัพโหลดโค้ดของ Sketch ที่เขียนลงไปบนบอร์ด ขณะอัพโหลดไฟ LED ตรง RX/TX บนบอร์ดจะกระพริบ เมื่ออัพโหลดเสร็จไฟก็จะดับไป แล้วเริ่มทำงานตามโปรแกรมที่เราเขียนลงไป

Compile

Upload

ผลที่ได้จากโปรแกรม Blink คือ ไฟ LED บนบอร์ดที่ตัว L กระพริบติด-ดับ สลับกันไปอย่างละ 1 วินาที โดยเราสามารถเปลี่ยนค่าตรง delay เพื่อให้ไฟ LED กระพริบช้าลง หรือ เร็วขึ้นตามที่เราต้องการได้

ควบคุมไฟกระพริบแบบต่อ LED แยก

ทีนี้เรามาลองต่ออุปกรณ์เพิ่มเติมกัน เพื่อเพิ่มความสนุกสนาน อุปกรณ์ที่เราต้องใช้ ได้แก่

Bread Board หรือ Protoboard เป็นอุปกรณ์สำคัญในการทำ Prototype ของงานวงจรอิเล็กทรอนิกส์ ไว้สำหรับต่อวลจรต่างๆเพื่อทดลอง ซึ่งมีด้วยกันหลายขนาด และสามารถนำบอร์ดแต่ละบอร์ดมาต่อกันให้ใหญ่ขึ้นได้อีกด้วย ด้านใน Breadboard จะมีแผ่นนำไฟฟ้าเชื่อมรูต่างๆบนบอร์ดเหมือนมีสายไฟต่อถึงกัน โดยรูที่อยู่บนบอร์ดนั้นจะเอาไว้เสียบสายไฟและอุปกรณ์ เพื่อเชื่อมกันเป็นวงจร ซึ่งแต่ละรูจะเชื่อมต่อกัยในลักษณะดังภาพ ตรงสีน้ำเงินและแดงจะเชื่อมต่อกันเป็นเป็นแทบขนาบข้างเป็นแนวยาว มักใช้ต่อไปเลี้ยงโดย สีแดงจะเป็นไฟบวก และสีน้ำเงินจะเป็นไฟลบ ส่วนตรงสีเหลืองนั้นแต่ละรูในแถวจะเชื่อมถึงกันหมด ส่วนนี้จะไว้ต่ออุปกรณ์และสายไฟเพื่อทำเป็นวงจรต่างๆ

เริ่มต้นทำการต่ออุปกรณ์เพิ่มเติมลงบน Breadboard ตามภาพ โดยต่อขาของ Resistor เข้ากับ Digital Pin 13 บนบอร์ด Arduino และขาของ Resistorอีกด้านต่อเข้ากับ ขั้วบวกของหลอด LED ส่วนขั้วลบของหลอด LED ก็ให้ต่อเข้ากับ GND  โดยการดูขั้วของหลอด LED ง่ายๆก็คือการดูที่ขาของหลอด LED ข้างที่ยาวกว่าจะเป็นขั้วบวก ส่วนข้างที่สั้นจะเป็นขั้วลบ  แต่ถ้าหากขาของ LED โดนตัดไปแล้วหล่ะจะทำยังไง ทีนี้ไม่รู้เลยว่าขาไหนบวกขาไหนลบ วิธีดูขั้วของหลอด LED อีกวิธีหนึ่งก็คือ ดูตรงบากที่ฐานของหลอด LED จะมีลักษณะเหมือนโดนเฉือนไปข้างหนึ่ง ข้างที่โดนเฉือนนั้นจะเป็นขั้วลบนั่นเอง

หลายๆคนอาจจะมีคำถามว่าเวลาต่อ LED ทำไมต้องต่อ R ด้วย เนื่องจาก LED โดยทั่วไปมักจะใช้แรงดันสำหรับทำให้ LED เปล่งแสงประมาณ 2.5-3 V ด้วยคำสั่ง DigitalWrite() Arduino จะส่งออกแรงดันออกมาประมาณ 5V (HIGH) ซึ่งจะทำให้ Voltage ตกคร่อม LED มากเกินไป อาจจะทำให้หลอด LED เสียหรือเสื่อมเร็วได้ ซึ่งค่าความต้านทานที่ใช้นั้นอาจจะใช้เป็นค่าอื่นก็ได้ไม่จำเป็นต้องเป็น 220Ω  แต่ความสว่างของหลอดไฟก็จะแปรผันไปตามค่าของตัวต้านทานที่ใช้ โดยถ้าใช้ R ค่ามาก ความสว่างของ LED ก็จะน้อย และถ้าใช้ R ค่าน้อย ความสว่างของหลอด LED ก็จะมาก แต่ก็ต้องระวังอย่าให้ค่าความต้านทานมีค่ามากหรือน้อยเกินไปด้วย

จากนั้นลองทำการ Upload โค้ดลงบอร์ดดู ผลที่ได้คือ LED ที่ต่อแยกบน Breadboard จะกระพริบเป็นจังหวะ เช่นเดียวกับ LED ที่อยู่บนบอร์ดArduino

สำหรับใครที่สนใจอยากจะซื้อ Arduino UNO R3 และอุปกรณ์ต่างๆไปลองเล่นดู ก็สามารถเข้าไปสั่งซื้อกันได้ที่เว็บ www.lalaisub.com  ราคาถูกมาก เรียนรู้จากการลงมือทำจะยิ่งเข้าใจมากขึ้นใครชอบใจเห็นว่ามีประโยชน์ช่วยแชร์ช่วยไลท์จะขอบคุณอย่างสูง