donatello1996 发表于 2018-12-16 23:45

【树莓派3B+测评】PWM呼吸灯&控制12V电机

本帖最后由 donatello1996 于 2018-12-17 01:01 编辑

   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%才可以,不知道这是什么情况,不然的话风扇不转或者转速无法恒定,还请教搞直流电机的大佬们。
页: [1]
查看完整版本: 【树莓派3B+测评】PWM呼吸灯&控制12V电机