ESP32使用Arduino环境PWM驱动IRF520模块实现调压

  1. 接线
    IRF520调压模块
    1、输入 VCC  GND  接ESP32模块的3.3V    SIG引脚 接ESP32的PWM信号输入D15脚
    2、VCC  GND  输入电源V2  此电源不能和 1的电源有瓜葛 (不能共地 )
    3、V+  V-  输出的可变电压  电压在0V -- V2(2中的电源电压) 变化 
    使用D15引脚的PWM信号控制3中的电压在 0 到V2之间变化  实现无极调压

  2. Arduino实现PWM步骤:

    1.首先,选择一个PWM通道,从0到15共有16个通道。

    2.然后,设置PWM信号频率。对于LED来说,使用5000 Hz的频率是合适的。

    3. 设置信号的占空比分辨率,分辨率从1到16位。此处将使用8位分辨率,可以使用0到255的值来控制LED亮度(2的8次方)。

    4. 指定信号将出现在哪个或哪些GPIO上。为此,将使用以下函数:

         ledcAttachPin(GPIO, channel)       //输出信号的GPIO,产生信号的通道。
    5. 使用PWM控制LED亮度,可以使用以下函数:

    ledcWrite(channel, dutycycle);       // PWM信号的通道和占空比

  3.  代码
    #include <Arduino.h>
    // 定义PWM信号的引脚
    const int ledPin = 15;  // 
     
    // 设置PWM信号频率
    const int freq = 5000;
    //设置PWM通道 0-15
    const int ledChannel = 0;
    //设置信号的占空比分辨率  0-255 
    const int resolution = 8;
     
    void setup(){
      // configure LED PWM functionalitites
      ledcSetup(ledChannel, freq, resolution);
      
      // attach the channel to the GPIO to be controlled
      ledcAttachPin(ledPin, ledChannel);
    }
     
    void loop(){
      // increase the LED brightness
      for(int dutyCycle = 0; dutyCycle <= 255; dutyCycle++){   
        // changing the LED brightness with PWM
        ledcWrite(ledChannel, dutyCycle);
        delay(15);
      }
     
      // decrease the LED brightness
      for(int dutyCycle = 255; dutyCycle >= 0; dutyCycle--){
        // changing the LED brightness with PWM
        ledcWrite(ledChannel, dutyCycle);   
        delay(15);
      }
    }

根据引用\[1\]中提到的信息,IRF520模块需要5V的电压才能导通驱动负载工作。而正常的PWM信号输出是3.3V电平信号,因此需要将电平升压至5V才能驱动IRF520模块。可以采用电平升压模块或光耦芯片来实现电平升压的效果。 关于irf520驱动电路的具体连接方式,可以参考引用\[3\]中提供的代码示例。在这个示例中,使用了ledcWrite函数来控制PWM信号的通道和占空比。首先需要定义PWM信号的引脚,然后设置PWM信号的频率、通道和占空比分辨率。在循环中,通过改变占空比来改变LED的亮度,从而实现PWM信号的控制。 需要注意的是,具体的irf520驱动电路连接方式可能会因具体的应用场景和需求而有所不同。建议根据具体的需求和硬件条件,选择合适的驱动电路连接方式。 #### 引用[.reference_title] - *1* [IRF520模块的MOS管使用](https://blog.csdn.net/GXF_L/article/details/130394522)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [笔记-一些MOS管和栅驱](https://blog.csdn.net/Maple_Leaf_15/article/details/50993423)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [ESP32使用Arduino环境PWM驱动IRF520模块实现调压](https://blog.csdn.net/weixin_42854045/article/details/127327505)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值