1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > 树莓派教程 - 1.1 树莓派GPIO库wiringPi 硬件PWM可调频率

树莓派教程 - 1.1 树莓派GPIO库wiringPi 硬件PWM可调频率

时间:2022-01-01 04:02:48

相关推荐

树莓派教程 - 1.1 树莓派GPIO库wiringPi 硬件PWM可调频率

Git例程源码仓库:/ZhiliangMa/raspberry.git

使用到的硬件:

led,200Ω左右的电阻、杜邦线。

上一节使用最基本的 GPIO数字输出,led亮了,可如果想要调整led亮度怎么办?

PWM简介

PWM脉宽调制技术广泛存在于现实生活中,例如TFT显示屏的背光亮度调整,电机的速度控制,开关电源输出电压的控制。

相比于早期的线性调制,PWM具有效率高、电路简单等优点。

图中a)可以类比于灯的亮度/电机的速度/电源输出的电压,b)就对应为PWM的脉冲宽度。

如果想要灯变亮一些,就增大PWM的占空比;如果想要灯暗一些,就减小PWM的占空比。

树莓派的硬件PWM

树莓派的硬件pwm只有l路,也就是 物理引脚的12引脚,wiringPi引脚的1引脚

树莓派内部pwm发生器的基频为19.2MHz,输出频率freq(Hz)= 19200000 /divisor / range

使用到的函数

c代码:

Git例程源码仓库:/ZhiliangMa/raspberry.git

wiringPi编码的1引脚,led亮度渐变。

#include <wiringPi.h>int hpwmLed = 1;// 定义使用wiringPi编码的1引脚int main(void){int xnum = 0;wiringPiSetup();// 使用wiring编码去初始化GPIO序号pinMode(hpwmLed, PWM_OUTPUT); // 设置GPIO电气属性为pwm输出pwmSetRange(1024); // pwm脉宽范围 0~1024pwmSetClock(75);// 250Hz,19.2MHz / 75 / 1024 = 250Hzwhile(1){for(xnum = 0; xnum <= 1024; xnum++){pwmWrite(hpwmLed,xnum);delay(2);// 延时2ms}}return 0;}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。