บอร์ด Arduino มี Digital I/O PINs สำหรับใช้งาน ซึ่งคำว่า I/O หมายถึง Input และ Output นั่นหมายความว่า นอกจาก Pins เหล่านี้จะสามารถเป็น Output เพื่อไปควบคุมอุปกรณ์ต่างๆได้แล้ว มันยังสามารถใช้เป็นตัว Input หรือตัวรับสัญญาณทางไฟฟ้าต่างๆ เพื่อใช้ควบคุมการทำงานของวงจรได้อีกด้วย |
|
|
|
ทุกคนคงรู้จักคำว่า Digital ซึ่งในที่นี้จะหมายถึงสัญญาณทางไฟฟ้าประเภทหนึ่งที่มีค่าการทำงาน 2 ค่า คือ 1 และ 0 ซึ่ง 1 หมายถึง on (HIGH) และ 0 หมายถึง off (LOW) สัญญาณดิจิตอลนั้นสามารถนำไปใช้ประโยชน์ได้มากมายและมีความแม่นยำ |
|
|
การที่เราใช้ Digital Pins ของ Arduino เป็นตัวรับค่าสัญญาณ คือการที่เราให้ Pins นั้นๆ เป็นตัว Input โดยค่าที่ Arduino อ่านได้จะมีอยู่ 2 ค่า คือ HIGH และ LOW ขึ้นอยู่กับ Pin นั้น มีสัญญาณหรือกระแสไฟฟ้าเข้ามาหรือไม่ |
| |
|
|
เป็นอีกหนึ่งสิ่งที่จำเป็นต้องรู้ เมื่อเรานำสวิซท์หรือปุ่ม button ต่อเข้ากับ Input Pin ของ Arduino เราจำเป็นต้องมีตัวต้านทานด้วย เพราะ Input Pin นั้นๆ จะอ่านค่าได้ไม่แน่นอนว่าค่าที่รับมาเป็น HIGH หรือ LOW กันแน่ เนื่องจากหลายๆครั้งที่แรงดันจะอยู่ครึ่งๆกลางๆระหว่าง HIGH กับ LOW เราจึงต้องมีการใส่ตัวต้านทาน Pull-up หรือ Down ลงไป เพื่อกำหนดสถานะให้แน่ชัดไปเลย ว่าจะสูงหรือต่ำกันแน่ |
คำว่า Pull จึงหมายถึงการดึงหรือการบังคับให้เป็นสูงหรือต่ำ |
• Pull-Up คือการบังคับให้ Input มีสถานะ HIGH ตลอดเวลา จนกว่าจะกดปุ่ม เมื่อกดปุ่ม จะเป็น LOW เมื่อไม่กดจะเป็น HIGH หรือเรียกว่า Active Low |
• Pull-Down คือบังคับให้ Input เป็น LOW ตลอดเวลา จนกว่าจะกดปุ่ม เมื่อกดปุ่มจะเป็น HIGH เมื่อไม่กดจะเป็น LOW หรือเรียกว่า Active High |
|
วงจร Pull-Up |
จะต่อตัวต้านทานค่าหนึ่ง เรียกว่า Pull-UP Resistor ไว้ที่ไฟเลี้ยง Vin เพื่อเป็นการรักษาระดับแรงดันไฟฟ้าให้เป็น HIGH ตลอด ,Arduino Input Pin จึงอ่านค่าได้เป็น HIGH ตลอด แต่เมื่อกดปุ่ม Button ,กระแสไฟฟ้าจะไหลลง Ground ทันที Input Pin จึงอ่านค่าได้เป็น LOW |
|
วงจร Pull-Down |
จะต่อตัวต้านทาน หรือ Pull-Down Resistor ไว้ที่ Ground แทน ส่วนปุ่ม Button จะต่อเข้ากับ Vin เมื่อไม่กดจะมีสถานะเป็น LOW แต่เมื่อกดจะเป็น HIGH เพราะกระแสไฟฟ้าจะเลือกไหลเข้าหา Arduino Pin ที่มีความต้านทานน้อยกว่าแทน |
|
จะเห็นได้ว่าวงจรท้ง 2 มีสถานะการทำงานที่ตรงกันข้าม ขึ้นอยู่กับจะเลือกใช้แบบไหน |
|
|
|
| การต่อวงจร Pull-UP / Pull-Down |
|
ตัวต้านทานที่นำมาใช้เป็นตัว Pull-Up / Down Resistor นิยมใช้ค่า 5K - 20K Ω |
|
นำปุ่ม Button มาควบคุมไฟ LED | |
|
|
|
|
มาลองทำวงจร Arduino ง่ายๆแต่ได้ความรู้ คือวงจรที่มีทั้ง Input และ Output แบบ Digital โดยเราจะทำวงจรที่ใช้ Input Pin ของ Arduino มารับค่าการกดปุ่ม แล้วนำค่านั้นไปควบคุม LED อีกทีโดยใช้ Output Pin โดยเราจะใช้วงจรแบบ Pull-Down เพื่อกำหนดให้ LED ติดเมื่อกดปุ่มเท่านั้น |
|
|
ต่อวงจรเตรียมไว้ก่อน โดยอุปกรณ์ที่เราจะใช้ มีดังนี้ |
• Arduino UNO R3 |
• ปุ่มกดติดปล่อยดับ |
• หลอด LED |
• ตัวต้านทาน 10K Ω |
• ตัวต้านทาน 470 Ω |
• สายไฟต่างๆและ Protoboard |
|
| |
|
|
วงจรนี้ เป็นวงจรแบบ Pull-Down โดยต่อปุ่ม Button เข้ากับไฟ 5 V และมีตัวต้านทานค่าตั้งแต่ 5K - 20K Ω ในที่นี้ใช้ 10K Ω ทำหน้าที่เป็น Pull-Down Resistor และใช้ Digital PIN 2 เป็นตัว Input รับค่าการกดปุ่ม ส่วนตัว Output คือ Digital PIN 13 ต่อเข้ากับ LED โดยมีตัวต้านทาน 470 Ω ช่วยจำกัดกระแส ป้องกนกระแสเกิน (อ่านวิธีเลือกตัวต้านทานให้ LED) |
|
| |
STEP 2 | เขียน Code และ Upload |
|
|
|
|
|
| |
// Digital Input with Pull-Down Push Button // www.commandronestore.com
int buttonPin = 2; int ledPin = 13; int buttonState = 0; //ตัวแปรสถานะของปุ่ม ตั้งค่าเริ่มต้นให้เป็น 0 ไว้ก่อน
void setup() { pinMode(buttonPin, INPUT); //กำหนดให้ Pin 2 เป็น Input }
void loop(){ buttonState = digitalRead(buttonPin);
if (buttonState == HIGH) { digitalWrite(ledPin, HIGH); //ถ้ากดปุ่ม ไฟจะติด } else { digitalWrite(ledPin, LOW); //ถ้าไม่กดปุ่ม ไฟจะดับ } }
//ที่มา www.commandronestore.com
|
|
ไม่มีความคิดเห็น:
แสดงความคิดเห็น