• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

基于arduino的蓝牙模块的L298控制的直流电机

zhangyanbo 2018-05-17 浏览量:1011

蓝牙发送指令后   L298控制的直流电机不能同向转 但可异向转

电源用的是7.4V​

可能是电源功率问题吗?

0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 是蓝牙模块接在单片机上,接受信号,让单片机控制l298n吗??

    如果是,那基本不是蓝牙的问题,蓝牙对于单片机来说,只是串口而已,

    应该还是代码的问题


    建议把接线和代码都贴出来

    • 发布于 2018-05-17
    • 举报
    • 评论 1
    • 0
    • 0
zhangyanbo 回复了 Chauncey:蓝牙串口可以接受信息 会返回数据 就是做的小车 l298接两个电机 不会直行 发送直行命令后 只返回数据 电机不转 回复

其他答案 数量:6
  • 这个应该是Arduino单片机与L298N通信时序的问题,能转说明L298N没有问题,只可能是Arduino单片机的输出时序出错了才会导致不可同转。

    • 发布于2018-05-31
    • 举报
    • 评论 0
    • 1
    • 0

  • 看看是不是程序编写问题或者电机正负极连接问题
    • 发布于2018-05-17
    • 举报
    • 评论 2
    • 0
    • 0
zhangyanbo 回复了 辛迪可乐 :void _mstr(int pin1int pin2int pin3int pin4) { digitalWrite(pin1HIGH); digitalWrite(pin2LOW); digitalWrite(pin3HIGH); digitalWrite(pin4LOW); } 回复
zhangyanbo 回复了 辛迪可乐 :这是一小段代码 要是出错的话也就这部分了 个人感觉没错呀 正负极不会错的 毕竟可以异向转得 回复

  • char getstr;
    int in1=12;
       
    int in2=11;
       
    int in3=10;
       
    int in4=9;
    int value=50;
       
    //上面定义了板上的4个控制端,12一组,34一组
       
    void _mRight(int pin1int pin2)//当in1和in2中有一个接高位时,电机会向某一方向转动
    {
        analogWrite(pin1 value);
        analogWrite(pin2 value);
      digitalWrite(pin1HIGH);
       
      digitalWrite(pin2LOW);
       
    }
       
    void _mLeft(int pin1int pin2)//同上
       
    {
        analogWrite(pin1 value);
        analogWrite(pin2 value);
      digitalWrite(pin1LOW);
       
      digitalWrite(pin2HIGH);
       
    }
       
    void _mStop(int pin1int pin2)//制动
       
    {
       
      digitalWrite(pin1HIGH);
       
      digitalWrite(pin2HIGH);
       
    }
    void _mstr(int pin1int pin2int pin3int pin4)
    {
      digitalWrite(pin1HIGH);
       
      digitalWrite(pin2LOW);  
      digitalWrite(pin3HIGH);
       
      digitalWrite(pin4LOW);
    }

    void _mback(int pin1int pin2int pin3int pin4)
    {
     
      digitalWrite(pin1LOW);
     
      digitalWrite(pin2HIGH);
     
     
      digitalWrite(pin3LOW);
     
     
      digitalWrite(pin4HIGH);
     
    }
       
    void setup()
       
    {
       
      Serial.begin(9600);
       
      pinMode(in1OUTPUT);
       
      pinMode(in2OUTPUT);
       
      pinMode(in3OUTPUT);
       
      pinMode(in4OUTPUT);
       
      //下面程序开始时让控制端都为高电平,电机保持不动。
       
      digitalWrite(in1HIGH);
       
      digitalWrite(in2HIGH);
       
      digitalWrite(in3HIGH);
       
      digitalWrite(in4HIGH);
       
    }
    void loop()
       
    {
       
      getstr=Serial.read();
       
      if(getstr=='f')
       
      {
       
        Serial.println("go forward!");
       
        _mStop(in1in2);
       
        _mStop(in3in4);   
        _mstr(in1in2in3in4);

       
      }
       
      else if(getstr=='b'){
       
        Serial.println("go back!");
       
        _mStop(in1in2);
       
        _mStop(in3in4);
        _mback(in1in2in3in4);
       
      }
       
      else if(getstr=='l'){
       
        Serial.println("go left!");
       
        _mStop(in1in2);
       
        _mStop(in3in4);
       
        _mRight(in1in2);
       
        _mLeft(in3in4);
       
      }
       
      else if(getstr=='r'){
       
        Serial.println("go right!");
       
        _mStop(in1in2);
       
        _mStop(in3in4);
       
        _mRight(in3in4);
       
        _mLeft(in1in2);
       
      }
       
      else if(getstr=='s'){
       
        Serial.println("Stop!");
       
        _mStop(in1in2);
       
        _mStop(in3in4);  
      }
       
    }

    • 发布于2018-05-17
    • 举报
    • 评论 0
    • 0
    • 0

  • 可能是接线问题,或者是电机与电压电流不匹配
    • 发布于2018-05-22
    • 举报
    • 评论 1
    • 0
    • 0
zhangyanbo 回复了 wenqingshan123 :电压是7.4v的 L298驱动两个直流电机 应该可以的 之后改用的 51单片机就可以 接线如果有问题应该不会转 现在是会转 只是不能直走 回复

  • 已经可以转了,那么电源应该是可以的。
    可能是你在接收到蓝牙命令后的处理上逻辑问题,可以反代码上传来看看。
    • 发布于2018-05-23
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

基于arduino的蓝牙模块的L298控制的直流电机