Page 214 - เอกสารประกอบการสอนวิชาไมโครคอนโทรลเลอร์เบื้องต้น
P. 214
เอกสารประกอบการสอนวิชาไมโครคอนโทรลเลอร์เบื้องต้น 30
4.3.2 analogWrite(pin, value)
ใช้ในการเขียนค่าแอนะล็อกไปยังขาพอร์ตที่ก าหนดไว้เพื่อสร้างสัญญาณ PWM
พารามิเตอร์
pin - หมายเลขขาพอร์ตของ MCU
value - เป็นค่าดิวตี้ไซเกิลมีค่าระหว่าง 0 ถึ ง 255
เมื่อค่าเป็น 0 แรงดันของขาพอร์ตที่ก าหนดจะเป็น 0V เมื่อมีค่าเป็น 255 แรงดันที่ขาพอร์ตจะเป็น +5V
ส าหรับค่าระหว่าง 0 ถึง 255 จะท าให้ขาพอร์ตที่ก าหนดไว้มีค่าแรงดันเปลี่ยนแปลงในย่าน 0 ถึ ง 5V ค่าที่ส่ง
กลับจากฟังก์ชั่นเลขจ านวนเต็มจาก 0 ถึง 255
หมายเหตุ
ขาพอร์ตที่ใช้สร้างสัญญาณ PWM ด้วยฟังก์ชั่น analogWrite () ซึ่งก็คือขา 3, 5, 9, 10 และ 11 จะพิเศษ
จากขาที่เป็นพอร์ตดิจิตอลปกติ คือไม่ต้องก าหนดค่าเพื่อเลือกเป็น INPUT หรือOUTPUT ค่าความถี่ของสัญญาณ
PWM มีค่าประมาณ 490Hz ค าสั่ง analogWrite ท างานกับขา 3, 5, 9, 10, 11 เท่านั้น ส าหรับขาอื่นๆ จะต้อง
เขียนค่าดิจิตอลก าหนดเป็น 0 หรือ 5V
ผู้ใช้งานสามารถน าสัญญาณที่ได้จากค าสั่งนี้ไปใช้ในการปรับความสว่างของ LED หรือต่อขยายกระแส
เพื่อต่อปรับความเร็วของมอเตอร์ได้ หลังจากเรียกใช้ค าสั่งนี้ที่ขาพอร์ตที่ก าหนดจะมีสัญญาณ PWM ส่งออกมาอย่าง
ต่อเนื่องจนกว่าจะเรียกใช้ analogWrite (หรือเรียกค าสั่ง digitalRead หรือ digitalWrite ที่ขาเดียวกัน)
ตัวอย่างที่ 4.12
int ledPin = 11; // LED connected to digital pin 11
int analogPin = 0; // potentiometer connected to analog pin 0
int val = 0; // variable to store the read value
void setup()
{
pinMode(ledPin, OUTPUT); // sets the pin as output
}
void loop()
{
val = analogRead(analogPin); // read the input pin
analogWrite(ledPin, val / 4); // analogRead values go from 0 to 1023,
// analogWrite values from 0 to 255
}
หน่วยที่ 4 ฟังก์ชั่นพื้นฐานของ Arduino และการควบคุมหลอดไฟ LED เรียบเรียงโดยครูทันพงษ์ ภู่รักษ์