在下载到开发板之前要选择好板和端口,具体参见:

ZYAR20A 亚克力2驱 蓝牙 298寻迹避障机器人 —— Arduino相关设置

代码

//  智能小车黑线循迹实验
//===============================================================
//#include <Servo.h>
int Left_motor_go=8;     //左电机前进(IN1)
int Left_motor_back=9;     //左电机后退(IN2)
int Right_motor_go=10;    // 右电机前进(IN3)
int Right_motor_back=11;    // 右电机后退(IN4)int key=A2;//定义按键 数字A2 接口
int beep=A3;//定义蜂鸣器 数字A3 接口const int SensorRight = 3;     //右循迹红外传感器(P3.2 OUT1)
const int SensorLeft = 4;      //左循迹红外传感器(P3.3 OUT2)int SL;    //左循迹红外传感器状态
int SR;    //右循迹红外传感器状态void setup()
{//初始化电机驱动IO为输出方式pinMode(Left_motor_go,OUTPUT); // PIN 8 (PWM)pinMode(Left_motor_back,OUTPUT); // PIN 9 (PWM)pinMode(Right_motor_go,OUTPUT);// PIN 10 (PWM) pinMode(Right_motor_back,OUTPUT);// PIN 11 (PWM)pinMode(key,INPUT);//定义按键接口为输入接口pinMode(beep,OUTPUT);pinMode(SensorRight, INPUT); //定义右循迹红外传感器为输入pinMode(SensorLeft, INPUT); //定义左循迹红外传感器为输入
}//=======================智能小车的基本动作=========================
//void run(int time)     // 前进
void run()
{digitalWrite(Right_motor_go,HIGH);  // 右电机前进digitalWrite(Right_motor_back,LOW);     analogWrite(Right_motor_go,60);//PWM比例0~255调速,左右轮差异略增减analogWrite(Right_motor_back,0);digitalWrite(Left_motor_go,LOW);  // 左电机前进digitalWrite(Left_motor_back,HIGH);analogWrite(Left_motor_go,0);//PWM比例0~255调速,左右轮差异略增减analogWrite(Left_motor_back,60);//delay(time * 100);   //执行时间,可以调整
}//void brake(int time)  //刹车,停车
void brake()
{digitalWrite(Right_motor_go,LOW);digitalWrite(Right_motor_back,LOW);digitalWrite(Left_motor_go,LOW);digitalWrite(Left_motor_back,LOW);//delay(time * 100);//执行时间,可以调整
}//void left(int time)         //左转(左轮不动,右轮前进)
void left()
{digitalWrite(Right_motor_go,HIGH); // 右电机前进digitalWrite(Right_motor_back,LOW);analogWrite(Right_motor_go,60); analogWrite(Right_motor_back,0);//PWM比例0~255调速digitalWrite(Left_motor_go,LOW);   //左轮后退digitalWrite(Left_motor_back,LOW);analogWrite(Left_motor_go,0); analogWrite(Left_motor_back,0);//PWM比例0~255调速//delay(time * 100); //执行时间,可以调整
}void spin_left()         //左转(左轮后退,右轮前进)
{digitalWrite(Right_motor_go,HIGH); // 右电机前进digitalWrite(Right_motor_back,LOW);analogWrite(Right_motor_go,60); analogWrite(Right_motor_back,0);//PWM比例0~255调速digitalWrite(Left_motor_go,HIGH);   //左轮后退digitalWrite(Left_motor_back,LOW);analogWrite(Left_motor_go,30); analogWrite(Left_motor_back,0);//PWM比例0~255调速//delay(time * 100);   //执行时间,可以调整
}//void right(int time)        //右转(右轮不动,左轮前进)
void right()
{digitalWrite(Right_motor_go,LOW);   //右电机后退digitalWrite(Right_motor_back,LOW);analogWrite(Right_motor_go,0); analogWrite(Right_motor_back,0);//PWM比例0~255调速digitalWrite(Left_motor_go,LOW);//左电机前进digitalWrite(Left_motor_back,HIGH);analogWrite(Left_motor_go,0); analogWrite(Left_motor_back,60);//PWM比例0~255调速//delay(time * 100);  //执行时间,可以调整
}void spin_right()        //右转(右轮后退,左轮前进)
{digitalWrite(Right_motor_go,LOW);   //右电机后退digitalWrite(Right_motor_back,HIGH);analogWrite(Right_motor_go,0); analogWrite(Right_motor_back,30);//PWM比例0~255调速digitalWrite(Left_motor_go,LOW);//左电机前进digitalWrite(Left_motor_back,HIGH);analogWrite(Left_motor_go,0); analogWrite(Left_motor_back,60);//PWM比例0~255调速//delay(time * 100);    //执行时间,可以调整
}//void back(int time)          //后退
void back(int time)
{digitalWrite(Right_motor_go,LOW);  //右轮后退digitalWrite(Right_motor_back,HIGH);analogWrite(Right_motor_go,0);analogWrite(Right_motor_back,60);//PWM比例0~255调速digitalWrite(Left_motor_go,HIGH);  //左轮后退digitalWrite(Left_motor_back,LOW);analogWrite(Left_motor_go,60);analogWrite(Left_motor_back,0);//PWM比例0~255调速delay(time * 100);     //执行时间,可以调整
}
//==========================================================void keysacn()//按键扫描
{int val;val=digitalRead(key);//读取数字7 口电平值赋给valwhile(!digitalRead(key))//当按键没被按下时,一直循环{val=digitalRead(key);//此句可省略,可让循环跑空}while(digitalRead(key))//当按键被按下时{delay(10);  //延时10msval=digitalRead(key);//读取数字7 口电平值赋给valif(val==HIGH)  //第二次判断按键是否被按下{digitalWrite(beep,HIGH);     //蜂鸣器响while(!digitalRead(key))  //判断按键是否被松开digitalWrite(beep,LOW);      //蜂鸣器停止}elsedigitalWrite(beep,LOW);//蜂鸣器停止}
}void loop()
{ keysacn();//调用按键扫描函数  while(1){//有信号为LOW  没有信号为HIGH   检测到黑线  输出高  检测到白色区域输出低SR = digitalRead(SensorRight);//有信号表明在白色区域,车子底板上L1亮;没信号表明压在黑线上,车子底板上L1灭SL = digitalRead(SensorLeft);//有信号表明在白色区域,车子底板上L2亮;没信号表明压在黑线上,车子底板上L2灭if (SL == LOW&&SR==LOW)run();   //调用前进函数else if (SL == HIGH & SR == LOW)// 左循迹红外传感器,检测到信号,车子向右偏离轨道,向左转 spin_left();else if (SR == HIGH & SL == LOW) // 右循迹红外传感器,检测到信号,车子向左偏离轨道,向右转  spin_right();else // 都是黑色, 停止brake();}
}

ZYAR20A 亚克力2驱 蓝牙 298寻迹避障机器人 —— 小车黑线循迹实验 四驱相关推荐

  1. ZYAR20A 亚克力2驱 蓝牙 298寻迹避障机器人 —— 小车黑线循迹、避障、遥控实验综合程序

    在下载到开发板之前要选择好板和端口,具体参见: ZYAR20A 亚克力2驱 蓝牙 298寻迹避障机器人 -- Arduino相关设置 注意 红外遥控程序注意将IRremote 复制到ARDuino安装 ...

  2. ZYAR20A 亚克力2驱 蓝牙 298寻迹避障机器人 —— 小车黑线循迹红外避障综合实验

    在下载到开发板之前要选择好板和端口,具体参见: ZYAR20A 亚克力2驱 蓝牙 298寻迹避障机器人 -- Arduino相关设置 注意 红外遥控程序注意将IRremote 复制到ARDuino安装 ...

  3. ZYAR20A 亚克力2驱 蓝牙 298寻迹避障机器人 —— 程序目录

    ZYAR20A 亚克力2驱 蓝牙 298寻迹避障机器人 -- 小车前进实验调试 ZYAR20A 亚克力2驱 蓝牙 298寻迹避障机器人 -- 小车前后左右综合实验 ZYAR20A 亚克力2驱 蓝牙 2 ...

  4. ZYAR20A 亚克力2驱 蓝牙 298寻迹避障机器人 —— 小车红外遥控实验

    在下载到开发板之前要选择好板和端口,具体参见: ZYAR20A 亚克力2驱 蓝牙 298寻迹避障机器人 -- Arduino相关设置 注意 红外遥控程序注意将IRremote 复制到ARDuino安装 ...

  5. ZYAR20A 亚克力2驱 蓝牙 298寻迹避障机器人 —— 小车超声波避障实验(有舵机)

    在下载到开发板之前要选择好板和端口,具体参见: ZYAR20A 亚克力2驱 蓝牙 298寻迹避障机器人 -- Arduino相关设置 代码 // 智能小车超声波避障实验(有舵机) // 程序中电脑打印 ...

  6. ZYAR20A 亚克力2驱 蓝牙 298寻迹避障机器人 —— 小车超声波避障实验(无舵机)

    在下载到开发板之前要选择好板和端口,具体参见: ZYAR20A 亚克力2驱 蓝牙 298寻迹避障机器人 -- Arduino相关设置 代码 // 智能小车超声波避障实验(无舵机) //======== ...

  7. ZYAR20A 亚克力2驱 蓝牙 298寻迹避障机器人 —— 小车红外避障实验(带后退掉头避障)

    在下载到开发板之前要选择好板和端口,具体参见: ZYAR20A 亚克力2驱 蓝牙 298寻迹避障机器人 -- Arduino相关设置 代码 // 智能小车红外避障实验1(基础避障) //======= ...

  8. ZYAR20A 亚克力2驱 蓝牙 298寻迹避障机器人 —— 小车按键启动和蜂鸣器报警

    在下载到开发板之前要选择好板和端口,具体参见: ZYAR20A 亚克力2驱 蓝牙 298寻迹避障机器人 -- Arduino相关设置 代码 // 智能小车按键启动和蜂鸣器报警 //========== ...

  9. ZYAR20A 亚克力2驱 蓝牙 298寻迹避障机器人 —— 小车指定花式动作

    在下载到开发板之前要选择好板和端口,具体参见: ZYAR20A 亚克力2驱 蓝牙 298寻迹避障机器人 -- Arduino相关设置 代码 // 智能小车指定花式动作 //============== ...

最新文章

  1. python列表迭代器_关于Python中迭代器的作用
  2. 《研磨设计模式》chap16 模板方法模式
  3. defer与async的认识
  4. Spring初学(一)
  5. access control java_Java Access Controller
  6. python简明教程3.0_Python3简明教程四
  7. linux抓肉鸡入侵详细教程,一台linux肉鸡的简单手工入侵检测过程
  8. 五种压缩软件(WinRAR、7Z、好压、快压和360压缩)之比拼
  9. ubuntu tty联网
  10. JinKo 多路温度测试仪使用说明
  11. 计算机的6种典型应用领域,人工智能已经广泛应用到许多领域,其典型的应用包括这些...
  12. Li feifei How we're teaching computers to understand pictures
  13. 汇编总结:无符号除法,有符号除法,取余,无符号乘法,有符号乘法指令
  14. 怎么把pdf转换成excel
  15. 大学物理复习笔记——量子物理
  16. 爬虫大作业_爬取三星Galaxy_S9论坛
  17. 前端性能优化 七个方面
  18. 如何下载Ubuntu镜像
  19. 【Python 文件粉碎工具】——用python制作一款可以粉碎文件的软件工具,用文件恢复工具都找不回来,非常可靠
  20. SpringCloud H版之Eureka学习

热门文章

  1. VS 2013 Preview 自定义 SharePoint 2013 列表 之 两个Bug
  2. PowerPoint Storyboarding:Visual Studio 2012 RC带给开发者的秘密杀器
  3. UVA 494(Kindergarten Counting Game)
  4. for循环执行次数_VB考试笔记之循环控制结构部分
  5. linux怎么释放内存占用,如何将linux占用的空间释放
  6. android如何监听按钮,Android – 两个onClick监听器和一个按钮
  7. Java黑皮书课后题第3章:*3.17(游戏:剪刀、石头、布)编写可以玩流行的剪刀-石头-布游戏的程序
  8. whiel oracle,Oracle中的for和while循环
  9. C# 弹出确定、取消窗口
  10. css 两边宽度固定中间自适应宽度