บล๊อกแรกของทีมงาน 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)
คือฟังก์ชั่นกำหนดทิศทางการทำงานของ 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 วินาที
}
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 วินาที
}
{
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
}
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 กันนะครับ
ไม่มีความคิดเห็น:
แสดงความคิดเห็น