Android Things:外设I/O接口-PWM

一、接口简介
Pluse Width Modulaion(PWM)是通过数字输出引脚向外部设备输出比例控制信号的常用方法。例如,伺服电机使用输入PWM信号的脉冲宽度来确定它们的旋转角度,LCD显示器基于PWM信号的平均值来控制它们的亮度。
PWM是数字信号(即方波),根据指定的频率和占空比振荡:
  频率(以赫兹表示)描述了输出脉冲重复多少次;
  周期是每个周期需要的时间,并且是频率的倒数;
  占空比(以百分数表示)描述了该频率窗口内的脉冲宽度;
例如,一个PWM信号设置为50%的占空比,每个周期的一般是活跃的。

你可以调整占空比来增加或者减少信号的平均"on"时间。下图展示了0%,25%和100%站占空比的脉冲序列。

二、使用步骤
对于PWM接口的操作,有如下步骤:
1.打开连接:创建PeripheralManagerService对象,使用你要打开的端口的名称调用openPwm()方法打开指定端口的连接。
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    try {
        mPwm = mPeripheralManager.openPwm(PWM_NAME);
    } catch (IOException e) {
        Log.w(TAG, "Unable to access PWM", e);
    }
}
2.配置信号:在第一启动信号之前,你必须使用setPwmFrequencyHz()方法设置信号周期和setPwmDutyCycle()方法占空比这些参数。
3.启动信号:为了启动PWM信号,调用setEnable(true)。你需要暂时解除这个信号,可以调用setEnable(false)。
public void initializePwm(Pwm pwm) throws IOException {
    pwm.setPwmFrequencyHz(120);
    pwm.setPwmDutyCycle(25);
    pwm.setEnabled(true);
}
4.关闭连接:当完成PWM端口通信,使用close()方法关闭连接并释放资源。
@Override
protected void onDestroy() {
    super.onDestroy();
    if (mPwm != null) {
        try {
            mPwm.close();
            mPwm = null;
         } catch (IOException e) {
            Log.w(TAG, "Unable to close PWM", e);
         }
    }
}
三、案例演示
这里我们通过使用PWM信号的占空比来控制驼机的旋转角度,来给大家演示了一下PWM信号的使用。
1.硬件准备
     
树莓派开发板 1块
     驼机 1个
  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值