(十二)树莓派3B+ node-rpio库的使用--硬件PWM

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zhuming3834/article/details/82589393

树莓派PWM引脚

关于树莓派的引脚图可以看《 (六)树莓派3B+ node-rpio库的使用–点亮LED》。我的是树莓派3B+,排针的第12引脚也就是GPIO.1就是PWM输出的引脚。
在库rpio中介绍了树莓派的PWM引脚

  • 26-pin models: pin 12
  • 40-pin models: pins 12, 32, 33, 35

那么我的树莓派3B+的第12,322,33,35引脚都可以输出PWM。
当然如果采用软件PWM,那么每个GPIO引脚都可以当做PWM输出引脚使用。

什么是PWM

什么是PWM,我觉得可以看看百度百科的解释:PWM–百度百科

PWM占空比

pwm的占空比,就是指高电平保持的时间,与该pwm时钟周期时间之比。
这里写图片描述

代码实现

var rpio = require('rpio');
var pwm_pin = 12;  // 排针第12引脚
rpio.open(pwm_pin, rpio.PWM); // 设置为PWM输出
rpio.pwmSetClockDivider(8); // 时钟8分频 具体是多少 可能示波器显示的会比较准确,目前没发现有文档说明
rpio.pwmSetRange(pwm_pin, 1024); // 设置PWM发生器范围

function pwm() {
    var data = 0;
    rpio.pwmSetData(pwm_pin, data); // 设置 data/1204 占空比的PWM波
    while(1){
        data ++;
        if(data >= 1024){
            data = 0;
        }
        rpio.pwmSetData(pwm_pin, data);// 设置 data/1204 占空比的PWM波
        rpio.msleep(6); // 延时6毫秒
    }
}
pwm();

实验电路图

这里写图片描述
排针的第12引脚也就是GPIO.1是其中的一个PWM输出引脚,接LED的正极,LED的负极直接接电源负极。

效果图

这里写图片描述
效果不是很明显,CSDN图片限制,只能是2M以内,不能上传视频,将就一下。

猜你喜欢

转载自blog.csdn.net/zhuming3834/article/details/82589393