สอนใช้งาน Arduino สัญญาณ Analog OutPut PWM ควบคุมความสว่าง หรี่ไฟ หลอดไฟ LED
จากบทที่แล้วเราได้เรียนรู้สัญญาณ digital ไปแล้ว ซึ่งมาได้เพียง 2 ค่า เปิดกับปิด โดยทุกขาของบอร์ด Arduno Uno สามารถสั่งงานแบบ digital Input/Output ได้
นอกจากสัญญาณแบบ digital แล้ว Arduino ยังสามารถส่งสัญญาณแบบ Analog ได้ด้วย
สัญญาณ Analog คือ แรงดันไฟฟ้าที่ต่อเนื่อง เช่น จาก 0-5V อาจจะเป็นค่า 1.2 หรือ 4.8V ก็ได้ ในขณะที่แบบ digital เป็นได้แค่ค่า 0 หรือ 1
ในตัวอย่างนี้เราจะมาทดลอง ใช้สัญญาณเอาต์พุตแบบ Analog ของ Arduino ซึ่งสามารถส่งแรงดันไฟฟ้าออกได้ระหว่าง 0-5V ดังนั้นเราจึงสามารถสั่งให้ไฟออก 2V หรือ 3V หรือค่าที่อยู่ในช่วงนี้ก็ได้ โดยส่งค่าออกเป็นตัวเลข 0-255 แทนช่วงไฟ 0-5V เช่น ถ้าค่า 127 ก็จะได้ไฟออกประมาณ 2.5V หรือถ่าค่า 255 ก็จะได้ไฟออกที่ประมาณ 5V
ไม่ใช่ทุกขาของ Arduino Uno จะสามารถใช้งานฟังก์ชั่น Analog Output ได้ จะใช้ได้เฉพาะขาที่มีสัญลักษณ์ตัวหนอนบนบอร์ดเท่านั้น สำหรับ Arduino Uno คือขา 3 5 6 9 10 11 เท่านั้น
รูปแบบของคำสั่ง analogWriteanalogWrite(pin,value)pin คือ ขาที่ต้องการควบคุมvalue คือตัวเลข 0-255 ซึ่งแทนไฟในช่วง 0-5V ตัวอย่างคำสั่ง analogWriteanalogWrite(9,255)ต้องการให้ขา 9 ของ Arduino ส่งสัญญาณ PWM 255 หรือไฟออกประมาณ 5V ออกมาอะไรคือสัญญาณ PWMPulse Width Modulation หรือ PWM คือการสร้างการเปิด/ปิดเร็ว ๆ จะทำให้แรงดันไฟฟ้าลดลง ยิ่งความเร็วในการเปิดปิดเร็วเท่าไหร่ ไฟที่ออกก็จะยิ่งนิ่ง
ลองดูรูปนี้

อ้างอิงแรงดันที่ 5V
ถ้ากำหนดให้ปิด สัญญาณแรงดันจะเป็น 0V
ถ่าสั่งให้เปิด 25% ปิดอีก 75% แรงดันไฟฟ้าจะออกที่ 25% คือประมาณ 1.25V
ถ้าสั่งให้เปิด 50% ปิด 50% แรงดันไฟฟ้าจะออกที่ประมาณ 2.5V
อุปกรณ์ที่ต้องใช้ในบทความ สอนใช้งาน Arduino สัญญาณ Analog OutPut ควบคุมความสว่าง หรี่ไฟ หลอดไฟ LED
วิธีการต่ออุปกรณ์ บทความ สอนใช้งาน Arduino สัญญาณ Analog OutPut ควบคุมความสว่าง หรี่ไฟ หลอดไฟ LED
ต่อวงจร Arduino ตามรูปนี้

อัพโหลดโคดตัวอย่าง แล้วดูผลลัพธ์
---
จากตัวอย่างโค้ดจะเห็นว่า ไฟ จะค่อยๆสว่างและค่อยๆหรี่จนดับลงตามรูป
ดูสอนวิธีใช้งาน Arduino บทต่อไป#9 สอนใช้งาน Arduino สั่งงานให้โปรแกรมวนลูปทำซ้ำ ไฟ LED วิ่ง#11 Arduino สอนใช้งาน Arduino สัญญาณ AnalogInput จากตัวต้านทานปรับค่าได้ ปรับความสว่างหลอดไฟ LEDหน้าหลักบทความสอน Arduino แบบย่อทั้งหมด