วันจันทร์ที่ 11 กรกฎาคม พ.ศ. 2559

การใช้งานพอร์ต Digital I/O

Hello everyone !!

บล๊อกแรกของทีมงาน BannokArduino (บ้านนอกอาดูโน่) ขออนุญาติเริ่มการใช้งานเบื้องต้น โดยทีมงานใช้บอร์ด Arduino UNO R3 เป็นหลักนะครับ แต่ทำไมต้องเลือกบอร์ดตัวนี้ด้วยล่ะ ??? เป็นเพราะว่าบอร์ดตัวนี้ ได้รับความนิยมมากกว่าบอร์ดเวอร์ชั่นอื่นๆ เราจะเริ่มต้นจากทำความรู้จักพอร์ตดิจิตอลอินพุตและเอาต์พุตกันก่อน ครับ ซึ่งมีอยู่นั้นหมด 14 pin นะครับ แต่ถูกใช้ไป 2 pin สำหรับ Download โปรแกรมที่เราเขียนขึ้นลงบอร์ด นั้นก็คือ TX, RX ฉนั้นก็เหลือเพียง 12 pin แต่ไม่เป็นไรครับ เพราะเพียงพอสำหรับการเริ่มต้นการเรียนรู้ Arduino นะจ๊ะ นอกจากเป็น digital I/O ธรรมดาแล้วนั้นก็สามารถให้เอาต์พุตเป็น PWM ได้ 6 pin ด้วยกัน คร่าวนี้มาดูตำแหน่งขาใช้งานดังรูปข้างล่างนี้นะ


มาดูกันต่อครับ digital I/O นั้นอยู่ขวามือของรูปนะ ครับ พอเรารู้แล้วว่าตำแหน่งขาอยู่ตรงไหน คร่าวนี้มาดูฟังก์ชั่นที่ต้องใช้งานกัน ดังนี้ ครับ

ฟังก์ชั่น pinMode()
คือฟังก์ชั่นกำหนดทิศทางการทำงานของ PIN ที่ถูกอ้างอิงให้ทำงานอยู่ในโหมด อินพุต (INPUT) หรือ เอาต์พุต (OUTPUT) 

ฟังก์ชั่น digitalWrite()
คือฟังก์ชั่นเขียน/ส่งสถานะทางเอาต์พุต ว่าต้องการส่งลอจิก “HIGH” หรือ “LOW” ไปยัง PIN ที่ถูกกำหนด

ฟังก์ชั่น digitalRead()
คือฟังก์ชั่นที่ใช้อ่านค่าจากอินพุตว่ามีสถานะลอจิกใด ซึ่งสามารถเป็นได้สองสถานะคือ “1” หรือ “0”

Example 1

int ledSck = 13;                    // กำหนดตัวแปรชนิด int ชื่อ ledSck มีค่าเท่ากับ 13
void setup()
{
  pinMode(ledSck, OUTPUT);   // กำหนดให้ PIN 13 เป็น OUTPUT
}
void loop()
{
  digitalWrite(ledSck, HIGH);     // ส่งลอจิก HIGH ให้ PIN 13
  delay(1000);                       // หน่วงเวลา 1 วินาที
  digitalWrite(ledSck, LOW);    // ส่งลอจิก LOW ให้ PIN 13
  delay(1000);                      // หน่วงเวลา 1 วินาที
}

Example 2

void setup()
{
  pinMode(8, OUTPUT);    // กำหนดให้ PIN 8 เป็น OUTPUT
}
void loop()
{
  digitalWrite(8, HIGH);     delay(1000);       // ส่งลอจิก HIGH ให้ PIN 8 และหน่วงเวลา 1 วินาที
  digitalWrite(8, LOW);     delay(1000);       // ส่งลอจิก LOW ให้ PIN 8 และหน่วงเวลา 1 วินาที
}


Example 3 

int ledPin = 13; // LED connected to digital pin 13
int inPin = 7;   // pushbutton connected to digital pin 7
int val = 0;     // variable to store the read value
void setup()
{
  pinMode(ledPin, OUTPUT);      // sets the digital pin 13 as output
  pinMode(inPin, INPUT);      // sets the digital pin 7 as input
}
void loop()
{
  val = digitalRead(inPin);   // read the input pin
  digitalWrite(ledPin, val);    // sets the LED to the button's value
}

=======================================================

@@ โอกาสหน้ามาดูการใช้พอร์ต Analog and PWM กันนะครับ

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

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