注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

海天科学工作室

海天相接的蔚蓝下,是不灭的希望

 
 
 

日志

 
 

跟老林学机器人之——"Arduino UNO的世界"第3课  

2012-05-08 02:16:16|  分类: arduino与机器人 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

        话说前面的两节课,学生学了好长时间用arduino UNO控制小灯,红绿灯,然后说,“老师,老是叫我们整这些个小灯,这不像学机器人啊!”我说,“你没看少林和尚天天在练扫地吗?也没练武啊,可最后不成了武林高手吗?知道为什么吗?从简单开始!”不过,今天我们要来学用arduino UNO来驱动马达了。

    首先来认识一下马达,马达又叫电机。可以分为很多种类,常见的有直流电机、步进电机、舵机。最简单的就是直流电机了,接上电源就转动,改变接电源的极性,电机就向相反的方向旋转。直流减速电机(齿轮减速电机)是在普通直流电机的基础上,加上配套齿轮减速箱。

    电机有几个参数:

     1、工作电压:驱动电机推荐使用的电压,不能太高,太高电机会烧坏;

     2、工作电流:电机工作电流越大,输出功率越大;

     3、转速和转矩:齿轮减速箱可以提供较低的转速和较大的力矩。

 

2012年05月08日 - 啊呀老林 - 海天科学工作室

 

2012年05月08日 - 啊呀老林 - 海天科学工作室

 

2012年05月08日 - 啊呀老林 - 海天科学工作室

 

  

  

         接下来认识一下马达驱动板。这里,我们使用一款集成电路L298N的马达驱动板来进行实验。请注意:arduino UNO不能提供大电流输出,前面的LED发光管属于小电流元件,所以可以直接接arduino UNO的数字输出口,而电机属于大电流设备,无法用Arduino引脚直接控制。所以要通过马达驱动板来控制电机的转动。下图为实验用到的马达驱动板,上面各主要元件和引脚的作用有作了简单的说明。

2012年05月08日 - 啊呀老林 - 海天科学工作室

 

 下图为arduino UNO和马达驱动板和直流电机的连接图,分为几个部分:

 1、电源供电部分,本电路连接图可以只用7V直流电源,除供给马达驱动板的电机电源外,还可以利用“电源切换开关”来控制,通过马达驱动板上的降压电路提供5V电源给arduino UNO和马达驱动板的逻辑电源使用。(arduino UNO和马达驱动板的逻辑电源也可以另外使用5V直流电源供电。)

          2、信号控制线:从arduino UNO的数字口选两个(如89)连接到马达控制板的IN1IN2

          3、电机连接线,用连接线把OUT1OUT2连接至直流电机的两个接线头。

        4注意:在编程的时候,7V直流电源不能通电,只有在程序下载完毕后,才能加上7V直流电源

 

 

2012年05月08日 - 啊呀老林 - 海天科学工作室

 

连接好电路后,可以开始编写程序来控制电机的转动了。参看如下表,以M1马达为例,在IN1和IN2输出不同信号,可以实现电机的正转和反转。

 

 

 2012年05月08日 - 啊呀老林 - 海天科学工作室

 

 (一)先编写一个简单的程序,让马达转动起来,如下图:

 程序说明:

1、13脚输出高电平是让13脚所连接的LED亮起来,以确实信号有输出。

2、本程序中IN1和IN2所连接的数字端口是8、12脚。

3、以此为参照,可以编程序让马达正转5秒,再反转5秒,

2012年05月08日 - 啊呀老林 - 海天科学工作室

(二)接下来编写一个复杂一点的程序:

这是一个调速程序,在一个时间周期内,让马达转动20毫秒,然后停止50毫秒,反复运行,实现让马达减速的功能。这也就是所谓的PWM方式。PWM的内容材料是源自网上的文章;

2012年05月08日 - 啊呀老林 - 海天科学工作室

 

  (三)下面这个程序分为两个部分:

第一部分是让马达正常转动,第二部分是让马达减速转动,其中变量t是一个计时器,每次运行循环里面的程序加1,到了50结束循环。实际程序中,可以让条件中的"t<50"增大一些,以增加减速运转的时间,比如改为“t<200"。

2012年05月08日 - 啊呀老林 - 海天科学工作室

 

(四)这个程序再复杂一些,用到双重循环,用到了两个变量t1和t2,t1用来控制8、12口的信号维持时间,从0开始慢慢增加,从而使马达的转动速度越来越快。t2变量用来控制马达在t1调整的速度下转动的时间,每转一次加1,当到100的时候内层循环结束,跳到外层。变量t1值改变,也即改变马达的速度,然后再运转一个t2时间段就结束。

2012年05月08日 - 啊呀老林 - 海天科学工作室

 

后面这两个程序用上了循环模块,第四个程序用上了双重循环。在本课的学习中,只用到一个马达,两个马达的程序编写方法是一样的。下图为一马达转动视频:

 

 

 

这次课的内容就比较多了,实际在在练习的过程中,要花三到四次课的时间才能把这些内容消化。并且可以试着把所有的电路板连起来,做成一个小车,然后控制小车的前进和后退等运动方式。

  评论这张
 
阅读(5917)| 评论(4)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017