• L298N双路驱动直流电机方案(支持PWM+正反转)


    目录

    写在前面(吐槽吐槽) 

    正文

    最后


    写在前面(吐槽吐槽) 

    我想要驱动两个直流电机.

    直流电机,说白了,就是那种小马达,小时候玩四驱车时那种没有正负极的马达,转速快,力矩小。

    比如

     

    我用它带一个扇叶,就能实现正反转以及通过PWM进行调速,问题在于,这样的一个马达驱动电流竟然达到了400ma,我是主控板(stm32F103ZET6正点原子精英版),在外接12v 1A的电源适配器后,提供的5v,3.3v的电源提供的负载的最大电流也只有1.2A,排除板子本身需要200ma以上,最大提供给负载也只有1A,为这电源我折腾了不少,什么dc电压扩展板,面包电源板等等,它们驱动一个电机还好,两个电机就不行了。

    最后我找了我电信的同学,成功找到答案,用可充电锂电池组提供持久的放电,才真正意义上解决电源源头的问题。。

    正文

    本次用的是ST的L298N,就是淘宝是能找到的那种,双路直流电机驱动板

     

    怎么用呢?它有个12v Power端口的电源输入口,实际上输入7-12v都可以,如果是在这一端输入电压,同时如果你想有一个让这个L298N提供5V电源以向外输出, 则把上图的5Venable 短接。

    基于网上对这资料很杂且乱,我只能实践记录操作以验证真理。

    在不拔使能A的调线帽时,测试s正转 2s截止  2s反转,为了简单测试,我用arduino来测试。

    1. void setup(){
    2. Serial.begin(115200);
    3. pinMode(12,OUTPUT);
    4. pinMode(14,OUTPUT);
    5. }
    6. void loop(){
    7. digitalWrite(12,HIGH);
    8. digitalWrite(14,LOW); //正转
    9. delay(2000);
    10. digitalWrite(12,LOW); //制动
    11. digitalWrite(14,LOW);
    12. delay(2000);
    13. digitalWrite(12,LOW);
    14. digitalWrite(14,HIGH); //反转
    15. delay(2000);
    16. }

     现象正确。

    在不拔控制端  也就是上图中的A ENABLE的跳线帽的情况下实现PWM去控制。

    测试一个方向上转速不断增大

    1. int A=12;
    2. int B=14;
    3. void setup(){
    4. Serial.begin(115200);
    5. pinMode(A,OUTPUT);
    6. pinMode(B,OUTPUT);
    7. }
    8. void loop(){
    9. PWM_Run_x(A,50);
    10. PWM_Run_x(B,0);
    11. delay(2000);
    12. PWM_Run_x(A,75);
    13. PWM_Run_x(B,0);
    14. delay(2000);
    15. PWM_Run_x(A,95);
    16. PWM_Run_x(B,0);
    17. delay(2000);
    18. PWM_Run_x(A,125);
    19. PWM_Run_x(B,0);
    20. delay(2000);
    21. PWM_Run_x(A,165);
    22. PWM_Run_x(B,0);
    23. delay(2000);
    24. PWM_Run_x(A,205);
    25. PWM_Run_x(B,0);
    26. delay(2000);
    27. PWM_Run_x(A,0);
    28. PWM_Run_x(B,0);
    29. delay(2000);
    30. }
    31. void PWM_Run_x(int pin,int val){
    32. analogWrite(pin, val);
    33. }

    现象正确

    然后拔了A ENABLE ,则直接就不转了。这与网上的资料是有出入。

    比如以下查到的资料。

     

     

    最后

    今天是中秋节,各位中秋快乐。。。。

  • 相关阅读:
    华为Mate 60系列安装谷歌服务框架,安装Play商店,Google
    9.java项目-尚医通(9)
    elasticsearch-reinde 实际操作步骤
    【微服务】- 配置中心 - Nacos
    卷积核、特征图可视化
    viper读取配置文件
    R语言移除data.frame数据框中的NA值:使用na.omit移除包含任何NA值的行
    PDPS软件:机器人固定点焊虚拟仿真操作方法
    on java8之复用
    shell脚本的国际化——gettext与pot、po、mo
  • 原文地址:https://blog.csdn.net/PHILICS7/article/details/126797020