Arduino tutorial 5: First project (Blink with LED) กับ Arduino UNO R3

มาแล้วจ้า ตามคำเรียกร้อง กับ admin แก๊งเด็กมือใหม่ หัดใช้ Micro contoller วันนี้มาตามคำสัญญาที่ให้ไว้กับการเริ่ม Project แรก ที่มือใหม่และมือเก่าทุกๆ คน เคยผ่านกันมาแล้ว นั่น ก็คือ Blink (การควบคุมไฟกระพริบบน Arduino UNO R3 borad)

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

ควบคุมไฟกระพริบบนบอร์ดด้วยโปรแกรม 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 ในใช้อยู่เราก็เลือกให้ตรง โดยในที่นี้จะเลือกเป็น /dev/cu.usbmodemfd141(Arduino/Genuino Uno) หรือ ถ้าเป็น Windows ให้เลือก  port: COM3

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

Compile

Upload

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

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

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

  • Arduino UNO R3
  • Breadboard
  • LED
  • Resistor 220 Ω (อาจจะใช้ค่าอื่นก็ได้)

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

เป็นอย่างไรกันบ้างครับ กับ Project แรกของทุกๆ คน คงไม่ยากนะครับ สำหรับการควบคุมไฟกระพริบ ในบทความต่อไป admin ว่าจะมาลองทำไฟเขียวไฟแดง วิ่งไปวิ่งมาดูหน่อยซิ หลอดไฟ LED 1 ดวง ทำผ่านได้ ทำไม 3 ดวงจะทำผ่านไม่ได้ ใช่ไหมครับ???

อย่าลืมมาให้กำลังใจ admin กับแก๊งค์เด็กมือใหม่ ในการทำ Project ที่ 2 กับบทความหน้านะครับ
วันนี้ admin ขอ さようなら。(ซาโยนาระ) ไปก่อนนะครับ บั๊บ บายยยยย ครับ

cr.www.sat2you.com

Leave a Reply