สัญญาณ Digital Output ควบคุม LED ไฟวิ่ง

Digital Output LED Demo

บทเรียนนี้ นักเรียนจะได้เรียนรู้การใช้คำสั่ง 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 ควบคุมไฟวิ่ง

Digital Output LED Demo
  • 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)

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

0 ความคิดเห็น

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