REVIEWS

REVIEWS GRAVITECH

รีวิว

Arduino startup kit บทที่ 10: Digital Write

14 May 2019

 กลับมาอีกแล้วกับ Arduino startup kit วันนี้เราจะมาดูว่า หากเราจะทำให้ Arduino Nano ของเราสั่งให้ LED ติด จะทำยังไงกันบางคนก็พอจะเดาได้แล้วนะ แต่ก่อนอื่นเรา มาทำความรู้จักกับอุปกรณ์ที่จะทำการทดลองกันก่อนดีกว่า แน่นอนที่สุดว่าวันนี้ พระเอกของเราจะเป็นใครไม่ได้เลย ก็คือ เจ้า LED เลย ซึ่งใครอยากทราบรายละเอียด ก็สามารถไปดูได้ ในบทที่ 5 เลย  

 

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

 

 

     คราวนี้เรามาต่อวงจรตามแผนผังกันจะได้แบบนี้

 

 

 

     คราวนี้มาถึงเวลาการเขียน Code สำหรับการให้ LED ติดซึ่งคำสั่งที่เราจะใช้  คือ

digitalWrite(PIN,value);

     แต่ก่อนที่จะใช้คำสั่งนี้ได้นั้นเราจำเป็นต้องกำหนดโหมดการทำงานให้กับขานั้นเสียก่อนโดย

pinMode(PIN,MODE);

     โดยจากการทดลองวันนี้เราจะให้ ขาที่ 3 เป็นโหลดสำหรับการส่งค่าออกไปซึ่งเราจะกำหนดได้แบบนี้

pinMode(3,OUTPUT);

     หลังจากที่เรากำหนดโหมดการทำงานให้ขาของ Arduino Nano เราก็จะพูดถึงวิธีการใช้งานคำสั่ง digitalWrite กันบ้างก่อนอื่นเราพูดถึงโครงสร้างก่อน คำว่า PIN ก็คือ ขา digital ที่เราจะใช้งาน ส่วน value คือค่าที่จะส่งออกไป โดยจะมีสองค่าคือ HIGH และ LOW  ซึ่งในที่นี้สมมุติว่าเราต้องการให้ LED ติด เราก็จะกำหนดดังนี้

digitalWrite(3,HIGH);

     ส่วนหากต้องการให้ LED ดับเราก็จะใช้คำสั่งแบบนี้แทน

digitalWrite(3,LOW);

     แต่ก่อนอื่นเลย เราจะทำการทดสอบก่อนว่าวงจรถูกและใช้ได้หรือป่าว

Example Code 1:

void setup()

{

       pinMode(3, OUTPUT);      // sets the digital pin as output

}

 

void loop()

{

       digitalWrite(ledPin, HIGH);   // sets the LED o

     จากนั้น อัพโหลดโค๊ดให้กับ Arduino Nano เมื่ออัพโหลดเสร็จ ถ้าถูกต้อง เราจะเห็นว่าไฟ LED มีการติด

     คราวนี้มาถึงจุดสำคัญของบทกันละ เพราะบทนี้เราต้องการที่จะให้คุณ สามารถควบคุม LED ได้โดยกด สวิทซ์ ก่อนอื่นผมจะพูดถึง IF-condition ซึ่งเป็นคำสั่งที่ใช้ในการควบคุมการทำงาน มาดูโครงสร้างกันก่อนดีกว่า

if (เงื่อนไข){

 //สิ่งที่โปรแกรมต้องทำหากเงื่อนไขเป็นจริง

}else{

//สิ่งที่โปรแกรมต้องทำหากเงื่อนไขเป็นเท็จ

}

     ซึ่งในที่นี้เราจะให้มีการเขียนCodeดังนี้

Example Code 2:

int buttonState = 0; set buttonState =  0

void setup()

{

       pinMode(2, INPUT);      // sets the digital pin2 as input

       pinMode(3, OUTPUT);      // sets the digital pin3 as output

}

 

void loop()

{

       buttonSate = digitalRead(2);

       if (buttonSate == 1){

              digitalWrite(ledPin, HIGH);   // sets the LED on

       }

       else{

              digitalWrite(ledPin, LOW);    // sets the LED off

       }

}

     ซึ่งผลลัพท์ที่ได้จะมีลักษณะรูปตามด้านล่างเลย

 

 

     เอาละครับบทเรียนในวันนี้ทำให้เราสามารถควบคุมอุปกรณ์อื่นๆ ในตัวอย่างก็คือ LED ให้สามารถเปิด และปิด ได้โดยใช้ สวิทซ์ที่เป็นตัวสั่งงานไปแล้ว ส่วนใครที่อยากจะศึกษาเรื่อง IF-condition เพิ่มเติม ทางเราจะเขียนบทความพิเศษให้นะครับ ส่วนครั้งต่อไป Arduino startup kit จะเป็นเรื่องอะไรก็ค่อยติดตามกันนะครับ

 

 

เขียนโดย : นาย พัศพงศ์ เจริญพันธ์

เรียบเรียงโดย : นายวรวิช เดชบุญ

SPECIFICATION