ESP8266 สามารถสร้างสัญญาณแบบ PWM เพื่อขับอุปกรณ์ที่ทำงานตามโวลต์ เช่น LED ถ้าแรงดันไฟฟ้าน้อยก็สว่างน้อย ถ้าแรงดันไฟฟ้ามากก็สว่างมาก มอเตอร์ก็เช่นกัน เราสามารถปรับความเร็วมอเตอร์ได้ โดยใช้คำสั่ง analogWrite(value); โดยค่า value อยู่ระหว่าง 0-1023 ค่าน้อยมอเตอร์ก็หมุนช้า ค่ามากมอเตอร์ก็หมุนไว แต่กระแสไฟฟ้าที่มาจาก ESP8266 นั้นมีเพียงแค่ 12mA ซึ่งมอเตอร์ใช้กระแสมากกว่านี้ เช่น มอเตอร์เล็ก ๆ ก็ยังใช้กระแสที่ 200mA ทำให้ไม่สามารถสั่งงานมอเตอร์จาก ESP8266 โดยตรงได้ เราสามารถแก้ปัญหานี้ โดยต่อวงจรขับมอเตอร์เพื่อเพิ่มกระแสไฟฟ้า ก็สามารถขับมอเตอร์ได้แล้ว
void setup() {
pinMode(D1,OUTPUT);
pinMode(D2,OUTPUT);
}
void loop() {
analogWrite(D1,0);
analogWrite(D2,1023);
delay(3000);
analogWrite(D1,1023);
analogWrite(D2,0);
delay(3000);
analogWrite(D1,500);
analogWrite(D2,0);
delay(3000);
analogWrite(D1,0);
analogWrite(D2,0);
delay(3000);
}