PSoC 4如何控制伺服

关键字 :PSoC4PWMServo

这是一个关于使用 PSoC 通过生成 PWM、调整频率和占空比来控制伺服的讲解!

 

本项目中用到的硬件部件:

赛普拉斯 PSoC 4开发套件 × 1

舵机(Tower Pro MG996R)× 1

 


项目详情:

使用 Arduino 控制伺服非常简单!有库可以做事,你不需要知道命令伺服的控制信号发生了什么。对于可能需要的人,有一个 Arduino 教程。

但是如何使用 PSoC 4 做到这一点呢?

根据SG90 Micro Servo datasheet,你必须像这样制作PWM信号来控制Servo

配置 PWM 模块

当然是选用 TCPWM 组件,但是等等!如何制作 50 Hz 信号 (20 mS) 并在 5% (1mS) 到 10% (2mS) 之间改变占空比?



  • 通过将周期值从“1 更改为 65535”,我们可以改变 PWM 频率。
  • 通过将比较值从“1 更改为周期值”,我们可以改变占空比。
  • 通过更改 fclk 的值(时钟信号到 PWM 组件),我们可以改变频率范围。
  • fclk 越大,最大频率越高。

 



配置频率和占空比的公式:

此 PWM 配置的公式(中心对齐,即对称 PWM)

  • 周期 = Fclk /(2 X 所需频率)
  • 比较值 = 期间 - (期望值 X 期间)

 

频率和占空比的计算:

此处,PWM 组件的 Fclk 选择为 480 kHz, 我们需要一个 50 Hz 的 PWM 信号(我们所需的频率)

所以,周期 = 480000 / ( 2 X 50 ) = 4800

比较值(最小) = 4800 - ( 10% X 4800 ) = 4320

比较值(最大) = 4800 - ( 5% X 4800 ) = 4560

在 4320 到 4560 之间改变比较值,我们可以控制伺服,因为它将产生完成工作所需的所需信号!PWM0_WriteCompare(value) API(或Function)用于从C代码改变占空比,控制舵机的位置!

重要提示:PWM 引脚必须作为硬件连接进行检查! 内部硬件驱动的引脚 否则,将没有输出!

★博文内容均由个人提供,与平台无关,如有违法或侵权,请与网站管理员联系。

★文明上网,请理性发言。内容一周内被举报5次,发文人进小黑屋喔~

评论