[经验]
【树莓派3B+测评】PWM呼吸灯&控制12V电机
wiringPi软件库中可直接操作树莓派的特定GPIO接口输出PWM波,但只能是特定支持PWM复用输出功能的GPIO接口,其它不支持PWM输出的引脚只能模拟PWM。树莓派目前有三个GPIO接口支持PWM输出,分别是GPIO1、GPIO24、GPIO25,并且同时最多只能有两路PWM波输出:
在程序中用wiringPi软件库初始化PWM引脚,做法跟STM32单片机差不多,将LED灯阳极接到GPIO24,阴极接地:
#define MOTOR 1
#define RGB_LED 24
void Raspi_PWM_Init(int range)
{
pinMode(RGB_LED,PWM_OUTPUT);
pinMode(MOTOR,PWM_OUTPUT);
pwmSetRange(range);
}
然后是在程序中设置呼吸灯的效果算法:
while(1)
{
for(i=0;i<=100;i++)
{
pwmWrite(RGB_LED,i);
usleep(10*1000);
}
for(i=100;i>=0;i--)
{
pwmWrite(RGB_LED,i);
usleep(10*1000);
}
}
看看效果:
将L298N模块的IN1接口接GPIO1,IN2接地,OUT1和OUT2接风扇的两个极,然后在VCC端接12V供电,即可利用L298N这个大H桥做到TTL电平控制风扇转速:
在实际效果中,L298N模块要稳定控制风扇,需要设置输入PWM占空比大于40%才可以,不知道这是什么情况,不然的话风扇不转或者转速无法恒定,还请教搞直流电机的大佬们。
本帖最后由 donatello1996 于 2018-12-17 01:01 编辑
暂无评论,赶紧抢沙发吧