Xe tránh vật cản

– Dòng tiêu thú trung bình: 0.5A– Dòng chờ: 0.06A– Số giờ đồng hồ hoạt động: thường xuyên 3h vào ĐK pin được sạc đầy– Trọng lượng: 500g


*
Sơ đồ dùng đấu nối của Combo tự có tác dụng xe 3 chân rời thiết bị cản Arduino

Đấu dây tín hiệu

Chân trig của SR-04 = 7Chân eđến của SR-04 = 4

Chân IN1 Module L298 = 13 // nhằm kiểm soát và điều chỉnh hướngChân IN2 Module L298 = 12Chân IN3 Module L298 = 11Chân IN4 Module L298 = 10

Chân ENA Module L298 = 6 // để điều chỉnh tốc độChân ENB Module L298 = 5

*
Sơ đồ dùng đấu nối của Combo từ làm xe ba bánh rời đồ vật cản Arduino

Video test


Code mẫu

#include //Servo motor library. This is standard library#include //Ultrasonic sensor function library. You must install this library//our L298N control pinsconst int LeftMotorForward = 13; // banh ben trai tienconst int LeftMotorBackward = 12; // banh ben trai luiconst int RightMotorForward = 11; // banh ben pnhì tienconst int RightMotorBackward = 10; // banh ben phai luiconst int emãng cầu = 6; const int enb = 5;//sensor pins SR04#define trig_pin 7 #define echo_pin 4#define maximum_distance 200boolean goesForward = false;int distance = 100;NewPing sonar(trig_pin, echo_pin, maximum_distance); //sensor functionServo servo_motor; //our servo namevoid setup()Serial.begin(9600); pinMode(RightMotorForward, OUTPUT); pinMode(LeftMotorForward, OUTPUT); pinMode(LeftMotorBackward, OUTPUT); pinMode(RightMotorBackward, OUTPUT); pinMode(ena, OUTPUT); pinMode(enb, OUTPUT); servo_motor.attach(9); //our servo pin servo_motor.write(90); delay(2000); distance = readPing(); delay(100); distance = readPing(); delay(100); distance = readPing(); delay(100); distance = readPing(); delay(100); analogWrite(ena, 200); // chinch toc vị dong co ben trai analogWrite(enb, 200); // chinch toc vì dong co ben traivoid loop() int distanceRight = 0; int distanceLeft = 0; delay(50); if (distance = distanceLeft) // neu vùng cach toi domain authority >= khoang cach ben trai turnRight(); //re pnhì moveStop(); else // ko thi turnLeft(); // re trai moveStop(); else moveForward(); // ko pnhì 2 truong hop tren thi chay thang distance = readPing();}int lookRight() // nhin pnhị lay khoang cach servo_motor.write(10); delay(500); int distance = readPing(); delay(100); servo_motor.write(90); return distance;int lookLeft() // nhin trai lai khoang cach servo_motor.write(170); delay(500); int distance = readPing(); delay(100); servo_motor.write(90); return distance; delay(100);int readPing() delay(70); int cm = sonar.ping_cm(); if (cm==0) cm=250; return cm;void moveStop() // dung lai digitalWrite(RightMotorForward, LOW); digitalWrite(LeftMotorForward, LOW); digitalWrite(RightMotorBackward, LOW); digitalWrite(LeftMotorBackward, LOW);void moveForward() // di thang if(!goesForward) goesForward=true; digitalWrite(LeftMotorForward, HIGH); digitalWrite(RightMotorForward, HIGH); digitalWrite(LeftMotorBackward, LOW); digitalWrite(RightMotorBackward, LOW); void moveBackward() goesForward=false; digitalWrite(LeftMotorBackward, HIGH); digitalWrite(RightMotorBackward, HIGH); digitalWrite(LeftMotorForward, LOW); digitalWrite(RightMotorForward, LOW); void turnRight() digitalWrite(LeftMotorForward, HIGH); digitalWrite(RightMotorBackward, HIGH); digitalWrite(LeftMotorBackward, LOW); digitalWrite(RightMotorForward, LOW); delay(300); digitalWrite(LeftMotorForward, HIGH); digitalWrite(RightMotorForward, HIGH); digitalWrite(LeftMotorBackward, LOW); digitalWrite(RightMotorBackward, LOW); void turnLeft() digitalWrite(LeftMotorBackward, HIGH); digitalWrite(RightMotorForward, HIGH); digitalWrite(LeftMotorForward, LOW); digitalWrite(RightMotorBackward, LOW); delay(300); digitalWrite(LeftMotorForward, HIGH); digitalWrite(RightMotorForward, HIGH); digitalWrite(LeftMotorBackward, LOW); digitalWrite(RightMotorBackward, LOW);


Chuyên mục: Chia sẻ