ZYAR20A 亚克力2驱 蓝牙 298寻迹避障机器人 —— 小车黑线循迹实验 四驱
在下载到开发板之前要选择好板和端口,具体参见:
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寻迹避障机器人 —— 小车黑线循迹实验 四驱相关推荐
- ZYAR20A 亚克力2驱 蓝牙 298寻迹避障机器人 —— 小车黑线循迹、避障、遥控实验综合程序
在下载到开发板之前要选择好板和端口,具体参见: ZYAR20A 亚克力2驱 蓝牙 298寻迹避障机器人 -- Arduino相关设置 注意 红外遥控程序注意将IRremote 复制到ARDuino安装 ...
- ZYAR20A 亚克力2驱 蓝牙 298寻迹避障机器人 —— 小车黑线循迹红外避障综合实验
在下载到开发板之前要选择好板和端口,具体参见: ZYAR20A 亚克力2驱 蓝牙 298寻迹避障机器人 -- Arduino相关设置 注意 红外遥控程序注意将IRremote 复制到ARDuino安装 ...
- ZYAR20A 亚克力2驱 蓝牙 298寻迹避障机器人 —— 程序目录
ZYAR20A 亚克力2驱 蓝牙 298寻迹避障机器人 -- 小车前进实验调试 ZYAR20A 亚克力2驱 蓝牙 298寻迹避障机器人 -- 小车前后左右综合实验 ZYAR20A 亚克力2驱 蓝牙 2 ...
- ZYAR20A 亚克力2驱 蓝牙 298寻迹避障机器人 —— 小车红外遥控实验
在下载到开发板之前要选择好板和端口,具体参见: ZYAR20A 亚克力2驱 蓝牙 298寻迹避障机器人 -- Arduino相关设置 注意 红外遥控程序注意将IRremote 复制到ARDuino安装 ...
- ZYAR20A 亚克力2驱 蓝牙 298寻迹避障机器人 —— 小车超声波避障实验(有舵机)
在下载到开发板之前要选择好板和端口,具体参见: ZYAR20A 亚克力2驱 蓝牙 298寻迹避障机器人 -- Arduino相关设置 代码 // 智能小车超声波避障实验(有舵机) // 程序中电脑打印 ...
- ZYAR20A 亚克力2驱 蓝牙 298寻迹避障机器人 —— 小车超声波避障实验(无舵机)
在下载到开发板之前要选择好板和端口,具体参见: ZYAR20A 亚克力2驱 蓝牙 298寻迹避障机器人 -- Arduino相关设置 代码 // 智能小车超声波避障实验(无舵机) //======== ...
- ZYAR20A 亚克力2驱 蓝牙 298寻迹避障机器人 —— 小车红外避障实验(带后退掉头避障)
在下载到开发板之前要选择好板和端口,具体参见: ZYAR20A 亚克力2驱 蓝牙 298寻迹避障机器人 -- Arduino相关设置 代码 // 智能小车红外避障实验1(基础避障) //======= ...
- ZYAR20A 亚克力2驱 蓝牙 298寻迹避障机器人 —— 小车按键启动和蜂鸣器报警
在下载到开发板之前要选择好板和端口,具体参见: ZYAR20A 亚克力2驱 蓝牙 298寻迹避障机器人 -- Arduino相关设置 代码 // 智能小车按键启动和蜂鸣器报警 //========== ...
- ZYAR20A 亚克力2驱 蓝牙 298寻迹避障机器人 —— 小车指定花式动作
在下载到开发板之前要选择好板和端口,具体参见: ZYAR20A 亚克力2驱 蓝牙 298寻迹避障机器人 -- Arduino相关设置 代码 // 智能小车指定花式动作 //============== ...
最新文章
- python列表迭代器_关于Python中迭代器的作用
- 《研磨设计模式》chap16 模板方法模式
- defer与async的认识
- Spring初学(一)
- access control java_Java Access Controller
- python简明教程3.0_Python3简明教程四
- linux抓肉鸡入侵详细教程,一台linux肉鸡的简单手工入侵检测过程
- 五种压缩软件(WinRAR、7Z、好压、快压和360压缩)之比拼
- ubuntu tty联网
- JinKo 多路温度测试仪使用说明
- 计算机的6种典型应用领域,人工智能已经广泛应用到许多领域,其典型的应用包括这些...
- Li feifei How we're teaching computers to understand pictures
- 汇编总结:无符号除法,有符号除法,取余,无符号乘法,有符号乘法指令
- 怎么把pdf转换成excel
- 大学物理复习笔记——量子物理
- 爬虫大作业_爬取三星Galaxy_S9论坛
- 前端性能优化 七个方面
- 如何下载Ubuntu镜像
- 【Python 文件粉碎工具】——用python制作一款可以粉碎文件的软件工具,用文件恢复工具都找不回来,非常可靠
- SpringCloud H版之Eureka学习
热门文章
- VS 2013 Preview 自定义 SharePoint 2013 列表 之 两个Bug
- PowerPoint Storyboarding:Visual Studio 2012 RC带给开发者的秘密杀器
- UVA 494(Kindergarten Counting Game)
- for循环执行次数_VB考试笔记之循环控制结构部分
- linux怎么释放内存占用,如何将linux占用的空间释放
- android如何监听按钮,Android – 两个onClick监听器和一个按钮
- Java黑皮书课后题第3章:*3.17(游戏:剪刀、石头、布)编写可以玩流行的剪刀-石头-布游戏的程序
- whiel oracle,Oracle中的for和while循环
- C# 弹出确定、取消窗口
- css 两边宽度固定中间自适应宽度