• HOME
  • DỰ ÁN & MẠCH ĐIỆN
    • Lập trình
      • ARDUINO PROJECT
      • ESP8266 PROJECT
      • ESP32 PROJECT
      • RASPBERRY PI PROJECT
      • Vi điều khiển
    • Điện tử ứng dụng
      • Audio / Amplifiers
      • Nguồn điện
      • Pin sạc/Acquy và mạch sạc
      • Biến đổi AC và DC
      • Robotic
      • Cảm biến
      • LED
      • LCD
      • Động cơ bước
      • Mạch linh tinh
      • Test & Measurement
      • RF – FM
    • Nixie Clock
    • HOME AUTOMATION
    • Dân dụng
    • Công nghiệp
  • KIẾN THỨC CĂN BẢN
    • Điện tử cơ bản
    • Điện tử số
    • PCB
    • Nixie Tube
    • Raspberry Pi
    • Vi điều khiển
    • Arduino
    • IN 3D
  • DOWNLOAD
    • Phần mềm điện tử
    • Giáo trình
      • Giáo trình Điện – Điện tử
      • Giáo trình Tự Động Hóa
      • Giáo trình Viễn thông
    • Đề tài
      • Đề tài – Điện – Điện Tử
      • Đề tài – Tự Động Hóa
      • Đề tài – Viễn thông
    • Điện tử ứng dụng
    • Tài liệu nước ngoài
    • Hướng dẫn, sửa chữa
    • Sơ đồ, nguyên lý thiết bị
    • Tiêu chuẩn – Đo lường – Thử nghiệm
    • Datasheet
  • LIÊN HỆ
  • SẢN PHẨM
Mạch Điện Lý Thú

Mạch Điện Lý Thú

Sơ đồ nguyên lý, PCB, đồ án, tài liệu, DIY

Trang chủ » DỰ ÁN & MẠCH ĐIỆN » Lập trình » ARDUINO PROJECT » Chế tạo Robot tránh vật cản – Hướng dẫn chi tiết

Chế tạo Robot tránh vật cản – Hướng dẫn chi tiết

26/04/2026 by admin Để lại bình luận

Đã được đăng vào 11/12/2019 @ 11:26

Chế tạo Robot tránh vật cản – Hướng dẫn chi tiết 

Mục lục hiện
Chế tạo Robot tránh vật cản – Hướng dẫn chi tiết
Các linh kiện cần thiết để làm Robot tránh vật cản
Lắp ráp
Sơ đồ đấu nối
Đấu nối
Giải thích Code

Các linh kiện cần thiết để làm Robot tránh vật cản 

Xem thêm: 

  • Hệ thống khóa cửa thông minh sử dụng RFID RC-522 và Arduino
  • Cảm biến độ ẩm | Hệ thống tưới tự động sử dụng Arduino
Tên linh kiện Link đặt mua
Khung Robot https://arduinokit.vn/khung-xe-robot
Mạch Arduino UNO https://arduinokit.vn/arduino-uno-r3-ch340-cap-nap
Motor Shield https://arduinokit.vn/arduino-motor-shield-l293d
SG90 Servo https://arduinokit.vn/dong-co-rc-servo-sg90
Cảm biến tránh vật cản https://arduinokit.vn/cam-bien-sieu-am-hc-sr04
Công tắc  (Được tặng kèm khi mua trọn gói )
Tụ 100nF https://educ8s.tv/part/CeramicCapacitors (Được tặng kèm khi mua trọn gói )
Tụ 300uF https://educ8s.tv/part/ElectrolyticCapacitors (Được tặng kèm khi mua trọn gói )
Dây nối https://educ8s.tv/part/Wires (Được tặng kèm khi mua trọn gói )

Lắp ráp

Hàn thêm tụ 100nF vào đầu của động cơ.

Hoàn thiện quá trình lắp linh kiện vào khung Robot.

Sơ đồ đấu nối

Đấu nối 

Đấu nối cảm biến tránh vật cản vào Shield Motor

VCC 5V
GND GND
TRIG A4
ECHO A5

Đấu nối Servo vào Shield Motor

Dây tín hiệu (màu vàng) S
VCC (Màu đỏ) +
GND (Màu đen) –

Giải thích Code

Để chương trình hoạt động và không báo lỗi khi nạp chương trình. Bước đầu tiên chúng ta cần tải thư viện và Add thư viện vào Arduino IDE.

Thư viện Motor Shield: https://github.com/adafruit/Adafruit-Motor-Shield-library

Thư viện NewPing: https://bitbucket.org/teckel12/arduino-new-ping/wiki/Home#!download-install

   //////////////////////////////////////////////
  //          Arduino ROBOT v0.1              //
 //                                          //
//           http://www.educ8s.tv           //
/////////////////////////////////////////////

#include <AFMotor.h>
#include <NewPing.h>
#include <Servo.h> 

Tiếp theo, chúng ta khai báo chân kết nối cho cảm biến tránh vật cản và hiệu chỉnh tốc độ của động cơ, các bạn có thể thay đổi thông số tốc độ động cơ đến 255.

#define TRIG_PIN A4 
#define ECHO_PIN A5 
#define MAX_DISTANCE 200 
#define MAX_SPEED 190 // sets speed of DC  motors
#define MAX_SPEED_OFFSET 20

Khai báo biến cho hàm Servo và khởi tạo kết nối động cơ trên thư viện AFMotor.

AF_DCMotor motor1(1, MOTOR12_1KHZ); 
AF_DCMotor motor2(3, MOTOR12_1KHZ);

Servo myservo;   

Tiếp theo trong hàm setup(), chúng ta khai báo kết nối cho chân servo, ở đây chúng ta kết nối servo vào chân 9 của board mạch, góc xoay servo đặt là 115 độ.

Các bạn có thể tự thử nghiệm ra góc quay phù hợp cho robot của mình.

void setup() {

  myservo.attach(9);  
  myservo.write(115); 
  delay(2000);
  distance = readPing();
  delay(100);
  distance = readPing();
  delay(100);
  distance = readPing();
  delay(100);
  distance = readPing();
  delay(100);
}

Trong hàm loop() đưa các giá trị đo về 0 và thực hiện chương trình sau 40ms.

Nếu khoảng cách cảm biến đo được nhỏ hơn hoặc bằng 15cm thì Robot sẽ dừng lại trong khoảng thời gian 100ms và lùi lại phía sau 300ms, dừng lại trong 200ms.

Robot quay đầu nhìn sang trái, sang phải và đo khoảng cách.

Nếu khoảng cách đo bên nào lớn hơn hoặc bằng thì robot sẽ quay về hướng lớn nhất và di chuyển về phía trước. 

void loop() {
 int distanceR = 0;
 int distanceL =  0;
 delay(40);
 
 if(distance<=15)
 {
  moveStop();
  delay(100);
  moveBackward();
  delay(300);
  moveStop();
  delay(200);
  distanceR = lookRight();
  delay(200);
  distanceL = lookLeft();
  delay(200);

  if(distanceR>=distanceL)
  {
    turnRight();
    moveStop();
  }else
  {
    turnLeft();
    moveStop();
  }
 }else
 {
  moveForward();
 }
 distance = readPing();
}

Tải Code

Nguồn: arduinokit.vn

Đang tải đánh giá...
  • Facebook
  • Twitter (X)
  • LinkedIn
  • Pinterest
  • Tumblr
  • Zalo

Bài viết liên quan

Arduino cơ bản 02 – Phần 2: PWM | Thay đổi ánh sáng của LED trên Arduino
Arduino cơ bản 02 – Phần 2: PWM | Thay đổi ánh sáng của LED trên Arduino
Đồng hồ sử dụng LCD máy Homephone – Gphone Clock
Đồng hồ sử dụng LCD máy Homephone – Gphone Clock
Arduino cơ bản 01 – Phần 3: Chớp tắt LED trên Arduino Uno
Arduino cơ bản 01 – Phần 3: Chớp tắt LED trên Arduino Uno

Thuộc chủ đề:ARDUINO PROJECT, Robotic Tag với:arduino, cảm biến, code, robot, siêu âm

Bài viết trước « Arduino cơ bản 02 – Phần 2: PWM | Thay đổi ánh sáng của LED trên Arduino
Bài viết sau Đọc nhiệt độ, độ ẩm (DHT11) sử dụng Arduino Uno »

Reader Interactions

Để lại một bình luận Hủy

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Sidebar chính

Zalo hỏi đáp 24/7

Theo dõi qua mạng xã hội

  • Facebook

Bạn đang tìm gì?

Bài viết mới nhất

Bảo vệ Rơle trong hệ thống điện

Bảo vệ Rơle trong hệ thống điện

27/04/2026

Hiển thị thời gian thực (RTC DS1307) lên LCD16x2 bằng giao tiếp I2C trong môi trường Arduino

Hiển thị thời gian thực (RTC DS1307) lên LCD16x2 bằng giao tiếp I2C trong môi trường Arduino

27/04/2026

Đếm số người ra vào phòng và Bật Tắt thiết bị sử dụng Arduino - Phần 2

Đếm số người ra vào phòng và Bật Tắt thiết bị sử dụng Arduino – Phần 2

27/04/2026

Cảm biến độ ẩm | Hệ thống tưới tự động sử dụng Arduino

Cảm biến độ ẩm | Hệ thống tưới tự động sử dụng Arduino

27/04/2026

Mạch Nạp Đa Năng Burn-E

27/04/2026

Danh mục

  • DỰ ÁN & MẠCH ĐIỆN (241)
    • Công nghiệp (16)
    • Dân dụng (29)
    • Điện tử ứng dụng (178)
      • Audio / Amplifiers (34)
      • Biến đổi AC và DC (24)
      • Cảm biến (40)
      • Động cơ bước (5)
      • Kiểm thử và đo đạc (23)
      • LCD (15)
      • LED (20)
      • Mạch linh tinh (27)
      • Nguồn điện (42)
      • Pin sạc/Acquy và mạch sạc (24)
      • RF – FM (5)
      • Robotic (2)
    • HOME AUTOMATION (23)
    • Lập trình (82)
      • ARDUINO PROJECT (39)
      • ESP32 PROJECT (6)
      • ESP8266 PROJECT (17)
      • RASPBERRY PI PROJECT (9)
      • Vi điều khiển (24)
    • Nixie Clock (3)
  • Kiến thức căn bản (168)
    • Arduino (36)
    • Điện tử cơ bản (77)
    • Điện tử số (9)
    • IN 3D (9)
    • Nixie Tube (13)
    • PCB (16)
    • Raspberry Pi (10)
    • Vi điều khiển (16)

Footer

Bài viết mới nhất

  • Bảo vệ Rơle trong hệ thống điện
  • Hiển thị thời gian thực (RTC DS1307) lên LCD16x2 bằng giao tiếp I2C trong môi trường Arduino
  • Đếm số người ra vào phòng và Bật Tắt thiết bị sử dụng Arduino – Phần 2
  • Cảm biến độ ẩm | Hệ thống tưới tự động sử dụng Arduino
  • Mạch Nạp Đa Năng Burn-E
  • Hướng dẫn nạp chương trình trên Arduino IDE

Bình luận mới nhất

  • sodium trong Thư viện Altium – Altium Library.
  • admin trong Kỹ thuật truyền sóng RF 433Mhz và 315Mhz
  • Minh Hoàng trong Kỹ thuật truyền sóng RF 433Mhz và 315Mhz
  • Hè trong IC 4017 và ứng dụng 555 với 4017

Tìm kiếm

Tất cả nội dung trên website chỉ dùng để tham khảo. Chúng tôi không chịu trách nhiệm về thông tin thành viên đăng tải lên website và xóa bài viết khi có vi phạm bản quyền tác giả.