查看: 693|回复: 8

[未解决] L293D ESP12E Lua电机驱动板冒白烟(马达卡住)

[复制链接]
  • TA的每日心情
    开心
    2020-11-28 08:32
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2020-11-28 09:04 | 显示全部楼层 |阅读模式
    各位先进好,我要用L293D ESP12E Lua电机驱动板,控制我的小车时,遇到2个问题:
    1.因为我的小车,为了要在前轮不转动时,可以自动回正,所以前轮有加弹簧,我用电机驱动板,给前轮马达5V时,前轮马达会因弹簧而卡住,导致电机驱动板由5V,降为0V,且马达卡住时,电机驱动板会发出声音,过几十秒后,电机驱动板就冒白烟了。
    所以有2个问题要请教各位先进:
    1.我要如何做,让前轮马达可以左右转动,而不会因弹簧而卡住呢?
    2.当马达卡住时,要如何做,电机驱动板才不会由5V,降为0V,而导致发出声音,冒白烟烧掉呢?
    以下是我的程序代码:
    */
    /******************************************************************************************
      电机的引脚定义及接线说明
    ******************************************************************************************/
    int pwm1 =5;//PWMA(电机A转速)
    int dir1 =0;//DIRA(电机A方向)
    int pwm2 =4;//PWMB(电机B转速)
    int dir2 =2;//DIRB(电机B方向)
    /******************************************************************************************
      埠初始化
    ******************************************************************************************/
    voidsetup()
    {
    pinMode(dir1, OUTPUT);    //定义数字14 接口为输出接口
    pinMode(dir2, OUTPUT);  //定义数字15 接口为输出接口
    }
    /******************************************************************************************
      小车前进
    ******************************************************************************************/
    voidfront_run(int value)        //前进
    {
    digitalWrite(dir1, HIGH);
    analogWrite(pwm1, value);   //PWM Speed Control
    delay(30);
    }
    /******************************************************************************************
      小车后退
    ******************************************************************************************/
    voidback_run(int value)        //后退
    {
    digitalWrite(dir1, LOW);
    analogWrite(pwm1, value);   //PWM Speed Control
    delay(30);
    }
    /******************************************************************************************
      小车左转
    ******************************************************************************************/
    voidleft_run(int value)        //左转
    {
    digitalWrite(dir2, HIGH);
    analogWrite(pwm2 , value);   //PWM Speed Control
      delay(30);
    }
    /******************************************************************************************
      小车右转
    ******************************************************************************************/
    voidright_run(int value)        //右转
    {
    digitalWrite(dir2, LOW);
    analogWrite(pwm2 , value);   //PWM Speed Control
    delay(30);
    }
    /******************************************************************************************
      主程序
    ******************************************************************************************/
    void loop()
    {
    front_run(100);            //前进
    delay(1000);
    //      back_run(255);            //后退
    //      delay(1000);
    left_run(255);             //左转
    delay(1000);
    //      right_run(100);           //右转
    //      delay(1000);
    }
    /******************************************************************************************
                                          END
    ******************************************************************************************/


    前輪馬達

    前輪馬達
  • TA的每日心情
    开心
    2021-1-17 06:38
  • 签到天数: 397 天

    [LV.9]以坛为家II

    发表于 2020-11-29 17:18 | 显示全部楼层
    不能使用阻塞函数,要用freeFTOS,ESP12E可以灵活使用Ticker函数实现简单的非阻塞操控。
  • TA的每日心情
    奋斗
    2019-7-12 18:42
  • 签到天数: 48 天

    [LV.5]常住居民I

    发表于 2020-11-30 08:59 | 显示全部楼层
    不明白为啥要加啥弹簧,程序回正不行么?你这估计是堵转电流太大,所以烧了。。。
  • TA的每日心情
    开心
    2020-11-28 08:32
  • 签到天数: 1 天

    [LV.1]初来乍到

     楼主| 发表于 2020-11-30 10:56 | 显示全部楼层
    To:coloz
    會加彈簧的原因,是因為小車前輪在不轉動時,可以藉由彈簧來讓小車的前輪轉正。
  • TA的每日心情
    开心
    2020-11-28 08:32
  • 签到天数: 1 天

    [LV.1]初来乍到

     楼主| 发表于 2020-11-30 10:58 | 显示全部楼层
    To:topdog
    請問freeFTOS要怎麼寫,可以當馬達卡住不動時,電路板不會繼續送電壓,使得電路板燒毀呢?
    請問先進,有簡單的範例Code嗎?

    该用户从未签到

    发表于 2020-11-30 11:08 | 显示全部楼层
    不用delay,用累加计数方式,delay会导致判断速度变慢,影响结果
  • TA的每日心情
    开心
    2021-1-17 01:31
  • 签到天数: 1371 天

    [LV.10]以坛为家III

    发表于 2020-11-30 12:19 | 显示全部楼层
    仔细看了一下,终于看明白了,与弹簧无关。
    你的后轮应该就是你程序里的电机A,转向应该是电机B,对吧?
    那么,你的前进后退逻辑没错,但是转向上,你的电机是连续旋转电机(指令不停电机不停),而前轮转向架只是很小幅度的摆动,电机连续旋转,很快就会到机械极限而引起电机堵转,此时没有停止电机的指令,自然就造成烧驱动了咯。
  • TA的每日心情
    开心
    2020-11-28 08:32
  • 签到天数: 1 天

    [LV.1]初来乍到

     楼主| 发表于 2020-11-30 14:43 | 显示全部楼层
    To:上海老王
    1.後輪是程序裡的電機B,轉向是電機A哦
    2.電機堵轉與彈簧也有關係,因為電壓驅動時,電機受到彈簧彈力卡住,就造成電機堵轉,導致冒白煙
    3.那停止電機的指令是什麼呢?
    4.程式碼怎麼寫,才可以偵測到,何時該放停止電機的指令呢?
  • TA的每日心情
    开心
    2020-11-28 08:32
  • 签到天数: 1 天

    [LV.1]初来乍到

     楼主| 发表于 2020-11-30 14:45 | 显示全部楼层
    To:98765kof
    先進好,能以簡單的語法,示範累加計數的方式嗎?
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    热门推荐

    制作番茄计时器 提高学习效率        番茄钟   计时器
    制作番茄计时器 提高学习
    *学业重,本贴在未来几个月内无法及时维护 #视频介绍(推荐) https://www.bilibili.co
    关于arduino开发的工程方面的一些探索
    关于arduino开发的工程方
    刚开始用Arduino IDE写代码,连个代码提示都没有,后来发现在vscode上有arduino的插件
    雄霸Arduino中文开发平台
    雄霸Arduino中文开发平台
    雄霸Arduino中文开发平台适合于小白学习,中英文无缝切换。由于文件较大无法上传,请
    点灯·blinker esp8266加上DHT_11温度传感器
    点灯·blinker esp8266加
    #定义 BLINKER_WIFI #定义 BLINKER_MIOT_SENSOR //小爱同学定义为传感器设备
    【花雕动手做】太搞笑啦,一支胶管制成二只蠕动机器人
    【花雕动手做】太搞笑啦,
    装修屋子,用完了一筒千里马密封胶,偶然脑洞大开,想要试试看......
    Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   
    快速回复 返回顶部 返回列表