บทเรียนนี้ นักเรียนจะได้เรียนรู้การใช้คำสั่ง digitalWrite(led1, HIGH); เพื่อควบคุมการเปิดปิดของหลอดไฟ LED โดยจะสั่งงานให้ Arduino UNO ควบคุม LED เปิดปิดไฟแบบวิ่ง เปิดปิดหลอดไฟ และ หน่วงเวลาเป็นจังหวะ
คำสั่ง Digital Write
เป็นคำสั่งที่ใช้กำหนดสัญญาณ HIGH LOW ของขาดิจิตอล Arduino
HIGH คือลอจิก 1 ปล่อยไฟออกแรงดัน 5V
LOW คือลอจิก 0 กำหนดขานั้นให้เป็นสายกราวด์ 0V
digitalWrite(pin, value);
pin คือขา Digital ของ Arduino ที่จะสั่งงาน ให้เป็น HIGH หรือ LOW
value คือค่าที่ต้องการส่งออก ค่า 0 หรือ 1
ตัวอย่างคำสั่ง digitalWrite
ต้องการให้ขา 13 ของ Arduino มีไฟออก 5V
digitalWrite(13, HIGH); หรือ digitalWrite(13, 1);
คำสั่ง pinMode
ขา digital ของ Arduino สามารถเป็นได้ทั้งโหมด input หรือโหมด output ดังนั้นการที่จะสั่งไฟเปิด/ปิดได้จะต้องกำหนดขาให้เป็นโหมด output ก่อน ดังนี้
pinMode(pin, mode);
pin คือขา digital ของ Arduino ที่ต้องการกำหนดโหมด
mode ในที่นี้เราจะกำหนดให้เป็นโหมดเอาต์พุต ค่า OUTPUT
ตัวอย่างคำสั่ง pinMode()
ต้องการให้ขา 13 ของ Arduino เป็นโหมด Output: pinMode(13, OUTPUT);
หมายเหตุ: ทุกขาของ Arduino UNO สามารถใช้เป็น digital Pin ได้
อุปกรณ์สำหรับทดลอง Arduino สัญญาณ Digital Output ควบคุมไฟวิ่ง
- Arduino UNO และ สาย USB
- บอร์ดทดลอง Breadboard 830 Point
- LED ขนาด 5mm สีแดง จำนวน 5 ดวง
- Resistor ตัวต้านทาน 330 Ohm 1/4W Metal film 1% จำนวน 5 ชิ้น
- สายไฟจัมเปอร์ จำนวน 6 เส้น
วิธีการต่ออุปกรณ์
Arduino UNO -> หลอดไฟ LED
ขา 2 -> LED1 | ขา 3 -> LED2 | ขา 4 -> LED3 | ขา 5 -> LED4 | ขา 6 -> LED5




โค้ดสำหรับทดลอง
int led1 = 2; // กำหนดขาใช้งาน
int led2 = 3;
int led3 = 4;
int led4 = 5;
int led5 = 6;
void setup() {
pinMode(led1, OUTPUT); // กำหนดให้ขา 2 เป็น OUTPUT
pinMode(led2, OUTPUT); // กำหนดให้ขา 3 เป็น OUTPUT
pinMode(led3, OUTPUT); // กำหนดให้ขา 4 เป็น OUTPUT
pinMode(led4, OUTPUT); // กำหนดให้ขา 5 เป็น OUTPUT
pinMode(led5, OUTPUT); // กำหนดให้ขา 6 เป็น OUTPUT
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
digitalWrite(led4, LOW);
digitalWrite(led5, LOW);
}
void loop() {
digitalWrite(led1, HIGH); // ไฟ LED 1 ติด 50 ms
delay(50);
digitalWrite(led1, LOW); // ไฟ LED 1 ดับ 50 ms
delay(50);
digitalWrite(led2, HIGH);
delay(50);
digitalWrite(led2, LOW);
delay(50);
digitalWrite(led3, HIGH);
delay(50);
digitalWrite(led3, LOW);
delay(50);
digitalWrite(led4, HIGH);
delay(50);
digitalWrite(led4, LOW);
delay(50);
digitalWrite(led5, HIGH);
delay(50);
digitalWrite(led5, LOW);
delay(50);
}
การทำงานของโค้ด
1. การกำหนดขาใช้งาน LED: ใช้ pinMode() ใน setup() เพื่อกำหนดขา 2-6 เป็นโหมด OUTPUT
2. การตั้งค่าเริ่มต้น: ตั้งค่าสถานะเป็น LOW (ปิดไฟ) ทั้งหมดเพื่อเตรียมความพร้อม
3. การกระพริบไฟ: ใน loop() จะสั่งเปิด-ปิดไฟทีละดวงเรียงลำดับกันไป โดยมี delay(50) เป็นตัวกำหนดความเร็วในการวิ่ง
💡 ข้อควรรู้: ขา TX และ RX
ขา TX (Transmit) และ RX (Receive) เป็นขาสำหรับการสื่อสารแบบอนุกรม (Serial Communication):
- TX: ส่งข้อมูลออกจาก Arduino
- RX: รับข้อมูลเข้าสู่ Arduino
- การเชื่อมต่อ: ต้องต่อแบบไขว้ (TX -> RX และ RX -> TX)