首页 > 解决方案 > 由 ESP32 (Arduino) 控制的电机驱动

问题描述

我正在使用 Arduino 代码测试由 ESP32 控制的定制电机驱动器(小型 6V 直流电机)。A 和 B 方向由 GPIO 引脚 16 和 17 上的高/低数字写入控制。使用 NPN 晶体管(NPN 晶体管 - BC847 - 数据表)和(双 n/p mosfet IRF7105 - 数据表)。

速度由引脚 26 上的 PWM (ledc) 控制,带有一个 mosfet:(IRLML2502 n 通道 mosfet 数据表

电机驱动 - 示意图

但结果并不一致,当我将 A 或 B 设置为高电平并将 PWM 设置为 100% 时,我预计电机引脚(1 和 2)上的电压接近 6V。有时确实如此,但有时我只测量3.7V。当测试点 T6 对地短路时,达到 6V。我什至不确定不同的电压在哪里“丢失”,我用我的 DMM 测量了以下电压(不幸的是没有可用的示波器)。

我在原理图中或我用 ESP32 驱动它的方式中是否遗漏了什么?

标签: arduinoesp32motordriver

解决方案


Arduino.jpg

 #include <Stepper.h>
    
    int stepCount = 0;
    Stepper Moteur=Stepper(5,6,7);
    
    void setup(){
      Serial.begin(9600);
    
    }
    void loop() {
      Moteur.step(2000);
      Serial.print("steps:");
      Serial.print(-stepCount);
      stepCount++;
      delay(0);
    }

推荐阅读