การใช้ ฺBTS7960 ควบคุมความเร็ว Moter
Вставка
- Опубліковано 22 сер 2024
- การใช้งาน DC Moter h-bridge BTS7960 ควบคุมความเร็ว Moter และการเขียนโปรแกรม arduino เพื่อลองรับ การกำหนดจากมือถือในการควบคุมความเร็ว Moter
Email prasitbbb157@gmail.com
www.facebook.c...
ขอคุณมากครับสามารถนำไปต่อยอดได้ดีมาก ผมทำโปรเจคติดเรื่องโค้ดอยู่นานมาก ได้คลิบนี้ช่วยได้มากเลยครับ
ใช่ครับ
#include
// software serial #1: RX = digital pin 11, TX = digital pin 12
SoftwareSerial portOne(12, 11);
//========================================================
//I/O Port: Digital I/O ตั้งแต่ขา D3 D5 D6 D9 D10 D13 หรือ Pin3,5,6,9,10 และ 11 เป็นขา PWM
// Motor A
int IN1 = 3; // input 3
int IN2 = 5; // input 5
// Motor B
int IN3 = 6; // input 6
int IN4 = 9; // inputv9
//===============================================================
int PWM = 255; // contron SPEED
//===============================================================
void setup() {
Serial.begin(9600);
// setup contron Motor
pinMode(IN1,OUTPUT);
pinMode(IN2,OUTPUT);
pinMode(IN3,OUTPUT);
pinMode(IN4,OUTPUT);
while (!Serial) {
}
portOne.begin(9600);
}
//===============================================================
void loop() {
portOne.listen();
while (portOne.available() > 0)
//==============================================================
{
//==============================================================
char inByte = portOne.read();
Serial.println(inByte); //read
//===============================================================
if(inByte == '8'){
Serial.println("Forword");
// Motor A
analogWrite(IN1, 0);
analogWrite(IN2, PWM);
// Motor B
analogWrite(IN3, PWM);
analogWrite(IN4, 0);
}
//===============================================================
else if(inByte == '2'){
Serial.println("Blackword");
// Motor A
analogWrite(IN1, PWM);
analogWrite(IN2, 0);
// Motor B
analogWrite(IN3, 0);
analogWrite(IN4, PWM);
}
//===============================================================
else if(inByte == '4'){
Serial.println("Left");
// Motor A
analogWrite(IN1, 0);
analogWrite(IN2, PWM);
// Motor B
analogWrite(IN3, 0);
analogWrite(IN4, PWM);
}
//===============================================================
else if(inByte == '6'){
Serial.println("Right");
// Motor A
analogWrite(IN1, PWM);
analogWrite(IN2, 0);
// Motor B
analogWrite(IN3, PWM);
analogWrite(IN4, 0);
}
//===============================================================
else if(inByte == '0'){
Serial.println("Stop");
// Motor A
analogWrite(IN1, 0);
analogWrite(IN2, 0);
// Motor B
analogWrite(IN3, 0);
analogWrite(IN4, 0);
}
//===============================================================
else if(inByte == 'H'){
Serial.println("speed up");
PWM += 15;
if(PWM >= 255){PWM=255;}
Serial.print("PWM = ");
Serial.println(PWM);
}
//===============================================================
else if(inByte == 'L'){
Serial.println("speed down");
PWM -= 15;
if(PWM
สุดยอดมากครับอาจารย์
ขอบคุณครับ
#include
// software serial #1: RX = digital pin 11, TX = digital pin 12
SoftwareSerial portOne(12, 11);
//========================================================
// Motor A
int IN1 = 3; // input 3
int IN2 = 5; // input 5
// Motor B
int IN3 = 6; // input 6
int IN4 = 9; // inputv9
//===============================================================
int PWM = 255; // contron SPEED
//===============================================================
void setup() {
Serial.begin(9600);
// setup contron Motor
pinMode(IN1,OUTPUT);
pinMode(IN2,OUTPUT);
pinMode(IN3,OUTPUT);
pinMode(IN4,OUTPUT);
while (!Serial) {
}
portOne.begin(9600);
}
//===============================================================
void loop() {
portOne.listen();
while (portOne.available() > 0)
//==============================================================
{
//==============================================================
char inByte = portOne.read();
Serial.println(inByte); //read
//===============================================================
if(inByte == '8'){
Serial.println("Forword");
// Motor A
analogWrite(IN1, 0);
analogWrite(IN2, PWM);
// Motor B
analogWrite(IN3, PWM);
analogWrite(IN4, 0);
}
//===============================================================
else if(inByte == '2'){
Serial.println("Blackword");
// Motor A
analogWrite(IN1, PWM);
analogWrite(IN2, 0);
// Motor B
analogWrite(IN3, 0);
analogWrite(IN4, PWM);
}
//===============================================================
else if(inByte == '4'){
Serial.println("Left");
// Motor A
analogWrite(IN1, 0);
analogWrite(IN2, PWM);
// Motor B
analogWrite(IN3, 0);
analogWrite(IN4, PWM);
}
//===============================================================
else if(inByte == '6'){
Serial.println("Right");
// Motor A
analogWrite(IN1, PWM);
analogWrite(IN2, 0);
// Motor B
analogWrite(IN3, PWM);
analogWrite(IN4, 0);
}
//===============================================================
else if(inByte == '0'){
Serial.println("Stop");
// Motor A
analogWrite(IN1, 0);
analogWrite(IN2, 0);
// Motor B
analogWrite(IN3, 0);
analogWrite(IN4, 0);
}
//===============================================================
else if(inByte == 'H'){
Serial.println("speed up");
PWM += 15;
if(PWM >= 255){PWM=255;}
Serial.print("PWM = ");
Serial.println(PWM);
}
//===============================================================
else if(inByte == 'L'){
Serial.println("speed down");
PWM -= 15;
if(PWM
ขอบคุณคราบ
สอนการใช้ esp 32 งานร่วมกับ Arfuino uno r3 หรือ Mega หน่อยได้มั้ยครับ
Nice work. Thanks for the tutorial.
thank you
Sir how can I get the app to control the car
Program view
Hi sir good day if you dont mind, I want to make this same project can you send to me the full details of this project? thank you sir.
rpwm ,lpwm เป็นอนาล็อกใช่มั้ยครับ เห็นคลิปคนอื่นเอาไดรเวอร์เซอร์โว 5 V มาต่อคร่อม ไม่ต้องใช้อาดูโน่เลย
ขออภัยครับตอบช้า
ข้อที่ 1.ใช้ได้ 2 แบบครับ
ข้อที่ 2 ตัวอย่างนี้ผมทำแบบควบคุมความเร็วครับ
ข้้อที่ 3 ถ้าเอาไปต่อตรงไม่สามารถ ควบคุมความเร็วได้ครับ วิ่งได้แต่ถ้ามีตัวควบคุม พัสล์ ก็จะคุมความเร็วได้ครับ
@@prasiths3bbb130 เห็นเขาใช้ไดรเวอร์จากเซอร์โวรถกระป๋อง แบบ 360 องศา รถกระป๋องมันเร่งความเร็วและถอยหลังได้ ตามพัลส์ที่ไดรเวอร์รับมาจากรีซีฟ เหมือนกับว่ามันเป็น h bridqe เหมือนกันเลย แถมใช้แรงดัน 5 V ถ้าขา LR pwm ของ bts7960 เป็นอนาล็อก ใช้แรงดัน 0-5 V เหมือนกัน แสดงว่าก็ต้องใช้ได้จริง แต่งงว่าเขาต่อ vcc และกราวด์ยังไงนั่นแหล่ะครับ
ปล ในคลิป นาที 2 hight ,hight =burn มอเตอร์จะเบรคหรือไหม้ครับ (บรรยายว่าเบรค)
@@suksarit เบรค ครับ ล้อจะล็อก การที่ล้อ ล็อกนานๆ จะทำให้ล้อไหม้ ได้ครับ เราจะใช้ที่ความเร็วไม่มาก แล้ว ให้หยุด แบบล็อกล้อ เป็นการหยุดแบบมีข้อแม้ ครับ อยู่ที่ผู้เขียนโปรแกรม มีเทคนิค ทราบปัญหา ที่เกิด และการนำไปใช้ ของแต่ละวิธีครับ
ผมว่าไม่ทนครับ
Hallo Sir I want to talk with you
Ok