เรียนรู้การเขียนโปรแกรม Arduino กับสวิตช์และหลอดแอลอีดี - Griffinics

Latest

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

วันพฤหัสบดีที่ 14 พฤษภาคม พ.ศ. 2563

เรียนรู้การเขียนโปรแกรม Arduino กับสวิตช์และหลอดแอลอีดี

 Arduino กับสวิตช์และหลอดแอลอีดี

       ในการใช้งานเครื่องอำนวยความสะดวกต่างๆที่ภายในมีระบบไฟฟ้า วงจรอิเล็กทรอนิกส์ ระบบคอมพิวเตอร์ เข้ามาเกี่ยวข้องเป็นส่วนหนึ่งในการทำงาน ซึ่งในการใช้งานเครื่องนั้นๆจำเป็นอย่างยิ่งที่ต้องมีการสื่อสารระหว่างผู้ใช้และเครื่องผ่านอุปกรณ์บนแผงหน้าเครื่อง เพื่อควบคุมการเปิด-ปิด การสั่งงาน การแสดงสถานะการทำงาน ต่างๆเหล่านี้ สิ่งที่ใช้สื่อสารระหว่างคนกับเครื่องที่ง่ายและนิยมใช้กันมานานก็คือ สวิตซ์(Switch) และหลอดแอลอีดี(LED:Ligh Emitting Diode ,ไดโอดเปล่งแสง) ซึ่งก็จะได้เรียนรู้ในการเขียนโปรแกรมเพื่อใช้งานกับบอร์ดไมโครคอนโทรลเลอร์ Arduino ในตัวอย่างต่อไป





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

  • หลักการต่อวงจรเพื่อใช้งานสวิตช์แบบกดติดปล่อยดับ(Button Switch)

สวิตช์แบบนี้มีหลายรูปแบบขึ้นอยู่กับลักษณะการนำไปใช้ งาน ซึ่งในการต่อสวิตช์เพื่อใช้งานกับวงจรโดยทั่วไปแล้วสามารถแบ่งออกได้ 2 แบบ ตามวิธีการต่ออุปกรณ์เข้ากับวงจรได้ดังนี้

ตัวอย่างสวิตช์กดติดปล่อยดับ ที่ใช้ในแผงวงจร
ตัวอย่างสวิตช์ปุ่มกดที่ใช้กับตู้ควบคุมไฟฟ้า


โครงสร้างภายในสวิตช์กดติดปล่อยดับ
สัญลักษณ์ทางอิเล็กทรอนิกส์


  1. การต่อสวิตช์แบบ Active HIGH 


การต่อสวิตช์เข้ากับวงจรแบบ Active HIGH

       การต่อแบบนี้สวิตช์จะอยู่บนและตัวต้านทานจะอยู่ล่าง มีหน้าที่ในการอ้างอิงแรงดันให้กับขาสัญญาณ ซึ่งเมื่อต่อสวิตช์เข้ากับสัญญาณที่ขา D0 ของ Arduino ค่าที่ได้ปกติจะเป็น LOW เมื่อสวิตช์ถูกกดจะเปลี่ยนสถานะเป็น HIGH ซึ่งมีการต่อวงจรใช้งานดังรูป 



วงจรการต่อใช้งานจริง

  • ฟังก์ชั่นที่ใช้ในการเขียนโปรแกรมรับค่าสัญญาณจากสวิตช์

digitalRead(pin)  ใช้ในการรับค่าจากสวิตช์
pin : ขาดิจิตอลที่ต้องการควบคุม เช่น 0 หรือ ชื่อตัวแปร เช่น ต้องการอ่านค่าสัญญาณจากขา D0 จะได้ digitalRead(0); ซึ่งหากสวิตช์โดนกด ค่าที่อ่านได้จะเป็น HIGH

2.การต่อแบบ Active LOW 

       การต่อแบบนี้การต่อแบบนี้ตัวต้านทานจะอยู่บนและสวิตช์จะอยู่ล่าง ซึ่งเมื่อต่อสวิตช์ เข้ากับสัญญาณที่ขา D0 ที่ได้ ปกติจะเป็น HIGH เมื่อสวิตช์ถูกกดจะเปลี่ยนสถานะเป็น LOW ค่าที่อ่านได้จะเป็น LOW มีการต่อวงจรใช้งานดังรูป

การต่อสวิตช์เข้ากับวงจรแบบ Active LOW
วงจรการต่อใช้งานจริง

  • การต่อวงจรเพื่อใช้งานหลอดแอลอีดี LED

      หลอด LED ในปัจจุบันมีการออกแบบและผลิตออกมาใช้งานหลากหลายรูปแบบหลายชนิด แต่โดยพื้นฐานการต่อใช้งานแล้วเหมือนกัน คือ มีขาต่อใช้งาน ขาบวก และ ขาลบ ดังรูป


ตัวอย่าหลอดแอลอีดี

และในการต่อใช้งานจริงต้องต่อตัวต้านทาน(Resistor) เพื่อจำกัดกระแส ป้องกันไม่ให้หลอดได้รับความเสียหายซึ่งการต่อใช้งานกับ Arduino สามารถต่อวงจรควบคุมใช้งานได้ 2 แบบ คือ


1.การต่อแบบ OUTPUT HIGH 

       หลอด LED จะติดเมื่อได้รับสัญญาณควบคุมเป็น HIGH หรือระดับแรงดันไฟฟ้า 5 โวลต์ ดังรูป ซึ่งจะทำให้เกิดการฟอร์เวิดไบอัส(Forword Bias) ทำกระแสไหลผ่านหลอด LED ผ่านตัวต้านทานจำกัดกระแส 330 โอห์ม แล้วครบวงจรที่จุดกราวด์ ทำให้หลอดติด

การต่อหลอดแอลอีดีเข้ากับวงจรแบบ  Output HIGH
วงจรการต่อใช้งานจริง
แผนผังวงจร(Schematic Circuit) การต่อใช้งานจริง


  • ฟังก์ชั่นที่ใช้ในการเขียนโปรแกรมเพื่อควบคุมการติด-ดับ ของหลอด LED

digitalWrite(pin,valueใช้ในการสั่งงาน Output 
pin: ขาดิจิตอลที่ต้องการควบคุม เช่น 0 หรือ ชื่อตัวแปร
value: ค่าของระดับแรงดันที่ที่ต้องการควบคุม HIGH , LOW

เช่น หากต้องการให้หลอดไฟติด ก็สั่งงานด้วย digitalWrite(0,HIGH);

2.การต่อแบบ OUTPUT LOW 

หลอด LED จะติดเมื่อได้รับสัญญาณควบคุมเป็น LOW หากต้องการให้หลอดไฟติด ก็สั่งงานด้วย digitalWrite(0,LOW); ดังรูป
การต่อหลอดแอลอีดีเข้ากับวงจรแบบ  Output LOW
วงจรการต่อใช้งานจริง
แผนผังวงจร(Schematic Circuit) การต่อใช้งานจริง


       การควบคุม OUTPUT นอกจากจะสามารถควบคุมการติดดับของหลอด LED แล้ว ยังสามารถนำไปควบคุมอุปกรณ์ไฟฟ้าอิเล็กทรอนิกส์อื่นๆได้เช่น มอเตอร์ไฟฟ้า, หลอดไฟ, เครื่องใช้ไฟฟ้าที่ใช้กำลัง
ไฟฟ้าวัตต์สูงต่างๆได้ ผ่านอุปกรณ์ที่เป็นตัวกลางในการควบคุมที่เรียกว่า ไดร์เวอร์ เพียงแต่จะต้องเรียนรู้การควบคุมอปกรณ์นั้นๆให้สามารถทำงานได้อย่างที่เราต้องการ
อุปกรณ์ที่ใช้ในการเรียนรู้

  1. บอร์ดไมโครคอนโทรลเลอร์ Arduino UNO
  2. หลอด LED
  3. ตัวต้านทาน ค่า 330 Ω และ 10 ㏀
  4. สวิตช์
  5. โปรเจคบอร์ด(ถ้ามี)

แผนผังวงจร(Schematic Circuit)


การต่อวงจรสำหรับต่อทดลองโปรแกรม



โฟล์ชาร์ตการทำงานของโปรแกรม

 







ซอร์สโค้ดโปรแกรม (Source Code) ที่ใช้ในการทดลอง

//Project Name: Arduino with Digital PIN
//Create Date: 14 Dec 2017
//Description: led is On if Sw1 pressed.

#define led 1  //define pin name led is D0 pin
#define Sw1 0 //define pin name Sw1 is D1 Pin

//Create Setup function
void setup(){
  //setup digital pin Mode. (INPUT/OUTPUT)
  pinMode(led, OUTPUT);  //Setup led pin is OUTPUT Mode
  pinMode(Sw1,INPUT); //Setup Sw1 pin is INPUT Mode

  //Setup status pin for Default
  digitalWrite(led,LOW); //led off
}

//Main Loop
void loop(){
  if(digitalRead(Sw1)==LOW){ //if Sw1 Pressed
    digitalWrite(led,HIGH);  //led On
  }else{      //else
    digitalWrite(led,LOW);   //led off
  }
}
การเรียนรู้การใช้งาน Arduino เบื้องต้น

ข้อมูลอ้างอิง: www.arduino.cc

ไม่มีความคิดเห็น:

แสดงความคิดเห็น