找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 6313|回复: 0
打印 上一主题 下一主题
收起左侧

[众拳]剑齿虎STM8控制舵机实验程序及资料分享

[复制链接]
跳转到指定楼层
楼主


实验目的:
通过键盘和串口通讯控制舵机,使其按照指定的参数转动对应的角度。
舵机概述:
舵机最早用于船舶上实现其转向功能,由于可以通过程序连续控制其转角,
因而被广泛应用智能小车、机械手臂以及机器人各类关节运动等。


舵机组成:
舵机主要由以下几个部分组成:舵盘、减速齿轮组、位置反馈电位计、直流电机、控制电路等。



电机控制板主要是用来驱动电机和接受电位器反馈回来的信息。电机,动力的来源了,这个不用太多解释。电位器这里的作用主要是通过其旋转后产生的电阻的变化,把信号发送回电机控制板,使其判断输出轴角度是否输出正确。齿轮组的作用主要是力量的放大,使小功率电机产生大扭矩。
工作原理:
控制电路板接受来自信号线的控制信号,控制电机转动,电机带动一系列齿轮组,减速后传动至输出舵盘。舵机的输出轴和位置反馈电位计是相连的,舵盘转动的同时,带动位置反馈电位计,电位计将输出一个电压信号到控制电路板,进行反馈,然后控制电路板根据所在位置决定电机转动的方向和速度,从而达到目标停止。


PWM控制舵机的方法:
舵机的控制信号周期为 20MS 的脉宽调制(PWM)信号,其中脉冲宽度从0.5-2.5MS,相对应的舵盘位置为 0-180 度,呈线性变化。也就是说,给它提供一定的脉宽,它的输出轴就会保持一定对应角度上,无论外界转矩怎么改变,直到给它提供一个另外宽度的脉冲信号,它才会改变输出角度到新的对应位置上。舵机内部有一个基准电路,产生周期为 20MS,宽度 1.5MS 的基准信号,有一个比较器,将外加信号与基准信号相比较,判断出方向和大小,从而产生电机的转动信号。由此可见,舵机是一种位置伺服驱动器,转动范围不能超过 180 度,适用于那些需要不断变化并可以保持的驱动器中。


本实验中所使用SG90舵机:


尺寸:21.5mmX11.8mmX22.7mm
重量:9克
无负载速度:0.12秒/60度(4.8V)
堵转扭矩:1.2-1.4公斤/厘米(4.8V)
使用温度:-30~~+60摄氏度
工作电压:4.8V-6V

单片机源程序如下:
  1. /***********************************************************************
  2. *   说    明: 点亮第一个发光二极管
  3. *   开发平台: 剑齿虎STM8开发板        
  4. *   作    者: 刘洋 张殿东
  5. *   版    本: V1.0
  6. *   日    期: 2017-11-03   
  7. *
  8. *   IAR开发环境    版本 V2.20.1
  9. *   ST库函数       版本 V2.2.0
  10. ***********************************************************************/

  11. #include "pbdata.h"//引入自定义公共头文件

  12. void BSP_Configuration(void);//硬件初始化函数声明

  13. /***********************************************************************
  14. *   函 数 名: main
  15. *   功能说明: c程序入口
  16. *   形    参:无
  17. *   返 回 值: 错误代码(无需处理)
  18. ***********************************************************************/
  19. int main(void)
  20. {
  21.   BSP_Configuration();//硬件驱动初始化函数
  22.   while(1)//主程序循环,反复执行循环体里的语句
  23.   {
  24.         DJ_KZ_Key();
  25.         DJ_CS_Printf();
  26.         delay_ms(1);
  27.   }
  28. }
  29. /***********************************************************************
  30. *   函 数 名: BSP_Configuration
  31. *   功能说明: 初始化硬件设备。只需要调用一次。该函数配置CPU寄存器和外设的寄存器并初始化一些全局变量。
  32. *   形    参:无
  33. *   返 回 值: 无
  34. ***********************************************************************/
  35. void BSP_Configuration(void)
  36. {  
  37.   CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV1);//时钟速度为内部16M,1分频,
  38.   delay_ms(1000);
  39.   UART1_Congfiguration();//调用RS232串口1初始化函数
  40.   LED_Init();//调用LED初始化函数
  41.   I2C_Configuration();
  42.   TM1650_Init();
  43.   Tim1_PWM_Init();
  44.   rim();//打开总中断
  45. }

  46. /*断言函数:它的作用是在编程的过程中为程序提供参数检查*/
  47. #ifdef USE_FULL_ASSERT
  48. void assert_failed(u8* file,u32 line)
  49. {
  50.   while(1)
  51.   {
  52.   }
  53. }
  54. #endif
复制代码

舵机实验代码免费下载:
众拳剑齿虎STM8开发板舵机实验程序.7z (549.32 KB, 下载次数: 93)



评分

参与人数 1黑币 +5 收起 理由
zjqzmfh123 + 5 很给力!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏2 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表