久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2657|回復: 3
收起左側

超聲波避障小車

[復制鏈接]
ID:567008 發表于 2019-6-19 16:52 | 顯示全部樓層 |閱讀模式
本帖最后由 anan111 于 2019-6-19 16:58 編輯

這是我自己做的超聲波避障小車。
1.51單片機
2.L298N驅動板
3.電機2
4.差速輪2,萬向輪1
enA,enB可不接
#include<reg52.h>
//定義L298N端口
sbit in1 = P0^0;
sbit in2 = P0^1;
sbit in3 = P0^2;
sbit in4 = P0^3;
sbit enA = P0^4;
sbit enB = P0^5;
//定義超聲波模塊端口
sbit Trig = P1^2;
sbit Echo = P1^3;
unsigned int distance_cm = 0;   //距離
unsigned int overflow_count = 0;  //溢出計數
unsigned int status = 0;    //超聲波模塊狀態
unsigned int dis_count = 0;    //計數
unsigned char tmp, dat, flat;  
unsigned int num, model, c=0;
unsigned int speed = 100;
void chaoshengbo_init(void);
void GetDistance(void);
void delay(unsigned int z)
{
unsigned int x, y;
for(x = z; x > 0 ; x--)
  for(y=110;y>0;y--)
   ;
}
void delay_us(unsigned int aa)
{
while(aa--);
}
//小車右轉
void right(unsigned char pwm)
{
enA = 1;
in1 = 0;
in2 = 1;
in3 = 0;
in4 = 0;
delay_us( pwm );

enA = 1;
in1 = 0;
in2 = 0;
in3 = 0;
in4 = 0;
delay_us( 100 - pwm );
}
void r(void)
{
enA = 1;
in1 = 0;
in2 = 1;
in3 = 0;
in4 = 0;
}
//小車左轉
void left(unsigned char pwm)
{
enA = 1;
in1 = 0;
in2 = 0;
in3 = 1;
in4 = 0;
delay_us( pwm );

enA = 1;
in1 = 0;
in2 = 0;
in3 = 0;
in4 = 0;
delay_us( 100 - pwm );
}
void l(void)
{
enA = 1;
in1 = 0;
in2 = 0;
in3 = 1;
in4 = 0;
}
//小車后退
void back(unsigned char pwm)
{
enA = 1;
enB = 1;
in1 = 1;
in2 = 0;
in3 = 1;
in4 = 0;
delay_us( pwm );

enA = 1;
in1 = 0;
in2 = 0;
in3 = 0;
in4 = 0;
delay_us( 100 - pwm );
}
void b(void)
{
enA = 1;
enB = 1;
in1 = 1;
in2 = 0;
in3 = 1;
in4 = 0;
}
//小車前進
void forward(unsigned char pwm)
{
enA = 1;
enB = 1;
in1 = 0;
in2 = 1;
in3 = 0;
in4 = 1;
delay_us( pwm );

enA = 1;
in1 = 0;
in2 = 0;
in3 = 0;
in4 = 0;
delay_us( 100 - pwm );
}
void f(void)
{
enA = 1;
enB = 1;
in1 = 0;
in2 = 1;
in3 = 0;
in4 = 1;
}
//小車停止
void stop(void)
{
enB = 1;
in1 = 0;
in2 = 0;
in3 = 0;
in4 = 0;
}
void main(void)
{
chaoshengbo_init();
while(1)
{
  b();
  GetDistance();
  if(distance_cm > 0 && distance_cm <= 15)
  {
   f();
   delay(1000);
   r();
   delay(1000);
  }
}
}

//超聲波模塊初始化
void chaoshengbo_init(void)
{
Trig = 0;
//TH2 = RCAP2H = 0;
//TL2 = RCAP2L = 0;
TH0 = TL0 = 0;
TR0 = 0; //關閉定時器2
ET0 = 1; //允許T2中斷
}
//超聲波模塊獲取距離
void GetDistance(void)
{
Trig = 1; //發送觸發信號
status = 1;   //status狀態默認位1
TH0 = 0;   
TL0 = 0;
TR0 = 1; //打開定時器2
while(TL0 < 42)  //產生超過10us的脈沖
  ;
status = 2;   //狀態設為2
Trig = 0;
TR0 = 0;
TH0 = 0;
TL0 = 0;
overflow_count = 0;
TR0 = 1;    //打開定時器2
while(Echo == 0)   //當無信號返回時
{
  if(status == 5)
  {
   status = 0;
   distance_cm = 0;
   break ; //失敗
  }
}
TR0 = 0; //清空計數
TH0 = 0;
TL0 = 0;
overflow_count = 0;
TR0 = 1;
while(Echo == 1) //有信號返回時,開始計算長度
{
  if(status == 5) //status為5時失敗
  {
   status = 0;
   distance_cm = 0;
   TR0 = 0;
   break ;
  }
}
dis_count = overflow_count * 65536 + TH0 * 256 + TL0;
TR0 = 0;
distance_cm = (unsigned int)( (long)(dis_count) * 34 / 10000);
status = 0 ; //準備下次發送
}
//定時器2中斷
void Timer0Int() interrupt 1
{
TF0 = 0;
overflow_count++;
TH0 = 0;
TL0 = 0;
if(overflow_count == 2)
{
  status = 5;  //超時
}
}


car_chaoshengbo.zip

1.21 KB, 下載次數: 51, 下載積分: 黑幣 -5

回復

使用道具 舉報

ID:415234 發表于 2019-10-1 22:16 | 顯示全部樓層
感謝分享
回復

使用道具 舉報

ID:617305 發表于 2019-10-2 07:58 | 顯示全部樓層
感謝分享,不知道實測效果如何?
回復

使用道具 舉報

ID:644311 發表于 2019-12-17 08:57 來自觸屏版 | 顯示全部樓層
有仿真圖嗎
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产精品久久久久久高潮 | 亚洲视频一区在线观看 | 91视频一区 | 99热播精品| 天天艹日日干 | 黄色免费看 | 国产精品久久久久久久白浊 | 国产精品美女久久久久aⅴ国产馆 | 国产视频一区二区 | av男人的天堂av | 成人激情视频 | 国产精品日韩欧美一区二区三区 | 精品成人免费一区二区在线播放 | 欧美国产精品一区二区三区 | 久久久久久免费精品一区二区三区 | 国产视频不卡一区 | 国产精品久久久久久久久图文区 | 伊人亚洲 | 午夜二区 | 91操操操| 国精产品一品二品国精在线观看 | 欧美国产大片 | 日韩国产免费观看 | 免费精品视频一区 | 在线免费观看视频你懂的 | 韩国av一区二区 | 久久久无码精品亚洲日韩按摩 | 亚洲综合中文字幕在线观看 | 九九热最新视频 | 91精品成人久久 | 亚洲精品乱码久久久久久久久 | 天堂在线91 | 99久久99热这里只有精品 | 羞羞视频网站免费看 | 爱爱无遮挡 | 欧美亚洲国产一区二区三区 | 精品亚洲一区二区三区四区五区 | 91人人在线 | 亚洲一区在线日韩在线深爱 | 久久成人精品视频 | 亚洲欧美日韩电影 |