首页 > 评测 > 评测列表 > MCU

NXP i.MX7D与AndroidThings系列之六:PWM输出

NXP   i.MX7D    AndroidThings    PWM   
  • 作者:SATURN
  • 来源:必威
  • [导读]
  • 本文是AndroidThings的第六篇,将为大家演示如何通过PWM实现电灯。
  • iMX233-OlinuXino-MICRO
  • MY-iMX6UL开发套件
  • CY3280-CapSense-MBR3
  • PocketBeagle
  • CC3220SF LaunchPad (CC3220SF-LAUNCHXL)
  • Esquilo Air
  • A10-OlinuXino-LIME
  • CY8CKIT-040 PSoC 4000先锋开发套件

必威 www.uti-home.com  本文是AndroidThings的第六篇,将为大家演示如何在IMX7D上通过PWM实现电灯。需要注意的是,PWM输出并不是模拟信号,而是利用数字输出来达到模拟信号的特性,通过调整频率及占空比,可以实现常规模拟信号不能达到的要求,在电机控制、灯光调光方面应用非常广泛。在AndroidThings设备中使用PWM,方法更简单!

脉宽调制 PWM)是使用数字输出引脚向外部器件施加比例控制信号的常用方法。例如,伺服电机使用输入PWM信号的脉冲宽度来确定它们的旋转角度。LCD显示器根据PWM信号的平均值调整其亮度。

PWM是一种数字(即方波)信号,它根据给定的频率和占空比振荡

• 频率(以Hz表示)描述输出脉冲重复的频率。

• 周期是每个周期所需的时间,并且是频率的倒数。

• 占空比(以百分比表示)描述该频率窗内的脉冲宽度。

例如,设置为50%占空比的PWM信号在每个周期的一半时间内有效:

QQ截图20180719093340.png

i.MX7D提供的PWM接口如下 

rId22.png

接口引脚图上看到有两个PWM,即PWM1PWM2,这一点可以通过如下的代码来加以验证

Log.d(TAG, "PWM" + PeripheralManager.getInstance().getPwmList());
 
LogCat输出信息如下:
 
/com.example.netlh.pwm D/AndroidThings: PWM[PWM1, PWM2]

接下来我们使用LED灯来做一个呼吸灯效果,实现PWM输出测试。

IMG_20180702_103608_copy.jpg 

LED灯连接到PWM1接口,使用Handler.postDelay()来做简单的定时功能。当然在此之前记得打开IO权限

<uses-permission android:name="com.google.android.things.permission.USE_PERIPHERAL_IO" />

接下来看代码,如何来实现呼吸灯的效果

  • 本文系21ic原创,未经许可禁止转载!

网友评论