树莓派教程 |
您所在的位置:网站首页 › gpio输出pwm波 › 树莓派教程 |
Git例程源码仓库:https://github.com/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; 使用到的函数: 函数语句函数功能wiringPiSetup();使用wiring编码去初始化GPIO序号pinMode(int pin, int mode);设置GPIO电气属性pwmSetRange(unsigned int range);设置pwm脉宽范围,range与divisor共同决定pwm输出频率pwmSetClock(int divisor);设置pwm分频系数,range与divisor共同决定pwm输出频率pwmWrite(int pin, int value);输出pwm值,到pwm引脚delay(unsigned int howLong);延时 xx msc代码: Git例程源码仓库:https://github.com/ZhiliangMa/raspberry.git wiringPi编码的1引脚,led亮度渐变。 #include int hpwmLed = 1; // 定义使用wiringPi编码的1引脚 int main(void) { int xnum = 0; wiringPiSetup(); // 使用wiring编码去初始化GPIO序号 pinMode(hpwmLed, PWM_OUTPUT); // 设置GPIO电气属性为pwm输出 pwmSetRange(1024); // pwm脉宽范围 0~1024 pwmSetClock(75); // 250Hz,19.2MHz / 75 / 1024 = 250Hz while(1) { for(xnum = 0; xnum |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |