• 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 ,则直接就不转了。这与网上的资料是有出入。

    比如以下查到的资料。

     

     

    最后

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

  • 相关阅读:
    初识Linux系统以及部分Linux系统指令介绍
    Mybatis巧用@Many注解一个SQL联合查询语句搞定一对多查询
    【办公-excel】两个时间相减 (二) - 带毫秒的时间进行相减操作
    28 vant组件库
    故障分析 | 从 data_free 异常说起
    JS语言里常见的随机函数示例,实验结果分布规律分析
    VMware——WindowServer2012R2环境安装mysql5.7.14解压版_互为主从(图解版)
    【LLM】提示工程技术提炼精华分享
    javascript随机猜数字,每次结果不一样
    4.从中缀向后缀转换表达式
  • 原文地址:https://blog.csdn.net/PHILICS7/article/details/126797020