- 1、本文档共14页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
首先建立一个名为modulecar.ino的主程序。
// modulecar.ino,玩转智能小车主程序
#include Servo.h //导入舵机库
#include NewPing.h //导入NwePing库
// 对照系统配线方案依次指定各I/O
const int ENA = 3 ; //左电机PWM
const int IN1 = 4 ; //左电机正
const int IN2 = 5 ; //左电机负
const int ENB = 6 ; //右电机PWM
const int IN3 = 7 ; //右电机正
const int IN4 = 8 ; //右电机负
const int trigger = 9 ; //定义超声波传感器发射脚为D9
const int echo = 10 ; //定义传感器接收脚为D10
const int max_read = 300; //设定传感器最大探测距离。
int no_good = 35; //*设定35cm警戒距离。
int read_ahead; //实际距离读数。
Servo sensorStation; //设定传感器平台。
NewPing sensor(trigger, echo, max_read); //设定传感器引脚和最大读数
//系统初始化
void setup()
{
Serial.begin(9600); //启用串行监视器可以给调试带来极大便利
sensorStation.attach(11); //把D11分配给舵机
pinMode(ENA, OUTPUT); //依次设定各I/O属性
pinMode(IN1, OUTPUT);
pinMode(IN2, OUTPUT);
pinMode(ENB, OUTPUT);
pinMode(IN3, OUTPUT);
pinMode(IN4, OUTPUT);
pinMode(trigger, OUTPUT);
pinMode(echo, INPUT);
sensorStation.write(90); //舵机复位至90°
delay(6000); //上电等待6s后进入主循环
}
//主程序
void loop()
{
read_ahead = readDistance(); //调用readDistance()函数读出前方距离
Serial.println(AHEAD:);
Serial.println(read_ahead); //串行监视器显示机器人前方距离
if (read_ahead no_good) //如果前方距离小于警戒值
{
fastStop(); //就令机器人紧急刹车
waTch(); //然后左右查看,分析得出最佳路线
goForward(); //*此处调用看似多余,但可以确保机器人高速运转下动作的连贯性
}
else goForward(); //否则就一直向前行驶
}
主程序用到了两个库,Servo库是IDE自带的,NwePing库是第三方库,需要下载安装。
接下来建立一个名为move.ino的标签。
//move.ino,机动模块。
//刹车
void fastStop()
{
Serial.println(STOP); //串行监视器显示机器人状态为STOP(停止)
//左电机急停(注:L298N和L293D均带有刹车功能,在使能成立的条件下,同时向两相写入高电平可令电机急停,详见芯片手册)
digitalWrite(ENA, HIGH);
digitalWrite(IN1, HIGH);
digitalWrite(IN2, HIGH);
//右电机急停
digitalWrite(ENB, HIGH);
digitalWrite(IN3, HIGH);
digitalWrite(IN4, HIGH);
}
//前进
void goForward()
{
Serial.println(FORWARD); //串行监视器显示机器人状态为FORWARD(前进)
//左电机逆时针旋转
analogWrite(ENA,106); //左电机PWM,可微调这个数值使小车左右两侧车轮转速相等,右电机同理
digitalWrite(IN1, LOW);
digitalWrite(IN2, HIG
您可能关注的文档
- 计算机网络基础第5章技术总结.ppt
- 机电一体化毕业论文2013级(王垒)教材.doc
- Excel进阶操作答题.doc
- 【重组优化卷】2016高考语文复习仿真卷一答题.doc
- LoadRunner性能测试答题.pptx
- EXCEL培训(基础篇)_20140601答题.pptx
- 【走向高考】2017年高考生物一轮复习第3单元细胞的能量供应和利用第2讲细胞呼吸课时作业新人教版必修1答题.doc
- 螺纹参数计算技术总结.ppt
- loadrunner性能脚本的常用设置答题.doc
- 中国石拱桥答题.pptx
- 安徽省合肥市2025届高三上学期第二次教学检测数学试卷(含解析).pdf
- 安徽省合肥市肥西县2024-2025学年高一上学期11月期中英语试题 (1)(含解析,含听力原文无音频).pdf
- 安徽省合肥市肥西县天一联考2024-2025学年高一上学期11月期中英语试题(含解析,含听力原文无音频).pdf
- 安徽省淮北市第一中学2024-2025学年高一上学期期中考试物理试卷(含答案).pdf
- 安徽省合肥市合肥新站高新技术产业开发区2024-2025学年七年级上学期11月期中道德与法治试题(含答案).pdf
- 2024-2025学年天津市南开中学高三(上)统练数学试卷(五)(含答案).pdf
- 2024学年第一学期八年级语文学科期中检测试题卷.pdf
- 恒定平面势流课件.pptx
- 2025届安徽省省十联考高三上学期第二次教学检测物理试卷(含解析).pdf
- 2025届浙考生物研学馆高三11月阶段测试模拟考试.pdf
文档评论(0)