您现在的位置: 晨光科技 >> 文章 >> 技术 >> 单片机 >> 正文  
  Arduino专门舵机函数和通信函数的应用           
Arduino专门舵机函数和通信函数的应用
[ 作者:佚名    转贴自:http://www.eefocus.com/zhang700309/blog/11-11/233950_edf03.html    点击数:45    更新时间:2018/5/10    文章录入:LA ]
[注:本站登载的某些文章并不代表本站支持或反对其观点或肯定其真实性]
下面是我做实验的照片:

舵机,又称伺服马达,是一种具有闭环控制系统的机电结构。其工作原理是由控制器发出PWM(脉冲宽度调制)信号给舵机,这个PWM信号的周期固定为20ms,0.5~2.5ms 的正脉冲宽度,对应的舵机转动角度为0~180度。

      这个实验是Labview做一个舵机控制面板,它向Arduino控制器发“角度”,再通过Arduino控制板上层叠的传感器扩展板,驱动舵机按Labview发出的“角度信息”转过规定的角度。

本实验的Arduino设备源于DFrobot官方旗舰店: http://dfrobot.taobao.com/

   传感器扩展板如图:

 


    由于舵机电流较大,所以要在传感器扩展板的Servo Power接线柱接入5V 1A的电源,不能仅靠压在它身下的Arduino控制器的USB供电,还有一点要注意,要把这个接线柱旁边的Servo Power Switch的跳线短路帽拔掉!这样接入的5V 1A的电源才能加在舵机上,如果电源的功率小,可能舵机无法驱动,或者舵机在运行时,发生抖动。

 

看到第一张图中的电路板了吗?是两块电路板层叠在一起。还有电位器,电位器转动,舵机也跟着转,这个Arduino程序如何编,我就不说了,我讲Labview如何让舵机转!

 

这篇文章的题目是:“Arduino专门舵机函数和通信函数的应用”,主要是强调Arduino通过一些这样的函数,方便编程。


    Arduino程序的编程目的是:通过串口通信读函数Serial.read( );读取上位机Labview软件下传的角度,再把这个角度值通过舵机函数myservo.write(角度),传给与舵机相连的数字接口,舵机就精确转动个角度。简单吧,所以Arduino控制器为啥能在互动媒体和机器人爱好者中流行起来,我总结的一点原因就是可以“简单明了”地编程AVR单片机。


    下面的程序我还多了一步,就是通过串口通信读函数Serial.print( ),又把角度值回传给了Labview,想试试用Arduino语言进行上下位机的互传,是否方便,体会是蛮方便的。说句笑话,我给AVR单片机编程,实际上到现在还没掌握AVR的硬件结构那,太忙!

 // labview发角度命令,驱动舵机转动
#include 《Servo.h> //舵机头文件
Servo myservo;  // 设置舵机名
int val;    // 舵机角度变量
void setup()
{
  myservo.attach(9);  // 连接舵机到数字接口9
  Serial.begin(9600);//设置通信波特率9600
}
 
void loop()
{
  if (Serial.available() > 0)


//如果串口接收缓冲区中接收的字节数大于0
  {
    val = Serial.read();//接受Labview下传的舵机角度值
    myservo.write(val);  // 根据角度值,驱动舵机
    Serial.print(val,BYTE);//把接收到的角度值以无符号字节形式
                             //再发回Labview
    delay(15);    //等待舵机,到达转动位置
  }
}


Serial.print(val,BYTE); 这个指令,我分析一下,含义是角度值以无符号字节的形式,上传给Labview,0~180度这样的角度值需要几个字节来表达,一个字节就行,因为一个无符号字节所能表达的数是0~255,看来我的计数机基础知识还掌握得不错!


所以Labview的“Visa读取”函数每次读取的字节总数为1,一个字节就包含了Arduino控制器上传的角度信息,当然你看看下面的Labview 程序的“Visa写入”函数前面的“字节数组至字符串转换”函数,实际上字节数组也只包含一个字节,这个字节就是Labview下传给Arduino控制器的舵机驱动命令,即角度值。



看懂了Labview的框图程序,框图程序是前面板的输入、输出控件的逻辑,用户操作的平台是前面板,哈哈,运行一下程序吧,用鼠标转动Labview前面板的“旋钮”控件,看我桌子上的小舵机,随之起舞!

 Labview请下载:舵机.zip

  • 上一篇文章: 基于Arduino和labview的直流电机控制器的实验

  • 下一篇文章: 一盏能看天色自动开关的路灯
  •    
    [注:标题搜索比内容搜索快]
    发表评论】【告诉好友】【打印此文】【关闭窗口
     最新5篇热点文章
  • 轨道钢承重计算公式及应用[109]

  • 【选型】如何为变频器选取阻值…[86]

  • AIS2023参展厂商名录[346]

  • AGV综合选型[170]

  • APIE 2023第4届亚太国际智能装…[138]

  •  
     最新5篇推荐文章
  • 外媒:正在唤醒中国的习近平[305]

  • 中国反伪科学运动背后的CIA黑手…[494]

  • [转载]袁隆平真言:中国最大的…[668]

  • 台专家:当年我们造IDF时 大陆…[572]

  • 旅日华人:中国严重误判日本民…[577]

  •  
     相 关 文 章
  • Arduino和STM32性能对比究竟谁…[26]

  • Labview及Proteus软件环境下单…[38]

  • 基于labview串口通讯的虚拟数字…[41]

  • AVR编程语言Arduino也可以用Pr…[47]

  • Arduino编程 PWM方法调节LED光…[37]


  •   网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
        没有任何评论
    设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 | 管理登录 | 
    版权所有 Copyright© 2003 晨光科技        站长:璀璨星辰        页面执行时间:218.75毫秒
    Powered by:MyPower Ver3.5