找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 7839|回复: 6
打印 上一主题 下一主题
收起左侧

循迹避障蓝牙小车电路图源代码全部资源

[复制链接]
跳转到指定楼层
楼主
ID:150290 发表于 2016-11-26 11:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
/*****************ZYJJB09-C智能循迹、避障机器人*****************
//=====================================================================
                      ZYJJB09-C 单独红外避障演示程序                     
  本程序通过前方的红外探头来检测前面的的信号,当前方有障碍物时
,红外接收到信号,与黑色接受管检测的红外相应端口低电平,我们就可以根据这和
  判断条件来进行

  声明:由于红外接收头对光线要求较高,所以对于黑白两种颜色选择对比度  
高为好,而且因为道路建立不同,需要根据实际的需要来改写相应的延迟时间
以适应角度的最有较转弯,道路应根据红外接收头的两个宽度来制定,如果道
路较小,或较大者,请调整以适应小车的正确运行.                        
  备注:这里的程序以走白线为主,当用户需要选择走黑线时,请根据例程作出
实际修改。并改写相应的延迟时间函数,以进行转弯角度在的最优化调整.   

*  平台:ZYJJB09-C智能循迹、避障机器人 + Keil U4 + STC89C52
*  程序名称:ZYJJB09-C 单独红外避障演示程序
*  公司:湖南智宇科教设备有限公司      
*  编写:智宇公司研发一部
*  日期:2015-1-15
*  交流:智能车QQ:1018973181
*  晶振:11.0592MHZ
*  售后技术说明:免费开源,不支持客户自己修改程序分析与改正,可以提供我公司程序说明
*  免费结缘:5星好评赠送18个资料包,追加评价后再加送20G资料,网上网盘下载
*  视频教程:本小车配套学习C语言详细视频教程,资料统一网盘下载
******************************************************************/ //
//  程序备注: 此程序仅为表现本机功能而演示用,当用作实际工程时请慎用.   //
//=====================================================================//
#include <REGX52.H> //包含51单片机相关的头文件


sbit LeftIR=P1^1;                         //定义前方左侧红外探头端口
sbit RightIR=P1^0;                        //定义前方右侧红外探头端口

sbit bizhangLED=P2^0;                        //定义前方右侧红外探头端口


sbit M1A=P0^0;                            //定义左侧电机驱动A端
sbit M1B=P0^1;                            //定义左侧电机驱动B端

sbit M2A=P0^2;                            //定义右侧电机驱动A端
sbit M2B=P0^3;                            //定义右侧电机驱动B端



void tingzhi()
{
   M1A=0;                                   //将M1电机A端初始化为0
   M1B=0;                                   //将M1电机B端初始化为0
   M2A=0;                                   //将M2电机A端初始化为0
   M2B=0;

}

void qianjin()
{
   M1A=1;                                   
   M1B=0;                                   
   M2A=1;                                   
   M2B=0;
}

void houtui()
{
   M1A=0;                                   
   M1B=1;                                   
   M2A=0;                                   
   M2B=1;
}

void zuozhuan()
{


   M1A=1;                                   
   M1B=0;                                   
   M2A=0;                                   
   M2B=1;
}

void youzhuan()
{
   M1A=0;                                   
   M1B=1;                                   
   M2A=1;                                   
   M2B=0;
}

void delay_nus(unsigned int i)  //延时:i>=12 ,i的最小延时单12 us
{
  i=i/10;
  while(--i);
}   
void delay_nms(unsigned int n)  //延时n ms
{
  n=n+1;
  while(--n)  
  delay_nus(900);         //延时 1ms,同时进行补偿

}  


void ControlCar(unsigned char ConType)    //定义电机控制子程序
{

  tingzhi();
switch(ConType)                          //判断用户设定电机形式
{
  case 1:  //前进                         //判断用户是否选择形式1
  {
    qianjin();
    break;
  }
  case 2: //后退                          //判断用户是否选择形式2
  {
    houtui();                                //M2电机反转
    break;
  }
  case 3: //左转                          //判断用户是否选择形式3
  {
    zuozhuan();                               //M2电机正转
        break;
  }
  case 4: //右转                          //判断用户是否选择形式4
  {
    youzhuan();                                //M1电机正转
                                          //M2电机反转
        break;
  }
  case 8: //停止                          //判断用户是否选择形式8
  {
    tingzhi();
        break;                                //退出当前选择
  }
}
}
void main()                               //主程序入口
{
  bit RunFlag=0;                          //定义小车运行标志位
  //RunShow=0;                              //初始化显示状态

  ControlCar(8);                          //初始化小车运行状态
  while(1)                                //程序主循环
  {
   Start:
   bizhangLED = 0;

   if( LeftIR == 0 && RightIR == 1 )                          //如果前面避障传感器检测到障碍物
   {
      ControlCar(8);                       //停止
      delay_nms (300);                                           //停止300MS   防止电机反相电压冲击  导致系统复位
          ControlCar(4);                                           //后退  
           delay_nms (260);        
          goto NextRun;
   }
     if( LeftIR == 1 && RightIR == 0 )                          //如果前面避障传感器检测到障碍物
   {
      ControlCar(8);                       //停止
      delay_nms (300);                                           //停止300MS   防止电机反相电压冲击  导致系统复位
          ControlCar(3);                                           //后退  
          delay_nms (260);        
          goto NextRun;
   }

   if( LeftIR == 0 && RightIR == 0 )                            //如果前面避障传感器检测到障碍物
   {
      ControlCar(8);                       //停止
      delay_nms (300);                                           //停止300MS   防止电机反相电压冲击  导致系统复位
          ControlCar(2);                                           //后退  
          delay_nms (1000);                                           //后退1500MS  
          ControlCar(3);                                           //
          delay_nms (1800);        
          goto NextRun;
   }

   if( LeftIR == 1 && RightIR == 1 )  
   {
      ControlCar(1);                      //右侧没有信号时,开始向左转一定的角度
      delay_nms (10);
          goto NextRun;
   }


   goto Start;
   NextRun:
   ControlCar(1);
  }
}

//备注:此例程仅为参考程序,请根据自己的道路进行最优化调整。

9.ZYJJB09-C智能小车配套例程代码.7z

32.21 KB, 下载次数: 105, 下载积分: 黑币 -5

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏4 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:250717 发表于 2017-11-22 22:58 | 只看该作者
能分享全部资料不。。。(☆_☆)。。。#^_^#
回复

使用道具 举报

板凳
ID:250717 发表于 2017-11-22 23:01 | 只看该作者
能分享全部的资料不
回复

使用道具 举报

地板
ID:311215 发表于 2019-1-7 14:24 | 只看该作者
兄弟,求一下电路图
回复

使用道具 举报

5#
ID:519473 发表于 2019-4-28 13:08 来自手机 | 只看该作者
求资源,大哥
回复

使用道具 举报

6#
ID:625943 发表于 2019-10-21 18:38 来自手机 | 只看该作者
非常感谢分享!
回复

使用道具 举报

7#
ID:641629 发表于 2020-10-8 10:04 | 只看该作者
问题是木有原理图呀
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表