บอร์ด Node MCU ESP8266 นั้นระบบขาอินพุตเอาท์พุต digital นั้นจะมีสัญญาณแค่ High (ไฮ) และ Low (โล) ลองนึกภาพว่า ถ้าต้องการจะนําระบบ digital (ดิจิตอล) ไป ควบคุมอุปกรณ์ที่ต้องควบคุมด้วยสัญญาน analog (อะนาล็อก) เช่น การควบคุมความเร็วมอเตอร์,การควบความความสว่างของLED (แอลอีดี)ฯลฯ นั้นไม่สามารถทำได้โดยตรงได้ ให้เราลองนึกถึงหลอดไฟ LED (แอล อี ดี) ถ้าเราสั่งให้ขา เอาท์พุตเป็น High (ไฮ) หลอดไฟก็จะติด ถ้าสั่งเป็น Low (โล) หลอดไฟก็จะดับ แต่เราไม่สามารถสั่งให้หลอดไฟสว่างมากน้อยได้เราจึงต้องใช้สัญญาณ PWM (พีดับเบิ้ลยูเอ็ม)
ESP8266 กับ สัญญาณ PWM (พีดับเบิ้ลยูเอ็ม)
ในบอร์ด ESP8266 มีขาที่รองรับการใช้งาน PWM คือ GPIO 0, 2, 4, 5, 12, 13, 14 และ 15 หรือรองรับทุกขานั่นเอง ซึ่งถือว่าเป็นข้อดีของเจ้าตัวESP8266 ทำให้เราควบคุมอุปกรณืต่างๆด้วยสัญญาณ PWM ได้งหลายอุปกรณ์ แต่การที่เราจะใช้งานสัญญาณ PWM นั้นเราต้องใช้คำสั่งเฉพาะในการใช้งานซึ่งอยู่ในยอ่หน้าถัดไป
โค้ดตัวอย่างการใช้งาน ESP8266 กับ สัญญาณ PWM (พีดับเบิ้ลยูเอ็ม)
ให้เราเชือมต่ออุปกรณ์ที่จะใช้สัญญาณ PWM เข้ากับขาของบอร์ดในที่นี้เลือก ขา GOIO0
from machine import PWM #import class PWM
from machine import Pin #import class PIN เพื่อสั่งใช่้งาน GPIO
pwm_pin = Pin(0) #สร้างออบเจคขึ้นมารองรับคลาส เลข 0 หมายถึงเราใช้ GPIO 0
pwm = PWM(pwm_pin) # สร้าง object pwm โดยอ้างอิงกับ object pwm_pin
pwm.freq(500) #กำหนดค่า freq โดยเราสามารถดูค่าเหล่านี้ได้จากอินเตอรเน็ตว่าควรใช้เท่าไร
pwm.duty(512) #กำหนดค่า duty
ด้านบนเป็นโค้ดตัวอย่างคร่าวๆในการควบคุมขาสัญญาน PWM เราสามารถนำไปประยุกตืใช้กับ โปรเจคอื่นๆได้อีกเพียงแค่เรามีความรู้ในการเขียนโปรแกรมอยุ่บ้างก็สามารถทำได้แล้ว