履帶避障智能小車,51單片機智能小車,三路避障紅外傳感更精控。原先鋁底車板軸距不能滿足履帶。鋁易鉆孔,經過電鉆打孔安裝螺絲與電機后完美解決此類問題。只需兩個后驅電機驅動即可,省電,爬坡能力強,避障。另外兩個前電機把里面咬合齒輪拆掉就順暢了,不用再接電,畢竟履帶聯動嘛。有配套避障代碼。
制作圖片:
單片機避障程序;
#include<reg51.h>
#define uint unsigned int
#define uchar unsigned char
sbit z=P0^0;//定義紅外避障檢測端口
sbit q=P0^4;
sbit y=P2^0;
sbit mz=P1^6;//定義電機Mz電平輸出端口
sbit IN1=P1^3;
sbit IN2=P1^2;
sbit my=P1^7;//定義電機My電平輸出端口
sbit IN3=P3^6;
sbit IN4=P3^5;
void delayms(uint);//聲明延時函數
main()//主函數
{
uint i=0;//初始值設定
mz=1;
my=1;
while(1)//無限循環
{
if(z==0&&q==1&&y==1)//表示z方有障礙物 進行y轉向
{
for(i=0;i<5;i++)
{
mz=1;
IN1=1;
IN2=0;
my=0;
delayms(100);//狀態保持100ms
mz=0;
my=0;
delayms(2);//狀態保持2ms
}
}
if(z==1&&q==0&&y==1)//表示前方有障礙物 進行y轉向
{
for(i=0;i<5;i++)
{
mz=1;
IN1=1;
IN2=0;
my=0;
delayms(100);//狀態保持100ms
mz=0;
my=0;
delayms(2);//狀態保持2ms
}
}
if(z==1&&q==1&&y==0)//表示y方有障礙物 進行z轉向
{
for(i=0;i<5;i++)
{
mz=0;
my=1;
IN3=1;
IN4=0;
delayms(100);//狀態保持100ms
mz=0;
my=0;
delayms(2);//狀態保持2ms
}
}
if(z==0&&q==0&&y==1)//表示z前方有障礙物 進行y轉向
{
for(i=0;i<5;i++)
{
mz=1;
IN1=1;
IN2=0;
my=0;
delayms(100);//狀態保持100ms
mz=0;
my=0;
delayms(2);//狀態保持2ms
}
}
if(z==1&&q==0&&y==0)//表示y前方有障礙物 進行z轉向
{
for(i=0;i<5;i++)
{
mz=0;
my=1;
IN3=1;
IN4=0;
delayms(100);//狀態保持100ms
mz=0;
my=0;
delayms(2);//狀態保持2ms
}
}
if(z==0&&q==0&&y==0)//表示前有障礙物 先停下進行后退移動
{
for(i=0;i<5;i++)
{
mz=0;
my=0;
delayms(100);//狀態保持100ms
mz=1;
IN1=0;
IN2=1;
my=1;
IN3=0;
IN4=1;
delayms(2);//狀態保持2ms
}
}
if(z==1&&q==1&&y==1)//表示前方無障礙物 停止
{
mz=0;
my=0;
delayms(2);//狀態保持2ms
}
}
}
void delayms(uint xms)
{
uint i,j;
for(i=xms;i>0;i--)
for(j=110;j>0;j--);
}
原理圖: 無
仿真: 無
代碼: 可下載的程序附件:
代碼.zip
(66.14 KB, 下載次數: 12)
2024-3-13 13:42 上傳
點擊文件名下載附件
|