- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
                        查看更多
                        
                    
                首先建立一个名为modulecai.ino的主程序。
// modulecar.iiio,玩转智能小车主程序
#include Senro.h 〃导入舵机库
#include NewPmg.h 〃导入 NwePmg 库
//对照系统配线方案依次指定各I/O
const mt ENA =3 ;//左电机 PWM
const mt INI = 4 ; 〃左电机正
const mt IN2 = 5 ; 〃左电机负
const mt ENB = 6;//右电机 PWM
const mt IN3 = 7 ; 〃右电机正
const mt IN4 = 8 ; 〃右电机负
const mt trigger = 9 ; 〃定义超声波传感器发射脚为D9
const int echo = 10 ; //定义传感器接收脚为D10
const mt max_read = 300; //设定传感器最大探测距离。
int no_good = 35; //*设定 35cm 警戒距离。
int read_aliead; 〃实际距离读数。
Seivo sensorStation; //设定传感器平台。
NewPmg sensor(tngger, echo, max_read); 〃设定传感器引脚和最人读数 〃系统初始化
void setup()
{
Senal.begin(9600); 〃启用串行监视器可以给调试带来极人便利
sensorStation.attach(ll); //把 D11 分配给舵机
pmMode(ENA, OUTPUT); //依次设定各 I O 属性
puiMode(INl, OUTPUT);
puiMode(IN2, OUTPUT);
pmMode(ENE, OUTPUT);
puiMode(IN3, OUTPUT);
puiMode(IN4, OUTPUT);
puiMode(Uigger, OUTPUT);
pinMode(echo, INPUT);
sensorStation.write(90); //舵机复位至 90 1
delay(6000); 〃上电等待6s后进入主循环
}
〃主程序
void loopQ
{
read_aliead = readDistanceQ; 〃调用 readDistanceQ函数读岀前方距离
Senal.printlii(HAHEAD:n);
Seiial.pnntlii(read_ahead); 〃串行监视器显示机器人前方距离
if (read_aliead  no_good) //如果前方距离小于警戒值
{
fastStopQ; 〃就令机器人紧急刹车
waTchQ; //然后左右查看,分析得出最佳路线
goFonvardQ;//*此处调用看似多余,但可以确保机器人高速运转下动作的连贯性
}
else goFonvardQ; 〃否则就一直向前行驶
}
主程序用到了两个库,Sewo库是IDE自带的,NwePing库是第三方库,需要卞载安装。
接下来建立一个名为move .mo的标签。
//move.iiio,机动模块。
〃刹车
void fastStopQ
{
Senal.piintlii(nSTOPn); //串行监视器显示机器人状态为STOP (停止)
〃左电机急停(注:L298N和L293D均带有刹车功能,在使能成立的条件下,同时向两 相写入高电平可令电机急停,详见芯片手册)
digitalWnte(ENA, HIGH);
digitalWnte(INh HIGH);
digitalWnte(IN2, HIGH);
〃右电机急停
digitalWnte(ENB, HIGH);
digitalWnte(IN3, HIGH);
digitalWnte(IN4, HIGH);
}
〃前进
void goFoiwaidQ
{
Senal.pnntlii(HFOR\\ARDH); 〃串行监视器显示机器人状态为FORWARD (前进)
〃左电机逆时针旋转
analogWnte(ENA,106); //^电机PWM,可微调这个数值使小车左右两侧车轮转速相等,右 电机同理
digitalWnte(INl, LOW);
digitalWnte(IN2, HIGH);
〃右电机顺时针旋转
analog Wiite(ENB,l 18);
digitalWnte(IN3, HIGH);
digitalWnte(IN4, LOW);
}
〃原地左转
void mniLeftQ
{
Senal.pnntlii(HLEFTH); 〃串行监视器显示机器人状态为LEFT (向左转)
〃左电机正转
analogWrite(ENA, 106);
digitalWnte(INh HIGH);
digitalWnte(IN2, LO
                您可能关注的文档
最近下载
- HG/T 2431-2018- 水处理剂_阻垢缓蚀剂Ⅲ.pdf VIP
- 上海市青浦XX中学高三下学期期中考试历史试卷.docx VIP
- 关于进一步加强“安全生产基础台账”管理工作的通知.pdf VIP
- 2024-2025学年湖南机电职业技术学院单招《职业适应性测试》复习提分资料(培优)附答案详解.docx VIP
- 2025下半年浙江绍兴市公安局警务辅助人员招聘55人笔试备考题库及答案解析.docx VIP
- 山宇SY8000变频器说明书用户手册.pdf
- 贝加莱(B&R)PLC_CF卡烧写说明PVI.docx VIP
- 电子信息工程应届生工作简历模板PPT.pptx VIP
- 上海市进才中学2024-2025学年高三上英语9月月考(含答案).docx VIP
- 年处理2000吨桑叶提取车间布置设计常晓利.docx VIP
 原创力文档
原创力文档 
                        

文档评论(0)