ความรู้แน่น ฟรีสำหรับชุมชน ArduinoAll ที่นี่เท่านั้น

ฟรีและดีที่สุด คอร์สอบรม Arduino + NodeMCU
ทำเพื่อแบ่งปัน ห้ามนำไปจำหน่าย หรือเก็บเงินค่าเรียน
  !!!


  


AllNewStep รับประกันคุณภาพทุกชิ้น วันจันทร์-ศุกร์แจ้งชำระสินค้าก่อน 14.00 จัดส่งทันทีวันนี้ค่ะ

กรุงเทพ /ภาคกลาง ได้พรุ่งนี้


*** สินค้าทุกชิ้น ถ้าสามารถทำรายการสั่งซื้อได้ แสดงว่ามีครบทุกรายการค่ะ *** 

พิมพ์ค้นหาบทความ หัวข้อกระทู้ และสินค้าในเว็บ AllNewStep ได้ที่นี่
QUOTE 

ขอตัวอย่าง code เดินหน้า ถอยหลัง ของมอเตอร์

ปุ๋ย

ผมซื้อ motor drive  l293n ลองทำตาม code  ตัวอย่างแล้ว มอเตอร์ 2ตัว ล้อมันหมุนกลับ คนละทางกัน  อยากขอcode ตัวอย่างเดินหน้า ถอยหลัง พร้อมคำอธิบายให้หน่อยน่ะครับ

QUOTE 
ความคิดเห็นที่ #1
ปุ๋ย

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 ผิด หรือ เปล่าครับ ลองหลายรอบก็ ได้ แบบนี้ 

QUOTE 
ความคิดเห็นที่ #2
เจ้าของร้าน

ลองสลับขั้วมอเตอร์ครับ

หลักการคือ ขั้วมอเตอร์ จ่ายไฟสลับข้างจะหมุนคนละข้าง

เช่น ขั้ว 1 ไฟบวก ขัว 2 ไฟกราวน์ จะหมุนตามเข็มนาฬิกา

ขั้ว 1 ไฟกราวน์ ขัว 2 ไฟบวก จะหมุนทวนเข็มนาฬิกา

สำหรับโคด Arduino การส่งไฟบวกคือสัญญาณ 1 ส่งไฟกราวน์คือสัญญาณ 0 

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

 

QUOTE 
ความคิดเห็นที่ #3
ปุ๋ย

ขอบุณครับ ตอนนี้ทำได้แล้วครับ   แต่เจอปัญหาใหม่คือ ล้อ 2 ข้างหมุนไม่เท่ากัน m1 จะหมุนเร็วกว่า m2 ทั้งที่สั่ง ปรับความเร็วให้เท่ากันแล้ว เกิดจากอะไรได้มั่งครับ หรือเป็ที่มอตอร์  

QUOTE 
ความคิดเห็นที่ #4
เจ้าของร้าน
  • ล้อที่ทางร้านมี 2 แบบ คือ 1:48 และ 1:120 ความเร็วจะต่างกัน ลองจ่ายไฟตรง ๆ ถ้าหมุนต่างกันมากแสดงว่าคนละแบบกัน ให้เปลี่ยนมอเตอร์ใหม่
  • ถ้ามอเตอร์หมุนต่างกันเล็กน้อย เป็นปกติของระบบ analog ปรับความเร็วชดเชยในโคดโปรแกรมครับ
QUOTE 
ความคิดเห็นที่ #5
เจ้าของร้าน

เช็คตามที่แนะนำเลยครับ

QUOTE 
ความคิดเห็นที่ #6
ผม
ถ้าต้องการใช้คำสั่งให้มอเตอรืหมุนซ้ายขวาต้องใช้ตัวแปลงตัวไหนครับ
แสดงความคิดเห็นที่ 1-6 จากทั้งหมด 6 ความคิดเห็น
ขาย ARDUINO
คุณภาพ อันดับ 1

ได้รับรางวัลร้านยอดเยี่ยม
ตั้งแต่ปี 2558
ขาย Arduino
วีดีโอสอน Arduino

สอน esp8266

สอน Arduino IoT
สอน Arduino แบบเร็ว

สอน NodeMCU

อุปกรณ์ Arduino

MEMBER ZONE

พูดคุย-สอบถาม