lnwshop logo
  • ตอบกระทู้
  • ตั้งกระทู้ใหม่
QUOTE 

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

ปุ๋ย
ปุ๋ย
IP: 49.48.248.x
1 ปีที่ผ่านมา

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

QUOTE 
ความคิดเห็นที่ #1
ปุ๋ย
ปุ๋ย
IP: 49.48.248.x
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 ปีที่ผ่านมา

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

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

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

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

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

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

 

QUOTE 
ความคิดเห็นที่ #3
ปุ๋ย
ปุ๋ย
IP: 49.48.251.x
1 ปีที่ผ่านมา

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

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

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

1
แสดงความคิดเห็นที่ 1-5 จากทั้งหมด 5 ความคิดเห็น
ข้อความ
ชื่อผู้โพส
ข้อมูลสำหรับการติดต่อกลับ (ไม่เปิดเผย เห็นเฉพาะเจ้าของร้าน)
อีเมล
เบอร์มือถือ
  • ตอบกระทู้

หมวดหมู่สินค้า

สมาชิก Arduino All

เข้าสู่ระบบด้วย
เข้าสู่ระบบ
สมัครสมาชิก

ยังไม่มีบัญชีเทพ สร้างบัญชีใหม่ ไม่เกิน 5 นาที
สมัครสมาชิก (ฟรี)

Arduino All ขายดี

รหัสสินค้า A015
270.00 บาท
  • สั่งซื้อ
รหัสสินค้า A233
5.00 บาท
  • สั่งซื้อ
รหัสสินค้า A115
10.00 บาท
  • สั่งซื้อ
รหัสสินค้า A238
4.00 บาท
  • สั่งซื้อ
รหัสสินค้า A097
4.00 บาท
  • สั่งซื้อ
รหัสสินค้า A014
90.00 บาท
  • สั่งซื้อ
รหัสสินค้า A474
5.00 บาท
  • สั่งซื้อ
รหัสสินค้า A237
4.00 บาท
  • สั่งซื้อ
Go to Top