http://commandronestore.com/learning/arduino002.php

บอร์ด Arduino มี Digital I/O PINs สำหรับใช้งาน ซึ่งคำว่า I/O หมายถึง Input และ Output นั่นหมายความว่า นอกจาก Pins เหล่านี้จะสามารถเป็น Output เพื่อไปควบคุมอุปกรณ์ต่างๆได้แล้ว มันยังสามารถใช้เป็นตัว Input หรือตัวรับสัญญาณทางไฟฟ้าต่างๆ เพื่อใช้ควบคุมการทำงานของวงจรได้อีกด้วย
 Digital คืออะไร 
ทุกคนคงรู้จักคำว่า Digital ซึ่งในที่นี้จะหมายถึงสัญญาณทางไฟฟ้าประเภทหนึ่งที่มีค่าการทำงาน 2 ค่า คือ 1 และ 0 ซึ่ง 1 หมายถึง on (HIGH) และ 0 หมายถึง off (LOW) สัญญาณดิจิตอลนั้นสามารถนำไปใช้ประโยชน์ได้มากมายและมีความแม่นยำ
 Digital Input 
การที่เราใช้ Digital Pins ของ Arduino เป็นตัวรับค่าสัญญาณ คือการที่เราให้ Pins นั้นๆ เป็นตัว Input โดยค่าที่ Arduino อ่านได้จะมีอยู่ 2 ค่า คือ HIGH และ LOW ขึ้นอยู่กับ Pin นั้น มีสัญญาณหรือกระแสไฟฟ้าเข้ามาหรือไม่
 Pull-up , Pull-Down 
เป็นอีกหนึ่งสิ่งที่จำเป็นต้องรู้ เมื่อเรานำสวิซท์หรือปุ่ม 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 ติดเมื่อกดปุ่มเท่านั้น
 STEP 1  ต่อวงจร
ต่อวงจรเตรียมไว้ก่อน โดยอุปกรณ์ที่เราจะใช้ มีดังนี้
• 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(ledPin, OUTPUT); //กำหนดให้ Pin 13 เป็น Output
pinMode(buttonPin, INPUT); //กำหนดให้ Pin 2 เป็น Input
}

void loop(){
buttonState = digitalRead(buttonPin);

if (buttonState == HIGH) {
digitalWrite(ledPin, HIGH); //ถ้ากดปุ่ม ไฟจะติด
}
else {
digitalWrite(ledPin, LOW); //ถ้าไม่กดปุ่ม ไฟจะดับ
}
}

ความคิดเห็น

โพสต์ยอดนิยมจากบล็อกนี้

https://www.arduitronics.com/article/22/arduino-and-motor-control-part-1

https://medium.com/sathittham/arduino-lcd-16x2-hello-world-dca09fd904f8

อธิบายโปรแกรมHow To Make Arduino Based Home Automation Project via Bluetooth