void MA(){
digitalWrite(IN1,HIGH); //ตามตารางข้างบน ต้องกำหนด IN1 = HIGH
digitalWrite(IN2,LOW); //และ IN2 = LOW มอเตอร์ A จึงจะทำงานหมุนไปด้านหน้า
analogWrite(ENA,255); //และสั่งหมุนที่ความเร็วสูงสุด 255 ผ่านทาง ENA (ขา 9) ที่เป็น PWM
delay(3000); //รอเวลา 3 วินาที
digitalWrite(IN1,LOW); //ตามตารางข้างบน ต้องกำหนด IN1 = LOW
digitalWrite(IN2,HIGH); //และ IN2 = HIGH มอเตอร์ A จึงจะทำงานหมุนถอยหลัง
analogWrite(ENA,255); //และสั่งหมุนที่ความเร็วสูงสุด 255 ผ่านทาง ENA (ขา 9) ที่เป็น PWM
delay(3000); //รอเวลา 3 วินาที
}
void MB(){
digitalWrite(IN3,HIGH); //ตามตารางข้างบน ต้องกำหนด IN3 = HIGH
digitalWrite(IN4,LOW); //และ IN4 = LOW มอเตอร์ B จึงจะทำงานหมุนไปด้านหน้า
analogWrite(ENB,255); //และสั่งหมุนที่ความเร็วสูงสุด 255 ผ่านทาง ENB (ขา4 ) ที่เป็น PWM
delay(3000); //รอเวลา 3 วินาที
digitalWrite(IN3,LOW); //ตามตารางข้างบน ต้องกำหนด IN1 = LOW
digitalWrite(IN4,HIGH); //และ IN4 = HIGH มอเตอร์ B จึงจะทำงานหมุนถอยหลัง
analogWrite(ENB,255); //และสั่งหมุนที่ความเร็วสูงสุด 255 ผ่านทาง ENB (ขา4) ที่เป็น PWM
delay(3000); //รอเวลา 3 วินาที
}
ตามตัวอย่าง Code ด้านบน ผม ลอง รัน MA หมุนไปขางหน้า หยุด 3 วิแล้วหมุน กลับ ได้ แต่ MB ทำไม มัน หมุน ไป ข้างหน้า หยุด 3 วิ แล้วหมุนไปข้างหน้าต่อ อีก ไม่หมุน กลับ ผมเขียน Code ผิด หรือ เปล่าครับ ลองหลายรอบก็ ได้ แบบนี้ 

ลองสลับขั้วมอเตอร์ครับ
หลักการคือ ขั้วมอเตอร์ จ่ายไฟสลับข้างจะหมุนคนละข้าง
เช่น ขั้ว 1 ไฟบวก ขัว 2 ไฟกราวน์ จะหมุนตามเข็มนาฬิกา
ขั้ว 1 ไฟกราวน์ ขัว 2 ไฟบวก จะหมุนทวนเข็มนาฬิกา
สำหรับโคด Arduino การส่งไฟบวกคือสัญญาณ 1 ส่งไฟกราวน์คือสัญญาณ 0
ถ้าเปิดปิดการจ่ายไฟแบบไว ๆ มอเตอร์จะหมุนและหยุดหมุนไว ๆ ทำให้สามารถปรับความเร็วการหมุนได้ โดยในโคดคือจ่ายสัญญาณแบบ analog ค่า 0-255 เรียกว่าสัญญาณแบบ PWM เพื่อปรับความเร็วมอเตอร์ โดยใช้คำสั่ง analogWrite(ENB,255);

ArduinoAll ขาย Arduino ซื้อ Arduino ทุกอย่าง เปลี่ยนชื่อเป็น AllNewStep