Xe dò line với Arduino | ADVANCE CAD
I.Linh kiện và giới thiệu mô hình
1 board Arduino Uno
Bạn đang đọc: Xe dò line với Arduino | ADVANCE CAD
2 Modul thu phát hồng ngoại IR
1 Khung robot
1 Motor Driver IC – L293D
2 bộ bánh xe gắn kèm motor
Nguồn cấp từ pin 9 v và jack liên kết với Arduino
Sẽ rất mê hoặc khi chính tay ta tạo ra một chiếc xe mà hoàn toàn có thể tự vạch đường đi cho nó dựa trên tín hiệu phản xạ từ mặt phẳng sáng và tối khi ta kẻ 1 vạch. Xe sẽ trọn vẹn tự động hóa chạy theo vạch, dựa trên tín hiệu phát ra và hồi tiếp từ bộ thu-phát hồng ngoại IR
Driver motor L293D sẽ điều khiển và tinh chỉnh 2 động cơ DC 5 v dẫn động cho hai bánh của xe quay thuận và nghịch nhờ tín hiệu từ Arduino qua driver điều khiển và tinh chỉnh 2 động cơ độc lập nhau. Qua sự hòn đảo chiều và quay tuần tự hay đồng thời của động cơ mà xe hoàn toàn có thể quay trái, phải, khi chỉ có 1 động cơ ở bên tương ứng quay hoặc quay ngược. Để nhận ra và hướng xe đi theo vạch, ta nhờ vào bộ thu và phát tín hiệu hồng ngoại
- Sơ đồ toàn mạch và kết nối các linh kiện
Trong đây ta sử dụng 1 bộ IR hồng ngoại đã lắp ráp sẵn có sơ đồ như sau
III. Giải thích các linh kiện
Board Arduino đóng vai trò là bộ vi giải quyết và xử lý TT của xe, giải quyết và xử lý tín hiệu từ bộ thu phát hồng ngoại IR trên đoạn đường có vạch kẻ để đưa ra lệnh điều khiển và tinh chỉnh đúng mực cho driver tinh chỉnh và điều khiển hoạt động 2 động cơ .
Motor Driver (L293D) đóng vài trò là bộ điều khiển cho hai động cơ,nhận tín hiệu trực tiếp từ Arduino dựa trên thông tin nhận được từ bộ IR hồng ngoại
Hai động cơ hoạt động độc lập cho ta chuyển động,tiến,lùi,quay trái-phải
- Nguyên lý hoạt động
Trong đây,ta sẽ cho xe thực hiện một công việc khá đơn giản là chạy theo đoạn đường màu đen đã kẻ sẵn. IR sẽ phát hiện ra vạch qua việc phát ra bước sóng hồng ngoại và phản xạ lại trên bởi bề mặt có màu sáng tức là ở những nơi không có màu đen là vạch thì sẽ có phản hồi,còn trên vạch thì không,nguyên lý này sẽ dẫn hướng cho xe đi đúng vạch đã định.
Dưới đây là sơ đồ cơ chế hoạt động của IR hồng ngoại qua việc phản xạ và không phản xạ
Nhờ đó robot phát hiện được đoạn đường nào màu đen, đoạn đường nào không mà vận động và di chuyển đúng mực .
Khi robot vận động và di chuyển về phía trước, cả hai cảm biến sẽ ở trạng thái chờ, nếu 1 trong hai cảm biến ở 2 phía phát hiện vạch màu đen ở phía của mình tức là sẽ sẽ rẽ theo một hướng trái hoặc phải, Arduino sẽ phát hiện ra sự biến hóa này và điều hướng 2 động cơ trải qua driver để điều khiển và tinh chỉnh theo hướng tương thích
- giới thiệu chương trình
int mot1 = 9 ;
int mot2 = 6 ;
int mot3 = 5 ;
int mot4 = 3 ;int left = 13 ;
int right = 12 ;int Left = 0 ;
int Right = 0 ;void LEFT ( void ) ;
void RIGHT ( void ) ;
void STOP ( void ) ;void setup ( )
{
pinMode ( mot1, OUTPUT ) ;
pinMode ( mot2, OUTPUT ) ;
pinMode ( mot3, OUTPUT ) ;
pinMode ( mot4, OUTPUT ) ;pinMode ( left, INPUT ) ;
pinMode ( right, INPUT ) ;digitalWrite ( left, HIGH ) ;
digitalWrite ( right, HIGH ) ;}
void loop ( )
{analogWrite ( mot1, 255 ) ;
analogWrite ( mot2, 0 ) ;
analogWrite ( mot3, 255 ) ;
analogWrite ( mot4, 0 ) ;while ( 1 )
{
Left = digitalRead ( left ) ;Right=digitalRead(right);
if ( ( Left = = 0 và và Right = = 1 ) = = 1 )
LEFT ( ) ;
else if ( ( Right = = 0 và và Left = = 1 ) = = 1 )
RIGHT ( ) ;
}
}void LEFT ( void )
{
analogWrite ( mot3, 0 ) ;
analogWrite ( mot4, 30 ) ;while ( Left = = 0 )
{
Left = digitalRead ( left ) ;
Right = digitalRead ( right ) ;
if ( Right = = 0 )
{
int lprev = Left ;
int rprev = Right ;
STOP ( ) ;
while ( ( ( lprev = = Left ) và và ( rprev = = Right ) ) = = 1 )
{
Left = digitalRead ( left ) ;
Right = digitalRead ( right ) ;
}
}
analogWrite ( mot1, 255 ) ;
analogWrite ( mot2, 0 ) ;
}
analogWrite ( mot3, 255 ) ;
analogWrite ( mot4, 0 ) ;
}void RIGHT ( void )
{
analogWrite ( mot1, 0 ) ;
analogWrite ( mot2, 30 ) ;while ( Right = = 0 )
{
Left = digitalRead ( left ) ;
Right = digitalRead ( right ) ;
if ( Left = = 0 )
{
int lprev = Left ;
int rprev = Right ;
STOP ( ) ;
while ( ( ( lprev = = Left ) và và ( rprev = = Right ) ) = = 1 )
{
Left = digitalRead ( left ) ;
Right = digitalRead ( right ) ;
}
}
analogWrite ( mot3, 255 ) ;
analogWrite ( mot4, 0 ) ;
}
analogWrite ( mot1, 255 ) ;
analogWrite ( mot2, 0 ) ;
}
void STOP ( void )
{
analogWrite ( mot1, 0 ) ;
analogWrite ( mot2, 0 ) ;analogWrite(mot3,0);
analogWrite ( mot4, 0 ) ;
}
Source: https://dichvubachkhoa.vn
Category : Linh Kiện Và Vật Tư
Có thể bạn quan tâm
- 16 Dụng Cụ Trước Khi Dán Giấy Dán Tường
- Top 16 linh kiện lâm music hay nhất 2024 – Ngày hội bia Hà Nội
- Mua linh kiện điện thoại giá sỉ ở đâu Quận 7 – Phát Lộc
- Màn hình iPhone X – Zin New – Chính hãng – Giá rẻ Tín Thành
- GIỚI THIỆU VỀ LINH KIỆN ĐIỆN TỬ TUHU
- Các loại linh kiện chất lượng có trong máy hàn điện tử Pejo. –