全国青少年机器人技术等级考试电机示例程序详解,四级实操必考内容之一!.docx

全国青少年机器人技术等级考试电机示例程序详解,四级实操必考内容之一!.docx

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
四级等级考试开考以来,两次实操考试都是考察的小车的搭建和程序 驱动小车的任务,所以用代码编程来控制电机已经成为四级等级考试 的必考内容之一。在这里简单的通过示例程序来讲解一下如何用代码 编程来控制电机的正传、反转、停止。供各位老师和学员参考。 在三级考试里只考察图形化模块编程驱动电机, 但是四级中是要求用代码编程, 对于代码编程比较薄弱的新手来说是一个挑战。但是掌握了方法进行相应的练 习还是完全可以掌握的,这部分只是并没有那么深奥。 在这里用的示例套件是芝麻豆主控,我们知道芝麻豆的主控在图形化编程环境 中,只有D1、D2、D3三个端口可以接直流电机并驱动电机进行工作。对应的 应该是输出模块,注意电机是可以调速的,不是简单的开关数字量,所以在这 里这三个端口对应的就是模拟输出。之前的帖子里我讲过 芝麻豆主控的D1、 D2、D3端口对应的arduino UNO的管脚分别是: D1 ―― 5、6 (其中5是辅助管脚,6是主管脚) D2 ―― 9、10 (其中9是辅助管脚,10是主管脚) D3 ―― 3、11 (其中3是辅助管脚,11是主管脚) 对于arduino UNO主控板3、5、6、9、10、11这些管脚实际上就是模拟输出 管脚,也就是具有PWM (脉冲宽度调制)功能的引脚,这些引脚可以通过脉冲 宽度调制,来调整占空比,从而实现模拟输出,实现电机调速功能,模拟输出 的取值范围是0――255之间。0代表管脚完全关闭,相当于输出电压为0,255 表示管脚完全打开,相当于输出电压5V。很明显255的时候电机速度应该是最 快的。0的时候电机是停止的。实际情况由于电机启动需要较大的电流,一般 情况下,模拟输出大约在0到120之间的时候,很多电机是启动不起来的,所 以建议要想让电机转动,模拟输出的值不能太小。最好大于 120。 为什么要用两个模拟引脚去控制一个电机呢?这里是为了实现程序可以控制电 机正反转的功能。比如 D1端口( 5、6)上连接直流电机模块驱动电机。当 5 引脚输出模拟量255、6引脚输出0的时候,电机是向一个方向最大速度转动, 反之,如5引脚输出0,6引脚输出255,那就是以最大速度反转。 以上介绍的是芝麻豆主控接电机的原理,接下来看代码示例程序。想必应该能 够看懂了,如果看不懂,请继续阅读我上面的解释。示例程序在本文后面的附 件中可以下载,大家可以在示例的基础上进行修改,来体验用代码控制电机的 乐趣、希望本文对大家有所帮助。 /* 本程序为D1端口的电机正传反转停止示例程序, 本程序只启用了 D1、D2和D 3端口 对于芝麻豆主控只有D1、D2和D3端口接电机模块时才可以调节电机速度 如其他数字端口接电机将不能实现调速。 */ int D1=6;〃 端口 D1 主 IO 引脚 int D1f=5;〃 端口 D1辅助IO引脚 int D2=10;〃 端口 D2 主 IO 引脚 int D2f=9;〃 端口 D2辅助IO引脚 int D3=11;〃 端口 D3主 IO 引脚 int D3f=3;〃 端口 D3辅助IO引脚 /* int D4=13;〃 端口 D4 主 IO 引脚 int D4f=12;〃 端口 D4辅助 IO 引脚 int D5=2;〃 端口 D5 主 IO 引脚 int D5f=8;〃 端口 D5辅助IO引脚 int D6=1;〃 端口 D6 主 IO 引脚 int D6f=0;〃 端口 D6辅助IO引脚 int D7=4;〃 端口 D7 主 IO 引脚 int D7f=7;〃 端口 D7辅助IO引脚 int D8=A5;// 端口 D8 主 IO 引脚 int D8f=A4;〃 端口 D8 辅助 IO 引脚 int ZMDA仁 int ZMDA仁A0;〃 int ZMDA2=A1;// int ZMDA3=A2;// int ZMDA4=A3;// 端口 A1IO引脚 端口 A2IO引脚 端口 A3IO引脚 端口 A4IO引脚 */ D1、D2、// D1、D2、 void setup() { pinMode(D1, OUTPUT);// 设置D1端口主管脚模式为输出 pinMode(D1f, OUTPUT);// 设置D1端口辅助管脚模式为输出 digitalWrite(D1, 0); digitalWrite(D1f, 0); } void loop() { digitalWrite(D1f, 0); 端口电机全速正传端口电机全速反转 端口电机全速正传 端口电机全速反转 digitalWrite(D1, 0); an alogWrite(D1f, 255);//D1 delay(1000); digitalWrite(D1, 0); digitalWrite(D1f, 0);//D1 delay(

文档评论(0)

136****3783 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档