ฟังก์ชัน analogWrite(); ใน Arduino ใช้สำหรับส่งสัญญาณออกจากขา (pin) ในรูปแบบของสัญญาณ PWM (Pulse Width Modulation) ซึ่งจะช่วยให้สามารถควบคุมอุปกรณ์ที่รับสัญญาณแอนะล็อก เช่น มอเตอร์หรือแสงไฟให้ปรับความเร็วหรือความสว่างได้
การใช้งาน analogWrite();
analogWrite(); ใช้ในการควบคุมระดับของแรงดันที่ส่งออกไปที่ขา (Pin) โดยการปรับความกว้างของพัลส์ (Duty Cycle) ในช่วง 0 ถึง 255 ซึ่งค่า 0 หมายถึงไม่มีสัญญาณ (0%) และค่า 255 หมายถึงสัญญาณเต็มที่ (100%)
รูปแบบการใช้ : analogWrite(pin, value);
pin: หมายถึงหมายเลขขาของ Arduino ที่จะใช้ส่งสัญญาณ PWM (เช่น 9, 10, 11 เป็นต้น)
value: ค่าที่จะส่งออกจากขา (0 ถึง 255)
ตัวอย่าง :
int ledPin = 9; // กำหนดขา 9 เป็นขา Output สำหรับ LED
void setup() {
pinMode(ledPin, OUTPUT); // ตั้งค่า LED Pin เป็น OUTPUT
}
void loop() {
analogWrite(ledPin, 128); // ส่งสัญญาณ PWM ที่ความกว้างพัลส์ 50%
delay(1000); // หน่วงเวลา 1 วินาที
analogWrite(ledPin, 255); // ส่งสัญญาณ PWM ที่ความกว้างพัลส์ 100%
delay(1000); // หน่วงเวลา 1 วินาที
}
คำอธิบาย :
ในตัวอย่างนี้ LED ที่ต่อกับขา 9 จะปรับความสว่างตามค่า PWM ที่ส่งไป
ค่าที่ analogWrite(ledPin, 128) คือ 50% (ค่าสูงสุดคือ 255)
ค่าที่ analogWrite(ledPin, 255) คือ 100% (เปิดเต็มที่)
ข้อควรระวัง :
analogWrite() ใช้กับขาบางขาเท่านั้น (เช่น ขา 3, 5, 6, 9, 10, 11 บน Arduino Uno)
ฟังก์ชันนี้ไม่ใช่การส่งสัญญาณแอนะล็อกจริง ๆ แต่เป็นการใช้ PWM ในการควบคุมอุปกรณ์ที่ต้องการสัญญาณแอนะล็อก
การใช้ analogWrite() เหมาะสำหรับการควบคุมอุปกรณ์ที่ต้องการการปรับความแรงหรือความสว่างโดยไม่ต้องใช้วงจรแอนะล็อกเพิ่มเติม