HCM VIỆN KỸ THUẬT HUTECH CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAMĐộc lập – Tự do – Hạnh phúc PHIẾU THEO DÕI THỰC HIỆN THỰC HIỆN ĐỒ ÁN MÔN HỌC & ĐÁNH GIÁ KẾT QUẢ THỰC HIỆN TÊN MÔN HỌC: HỆ THỐN
TỔNG QUAN
Giới thiệu đề tài
Ngày nay, ngành công nghiệp robot đã đạt được những thành tựu đáng kể trong sản xuất công nghiệp và đời sống hàng ngày Với giá trị lên tới hàng tỉ USD, sản xuất robot đang ngày càng phát triển mạnh mẽ Trong số các loại robot, mobile robot nổi bật với những đặc điểm và tính năng riêng biệt, không giống như các loại robot khác.
Robot di động có khả năng di chuyển linh hoạt, tạo ra không gian hoạt động rộng lớn và ngày càng khẳng định vai trò quan trọng trong nhiều lĩnh vực, thu hút sự đầu tư và nghiên cứu Các loại robot di động bao gồm robot học đường đi, robot dò đường line, robot tránh vật cản và robot tìm đường cho mê cung Trong số đó, robot dò đường line và robot tránh vật cản được ứng dụng rộng rãi trong cuộc sống Sự phát triển của các loại robot này sẽ hỗ trợ đắc lực cho con người trong nhiều công việc.
Mục đích đề tài
Robot dò line không chỉ có nhiều ứng dụng thực tế mà còn giúp sinh viên áp dụng kiến thức đã học vào thực tiễn Với kết cấu cơ khí đơn giản, robot này có khả năng kết hợp với nhiều thành phần điện tử như encoder, sensor xác định đường line và sensor đo khoảng cách Điều này làm cho robot dò line trở thành công cụ học tập lý tưởng, hỗ trợ sinh viên nghiên cứu sâu hơn về ngành Tự động hóa.
Sơ lược các bước thực hiện
Để bắt đầu, việc chế tạo khung xe Robot là rất quan trọng Khung xe cần phải đảm bảo độ bền chắc, tối ưu hóa thiết kế và đạt độ chính xác cao trong việc bố trí bánh xe và động cơ Quá trình này thường được thực hiện thông qua việc thiết kế trên phần mềm và sử dụng máy cắt CNC để cắt các thành phần một cách chính xác.
- Và cuối cùng là công đoạn lập trình dựa trên những kiến th{c đã học đực
1.4 Cấu trúc robot xe dò line:
• 1x Board điều khiển Arduino Uno R3
• 3x Cảm biến hồng ngoại + ( đèn – quang trở )
• 1x Cảm biến siêu âm HC-SR04
• 4x Motor Giảm tốc V1 ( 4 bánh xe )
• 8x Dây điện hai đầu đực đầu cực và dây điện hai đầu cái
Tìm hiểu nguyên lý hoạt động của một số linh kiện
Tập trung vào nghiên c{u và thiết kế xe đơn giản trên cơ sở hoạt động của bộ phận cảm biến và Arduino.
Nghiên c{u trên phần mềm Arduino Tìm hiểu thông tin các linh kiện điện tử và học hỏi kiên th{c từ giáo viên và các bạn.
✓ Xe vận hành có 4 bánh, 2 bánh sau chủ động, 2 bánh trước chuyển hướng nghiên định hướng (bánh lái).
✓ Xe dẫn động bằng 4 động cơ 3 chiều đặt ở hai bánh trước và sau
✓ Xe có hiển thị trang LED (báo nguồn, động cơ…) tương {ng với trạng thái xe.
✓ Phần điều khiển chuyển động chọn 2 mạch cầu H được tích hợp sẵn trong L298.
✓ Phần dò đường dùng 3 cặp cảm biến (1 led phát hồng ngoại và 1 quang trở.)
✓ Cải tiến tránh vật cản bằng cảm biến siêu âm HC-SR04
1.8 Ứng dụng: Đề tài có {ng dụng khá rộng rãi trong công nghệ chế tạo Robot, đặc biệt là Robot dò đường xuất hiện hầu hết trong các cuộc thi robocon.
Phương pháp nghiên c{u
Nghiên c{u trên phần mềm Arduino Tìm hiểu thông tin các linh kiện điện tử và học hỏi kiên th{c từ giáo viên và các bạn.
Phương án thiết kế
✓ Xe vận hành có 4 bánh, 2 bánh sau chủ động, 2 bánh trước chuyển hướng nghiên định hướng (bánh lái).
✓ Xe dẫn động bằng 4 động cơ 3 chiều đặt ở hai bánh trước và sau
✓ Xe có hiển thị trang LED (báo nguồn, động cơ…) tương {ng với trạng thái xe.
✓ Phần điều khiển chuyển động chọn 2 mạch cầu H được tích hợp sẵn trong L298.
✓ Phần dò đường dùng 3 cặp cảm biến (1 led phát hồng ngoại và 1 quang trở.)
✓ Cải tiến tránh vật cản bằng cảm biến siêu âm HC-SR04
1.8 Ứng dụng: Đề tài có {ng dụng khá rộng rãi trong công nghệ chế tạo Robot, đặc biệt là Robot dò đường xuất hiện hầu hết trong các cuộc thi robocon.
Ứng dựng
2.1 Linh kiện và phần mềm sử dụng:
Bài viết này giới thiệu các linh kiện cần thiết để lắp ráp một dự án điện tử, bao gồm Arduino Uno R3, module điều khiển L298N, module thu phát hồng ngoại, đế lắp pin, pin 7.4V, khung xe 4 bánh, dây điện 2 đầu đực cái và module siêu âm Để lập trình và mô phỏng, người dùng cần sử dụng phần mềm Arduino và Protues.
Hình 2.2.1: Arduino Uno R3 Tính năng sản phẩm:
Arduino Uno R3 là một công cụ phổ biến trong việc thiết kế mạch điện tử, cho phép điều khiển LED, gửi dữ liệu lên LCD và điều khiển motor Ngoài ra, nó có thể được kết nối với các Shield để mở rộng chức năng, bao gồm việc tích hợp nhiều module cảm biến và gửi dữ liệu qua WiFi.
CƠ SỞ LÝ THUYẾT
Linh kiện và phần mềm sử dụng
Bài viết này giới thiệu các linh kiện cần thiết cho dự án, bao gồm Arduino Uno R3, module điều khiển L298N, module thu phát hồng ngoại, đế lắp pin, pin 7.4V, khung xe 4 bánh, dây điện 2 đầu đực cái và module siêu âm Đối với phần mềm, bạn sẽ cần sử dụng Arduino và Protues để lập trình và mô phỏng.
Giới thiệu linh kiện
Hình 2.2.1: Arduino Uno R3 Tính năng sản phẩm:
Arduino Uno R3 là một công cụ phổ biến trong việc thiết kế mạch điện tử, cho phép điều khiển LED, gửi dữ liệu lên LCD và điều khiển motor Nó cũng hỗ trợ việc gắn thêm các Shield để kết nối với nhiều module cảm biến, mở rộng chức năng như gửi dữ liệu qua WiFi.
Trên thị trường hiện nay, có nhiều biến thể của Arduino Uno nhằm cung cấp các tính năng chuyên dụng, điển hình như mCore và Orion trên mBot Những biến thể này được thiết kế đặc biệt để giúp trẻ em dễ dàng nhận biết và sử dụng các loại module thông qua các cổng kết nối.
Vi điều khiển: ATmega328P Điện áp hoạt động: 5V (cấp qua cổng usb) Điện áp khuyến nghị 6 – 9V
Chân digital: 14 chân (6 chân PWM)
Dòng điện trên mỗi chân I/O: 30 mA
Bộ nhớ Flash: 32 KB (ATmega328P) với 0,5 KB dùng bởi bootloader SRAM: 2 KB (ATmega328P)
Giao động của thạch anh: 16MHZ
IC L298 là một mạch tích hợp bao gồm hai mạch cầu H, phù hợp cho việc điều khiển động cơ DC loại vừa với điện áp thấp Chức năng của các chân trên L298N cho phép điều khiển hướng và tốc độ của động cơ một cách hiệu quả.
4 chân INPUT: IN1, IN2, IN3, IN4 được nối lần lượt với các chân 5,
7, 10, 12 của L298 Đây là các chân nhận tín hiệu điều khiển.
4 chân OUTUT: OUT1, OUT2, OUT3, OUT4 (tương {ng với các chân INPUT) được nối với các chân 2, 3,13,14 của L298 Các chân này sẽ được nối với động cơ.
Hai chân ENA và ENB của L298 được sử dụng để điều khiển mạch cầu H Khi ở mức logic "1" (kết nối với nguồn 5V), mạch cầu H sẽ hoạt động, trong khi ở mức logic "0", mạch cầu H sẽ không hoạt động.
Với bài toán của mình ở trên, các bạn chỉ cần lưu ý đến cách điều khiển chiều quay với L298:
Khi ENA = 0: Động cơ không quay với mọi đầu vào.
INT1 = 1; INT2 = 0: Động cơ quay thuận.
INT1 = 0; INT2 = 1: Động cơ quay nghịch.
INT1 = INT2: Động cơ dùng ngay t{c thì.
Với ENB cũng tương tự với INT3, INT4.
Trong bài này mình sử dụng module L298 V3 để điều khiển chiều quay của động cơ DC.
Driver: L298N tích hợp hai mạch cầu H Điện áp điều khiển : +5V ~ +12 V
Dòng tối đa cho mỗi cầu H là :2A Điện áp của tín hiệu điều khiển : +5 V ~ +7 V
Dòng của tín hiệu điều khiển : 0 ~ 36Ma
Công suất hao phí : 20W (khi nhiệt độ T = 75 °C)
2.2.3 Module thu phát hồng ngori:
Hình 2.2.3: Module thu phát hồng ngoại Tính năng sản phẩm:
Cảm biến hồng ngoại phát hiện vật cản đi kèm với chiết áp điều chỉnh độ nhạy, cho phép dễ dàng kết nối với các vi điều khiển như Arduino/Genuino UNO, Mega, Leonardo và Raspberry Pi nhờ tín hiệu kỹ thuật số.
Cảm biến hồng ngoại bao gồm một bộ phát và bộ thu, hoạt động bằng cách phát hiện vật thể chặn luồng hồng ngoại Khi có vật thể cản trở, tia hồng ngoại sẽ phản xạ và bộ thu nhận tín hiệu qua mạch so sánh trên bo mạch Tùy chỉnh độ nhạy có thể thực hiện thông qua chiết áp trên bo mạch, cho phép tăng cường phạm vi phát hiện Khi phát hiện, cảm biến sẽ xuất ra tín hiệu logic Low tại chân đầu ra và đèn LED sẽ sáng lên để thông báo Cảm biến này tương thích với nguồn điện 5V hoặc 3.3V.
Kết nối ba chân: OUT, GND và VCC:
Phạm vi phát hiện chướng ngại vật: 2cm đến 10cm Độ nhạy có thể điều chỉnh với chiết áp trên bo mạch.
Thích hợp với tất cả vi điều khiển.
2.2.4 Module siêu âm HC-SR04:
Hình 2.2.4 a Cảm biến siêu âm HC-SR04
Điện áp hoạt động: 5VDC
Tín hiệu giao tiếp: TTL
Chân tín hiệu: Echo, Trigger (thường dùng) và Out (ít dùng).
Tần số phát sóng: 40Khz
Khoảng cách đo được của cảm biến là từ 2 đến 450 cm Khoảng cách tối đa này đạt được trong điều kiện lý tưởng, với không gian trống và bề mặt vật thể phẳng Tuy nhiên, trong điều kiện bình thường, cảm biến cho kết quả chính xác nhất ở khoảng cách dưới 100 cm.
Sai số: 0.3cm (khoảng cách càng gần, bề mặt vật thể càng phẳng sai số càng nhỏ).
Kích thước: 43mm x 20mm x 17mm
Tính năng và nguyên lý :
Cảm biến siêu âm HC-SR04 là thiết bị lý tưởng để đo khoảng cách từ vật thể đến cảm biến thông qua sóng siêu âm, với thời gian phản hồi nhanh và độ chính xác cao Thiết bị này thích hợp cho các ứng dụng phát hiện vật cản và đo khoảng cách HC-SR04 có hai phương pháp sử dụng: thông qua cặp chân Echo/Trigger hoặc chỉ sử dụng một chân Out để phát và nhận tín hiệu Nó rất phổ biến trong cộng đồng Arduino nhờ vào nhiều bộ thư viện và mã mẫu có sẵn.
Hình 2.2.4.b Nguyên lý hoạt động của HC-SR04
NỘI DUNG THIẾT KẾ PHẦN MỀM VÀ MÔ HÌNH
Thiết kế cơ khí
- Bản vẽ thiết kế xe dò line:
1 Module thu phát hồng ngoại.
7 Module siêu âm HC-SR04
3.2 Sơ đồ toàn mrch kết nối các linh kiện:
Nối 1 dây từ nguồn (5V) và GND của L298N vào Arduino.
Nối 2 động cơ M1 và M2 ( song song ) vào ngõ ra 1,2 của L298N Tương tự nối 2 động cơ M3 và M4 ( song song ) vào ngõ ra 3,4 của L298N.
Nối chân EnA, Int1, Int2, Int3, Int4, EnB của L298N lần lượt vào chân D5, D3, D7, D8, D6 của Arduino.
Nối chân Vcc, GND, Out của cảm biến bên phải lần lượt vào chân 5V, GND, D9 của Arduino.
Nối chân Vcc, GND, Out của cảm biến bên trái lần lượt vào chân 5V, GND, D10 của Arduino.
Nối chân Vcc, GND, Out của cảm biến ở giữa lần lượt vào chân 5V, GND, D2 của Arduino.
Cấp nguồn 5V, GND từ Arduino vào lần lượt chân 1, 4 của cảm biến siêu âm HC- SR04 Lần lượt chân 2 (Trig) và 3 (Echo) nối vào D11, D12 của Arduino ( cải tiến thêm )
Sử dụng nguồn điện 12V để cung cấp điện áp, sau đó qua khối lọc, ta có điện áp 5V ổn định cho các khối khác Bên cạnh đó, cần áp dụng các biện pháp bảo vệ như cầu chì 2A và diode chống ngược nguồn để đảm bảo an toàn cho hệ thống.
Hình 3.3.1: Mô phỏng khối nguồn trên Protues 12
Cảm biến hồng ngoại thu thập dữ liệu từ bộ cảm biến và truyền thông tin này đến module điều khiển L298N Sau khi nhận được thông tin, module L298N sẽ sử dụng dữ liệu để điều khiển hoạt động của động cơ.
Hình 3.3.1: Mô phỏng khối cảm biến trên Protues
Khi LED phát tín hiệu và nhận phản hồi, quang trở sẽ thay đổi điện trở Tín hiệu này được gửi vào vi điều khiển để xử lý, sau đó vi điều khiển sẽ phát ra tín hiệu điều khiển động cơ.
+ Tạo tín hiệu phản hồi về khối vi xử lý trung tâm để từ đó điều khiển động cơ.
Nguyên lý hoạt động của quang trở dựa trên sự thay đổi điện trở khi tiếp xúc với ánh sáng Khi có ánh sáng, điện trở của quang trở giảm xuống khoảng 0.5k, trong khi không có ánh sáng, điện trở có thể tăng lên đến 250k Chúng ta sử dụng đèn LED làm nguồn sáng cho quang trở Khi ánh sáng phản xạ từ nền trắng, điện trở của quang trở giảm, nhưng khi gặp băng keo đen, ánh sáng khó phản xạ, dẫn đến việc quang trở nhận ít ánh sáng hơn.
=> trở nó tăng Từ đó dựa vào 2 quang trở, robot có thể phân biệt được vạch đen trên nền.
L298N là một giải pháp lý tưởng để điều khiển động cơ nhờ vào việc tích hợp sẵn 2 mạch cầu H trong mỗi IC Mỗi cầu H có khả năng chịu được dòng 2 Ampe, cho phép tổng dòng cung cấp lên đến 4 Ampe khi các chân có cùng chức năng được kết nối Điều này đảm bảo động cơ hoạt động với công suất tối đa.
IC chính: L298N Điện áp hoạt động: 5V - 24V( khuyên dùng 12V)
Dòng chưa có tải: 10mA Đầu ra: 4 đầu ra điều khiển 4 động cơ DC
14Hình 3.3.3 a: Mô phỏng khối động cơ trên Protues
Hình 3.3.3 b: Mô phỏng khối động cơ trên Protues
Vi điều khiển ATmega328 là một giải pháp mạnh mẽ cho việc lập trình các ứng dụng điều khiển phức tạp Nó được trang bị nhiều loại bộ nhớ như ROM, RAM và Flash, cùng với các ngõ vào ra digital I/O, trong đó có nhiều ngõ hỗ trợ xuất tín hiệu PWM Ngoài ra, ATmega328 còn có khả năng đọc tín hiệu analog và hỗ trợ các chuẩn giao tiếp đa dạng như UART, SPI, và TWI (I2C).
+ Xung nhịp lớn nhất: 20Mhz
+ Bộ nhớ chương trình (FLASH): 32KB
+ Điện áp hoạt động rộng: 1.8V – 5.5V
+ Số timer: 3 timer gồm 2 timer 8-bit và 1 timer 16-bit + Số kênh xung PWM: 6 kênh (1timer 2 kênh)
* Cấu trúc chân và sơ đồ khối bên trong
Hình 3.3.4 a : Cấu trúc chân ATmega328
Hình 3.3.4 b : Sơ đồ khối bên trong của ATmega328
Ta sẽ dùng đường line đen trên nền trắng cho cảm biến trên xe có thể nhận diện và gửi thông tin về module.
3.5 Code điều khiển: int stop_distance = 12;
//Kết nối SRF 05 OR 04 const int trigPin = 11; const int echoPin = 12;
//L298 kết nối arduino const int motorA1 ( ( (= 3; ( const int motorA2 ( ( (= 4; ( const int motorAspeed (= 5; ( const int motorB1 ( ( (= 7; const int motorB2 ( ( (= 8; const int motorBspeed (= 6; (
This article discusses the integration of three sensors for line detection in a robotic system, utilizing constants for sensor configurations: left sensor (L_S = 9), center sensor (S_S = 2), and right sensor (R_S = 10) It initializes variables to track the state of each sensor and measures the duration for processing input The setup function is crucial for configuring the system to accurately detect line positions.
( ( digitalWrite (motorA1, LOW); //cho xe robot đi thẳ-ng 1 đoạn
( ( digitalWrite (motorA1, LOW); // cho xe robot xoay pha-i 1 đoạn
( ( digitalWrite (motorA1, LOW); //cho xe robot đi thẳ-ng 1 đoạn
( ( digitalWrite (motorA1, LOW); //cho xe robot xoay pha-i 1 đoạn
( ( digitalWrite (motorA1, LOW); //cho xe robot đi thẳ-ng 1 ( ( digitalWrite(motorA2, HIGH ;)
( ( while left_sensor_state == LOW( ) {
( ( ( Serial println ("in the first while");
} void forword() { // chương trình con xe robot đi tiến
( digitalWrite(motorA2, LOW ;) ( digitalWrite (motorB1, HIGH ;) ( digitalWrite(motorB2, LOW ;) } void turnLeft() {
( digitalWrite (motorA1, LOW ;) ( digitalWrite(motorA2, HIGH ;) ( digitalWrite (motorB1, LOW ;) ( digitalWrite(motorB2, LOW ;) } void Stop() {
( digitalWrite (motorA1, LOW ;)( digitalWrite(motorA2, LOW ;)( digitalWrite (motorB1, LOW ;)( digitalWrite(motorB2, LOW ;)}
Chi tiết thiết kế
Sử dụng nguồn 12V để cung cấp điện áp, sau đó qua khối lọc, ta có được điện áp 5V ổn định cho các khối khác Bên cạnh đó, cần áp dụng các biện pháp bảo vệ như cầu chì 2A và diode chống ngược nguồn.
Hình 3.3.1: Mô phỏng khối nguồn trên Protues 12
Cảm biến hồng ngoại thu thập dữ liệu từ bộ cảm biến và truyền thông tin này đến module điều khiển L298N Sau khi nhận được thông tin, module L298N sẽ sử dụng dữ liệu để điều khiển động cơ.
Hình 3.3.1: Mô phỏng khối cảm biến trên Protues
Khi đèn LED phát tín hiệu và nhận phản hồi, quang trở sẽ thay đổi điện trở, gửi tín hiệu vào vi điều khiển Vi điều khiển sẽ xử lý thông tin này và phát tín hiệu điều khiển động cơ.
+ Tạo tín hiệu phản hồi về khối vi xử lý trung tâm để từ đó điều khiển động cơ.
Nguyên lý hoạt động của quang trở dựa vào việc thay đổi điện trở khi có ánh sáng, với giá trị điện trở giảm từ 250kΩ (trong bóng tối) xuống còn 0.5kΩ (khi có ánh sáng) Led phát được sử dụng làm nguồn sáng cho quang trở Khi quang trở gặp nền trắng, ánh sáng sẽ phản xạ và làm giảm điện trở, trong khi khi gặp bề mặt đen (như băng keo đen), ánh sáng khó phản xạ, dẫn đến quang trở nhận ít ánh sáng hơn.
=> trở nó tăng Từ đó dựa vào 2 quang trở, robot có thể phân biệt được vạch đen trên nền.
L298N là một lựa chọn phổ biến để điều khiển động cơ nhờ vào việc tích hợp sẵn 2 mạch cầu H bên trong Mỗi IC L298N có khả năng cung cấp 2 dòng Ampe cho mỗi cầu H, và khi kết hợp các chân có cùng chức năng, IC có thể cung cấp tổng dòng lên đến 4 Ampe, đủ để động cơ hoạt động với công suất tối đa.
IC chính: L298N Điện áp hoạt động: 5V - 24V( khuyên dùng 12V)
Dòng chưa có tải: 10mA Đầu ra: 4 đầu ra điều khiển 4 động cơ DC
14Hình 3.3.3 a: Mô phỏng khối động cơ trên Protues
Hình 3.3.3 b: Mô phỏng khối động cơ trên Protues
Vi điều khiển ATmega328 là một lựa chọn lý tưởng cho việc lập trình các ứng dụng điều khiển phức tạp nhờ vào cấu hình mạnh mẽ của nó Với bộ nhớ ROM, RAM và Flash phong phú, ATmega328 cung cấp nhiều ngõ vào ra digital I/O, trong đó có nhiều ngõ có khả năng xuất tín hiệu PWM Ngoài ra, vi điều khiển này còn hỗ trợ đọc tín hiệu analog và các chuẩn giao tiếp đa dạng như UART, SPI và TWI (I2C).
+ Xung nhịp lớn nhất: 20Mhz
+ Bộ nhớ chương trình (FLASH): 32KB
+ Điện áp hoạt động rộng: 1.8V – 5.5V
+ Số timer: 3 timer gồm 2 timer 8-bit và 1 timer 16-bit + Số kênh xung PWM: 6 kênh (1timer 2 kênh)
* Cấu trúc chân và sơ đồ khối bên trong
Hình 3.3.4 a : Cấu trúc chân ATmega328
Hình 3.3.4 b : Sơ đồ khối bên trong của ATmega328
Ta sẽ dùng đường line đen trên nền trắng cho cảm biến trên xe có thể nhận diện và gửi thông tin về module.
3.5 Code điều khiển: int stop_distance = 12;
//Kết nối SRF 05 OR 04 const int trigPin = 11; const int echoPin = 12;
//L298 kết nối arduino const int motorA1 ( ( (= 3; ( const int motorA2 ( ( (= 4; ( const int motorAspeed (= 5; ( const int motorB1 ( ( (= 7; const int motorB2 ( ( (= 8; const int motorBspeed (= 6; (
The code snippet initializes three sensors for line detection, defining constants for left, center, and right sensor states with values 9, 2, and 10 respectively It also declares variables for the state of each sensor and a variable for measuring duration The setup function is prepared for configuring the sensors.
( ( digitalWrite (motorA1, LOW); //cho xe robot đi thẳ-ng 1 đoạn
( ( digitalWrite (motorA1, LOW); // cho xe robot xoay pha-i 1 đoạn
( ( digitalWrite (motorA1, LOW); //cho xe robot đi thẳ-ng 1 đoạn
( ( digitalWrite (motorA1, LOW); //cho xe robot xoay pha-i 1 đoạn
( ( digitalWrite (motorA1, LOW); //cho xe robot đi thẳ-ng 1 ( ( digitalWrite(motorA2, HIGH ;)
( ( while left_sensor_state == LOW( ) {
( ( ( Serial println ("in the first while");
} void forword() { // chương trình con xe robot đi tiến
( digitalWrite(motorA2, LOW ;) ( digitalWrite (motorB1, HIGH ;) ( digitalWrite(motorB2, LOW ;) } void turnLeft() {
( digitalWrite (motorA1, LOW ;) ( digitalWrite(motorA2, HIGH ;) ( digitalWrite (motorB1, LOW ;) ( digitalWrite(motorB2, LOW ;) } void Stop() {
( digitalWrite (motorA1, LOW ;)( digitalWrite(motorA2, LOW ;)( digitalWrite (motorB1, LOW ;)( digitalWrite(motorB2, LOW ;)}
Code điều khiển
//Kết nối SRF 05 OR 04 const int trigPin = 11; const int echoPin = 12;
//L298 kết nối arduino const int motorA1 ( ( (= 3; ( const int motorA2 ( ( (= 4; ( const int motorAspeed (= 5; ( const int motorB1 ( ( (= 7; const int motorB2 ( ( (= 8; const int motorBspeed (= 6; (
The code snippet demonstrates the setup for a system that connects three sensors, specifically for line detection It defines constants for left, center, and right sensor states, initializes sensor state variables, and includes a long variable for duration measurement The setup function prepares the system for operation, ensuring accurate line detection and distance measurement.
( ( digitalWrite (motorA1, LOW); //cho xe robot đi thẳ-ng 1 đoạn
( ( digitalWrite (motorA1, LOW); // cho xe robot xoay pha-i 1 đoạn
( ( digitalWrite (motorA1, LOW); //cho xe robot đi thẳ-ng 1 đoạn
( ( digitalWrite (motorA1, LOW); //cho xe robot xoay pha-i 1 đoạn
( ( digitalWrite (motorA1, LOW); //cho xe robot đi thẳ-ng 1 ( ( digitalWrite(motorA2, HIGH ;)
( ( while left_sensor_state == LOW( ) {
( ( ( Serial println ("in the first while");
} void forword() { // chương trình con xe robot đi tiến
( digitalWrite(motorA2, LOW ;) ( digitalWrite (motorB1, HIGH ;) ( digitalWrite(motorB2, LOW ;) } void turnLeft() {
( digitalWrite (motorA1, LOW ;) ( digitalWrite(motorA2, HIGH ;) ( digitalWrite (motorB1, LOW ;) ( digitalWrite(motorB2, LOW ;) } void Stop() {
( digitalWrite (motorA1, LOW ;)( digitalWrite(motorA2, LOW ;)( digitalWrite (motorB1, LOW ;)( digitalWrite(motorB2, LOW ;)}