查看: 1147|回复: 0

[未解决] arduino控制L298N黑线循迹

[复制链接]
  • TA的每日心情
    开心
    2018-5-29 13:32
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2018-5-29 17:50 | 显示全部楼层 |阅读模式
    https://www.arduino.cn/thread-3721-1-1.html(下面代码出处)

    下面我找到的一段代码,但是我不知道他的arduino与L298N之间的接线是怎样的,希望有大神可以指点指点
    void motor(char pin,char pwmpin,char state,int val)
    {
        pinMode(pin, OUTPUT);   
       
      if(state==1)
      {  
        analogWrite(pwmpin,val);
        digitalWrite(pin,1);
       }
      else if(state==2)
    {  
       analogWrite(pwmpin,val);
       digitalWrite(pin,0);
    }
    else if(state==0)
    {
        analogWrite(pwmpin,0);
        digitalWrite(pin,0);
    }
    }
       
    void runfoward(int i)   //前进
    {
      motor(4,5,1,i);
      motor(7,6,1,i);
    }
    void runback(int j)    //后退
    {
       motor(4,5,2,j);
       motor(7,6,2,j);
    }
    void turnL(int m)     //左转
    {
      motor(4,5,1,m);
      motor(7,6,0,0);
    }
    void turnR(int n)      //右转
    {
      motor(4,5,0,0);
      motor(7,6,1,n);
    }
    void stop()            //停止
    {
      motor(4,5,0,0);
      motor(7,6,1,0);
    }
    void setup()
    {
      pinMode(10,INPUT);//定义右边传感器,
      pinMode(11,INPUT);//定义中间传感器,
      pinMode(12,INPUT);//定义左边传感器,  
      Serial.begin(9600);
    }
    void loop()
    {
      char num1,num2,num3;
      
      num1=digitalRead(12);
      num2=digitalRead(11);
      num3=digitalRead(10);  
      
       if((num1==0)&&num2&&num3)
       {
        turnL(120);          //检测到左边传感器遇到黑线,说明小车右偏了,立即往左转一点
        delay(2);
        while(1){
        num2=digitalRead(11);         //循环判断中间传感器度数,
        if(num2==1)
        {  turnL(120);                     //如果num2==1说明还没有转到中间位置,继续左转
         delay(2);}
         else
         break;                      //检测到num2==0说明转过头了,跳出循环,检测三个传感器的状态再做出相应动作
       }                                       //后面道理相同
       }   
         
      else if(num2&&num1&&(num3==0))
       {
        turnR(120);
        delay(2);
        while(1)
        {
         num2=digitalRead(11);
        if(num2==1){
          turnR(120);   
         delay(2);}
         else
          break;
        }
       }
      else
      {
        runfoward(120);
        delay(2);
      }
    }
    您需要登录后才可以回帖 登录 | 立即注册  

    本版积分规则

    热门推荐

    Blynk与m5stack basic以及uiflow的交互玩法
    Blynk与m5stack basic以及
    Blynk与m5stack basic以及uiflow的交互玩法 [准备工作我们假设玩家已经熟悉下面的准备
    【原创】 drawbot平面关节scara机械臂写字机 画画机器人直播...
    【原创】 drawbot平面关节
    这个项目上个月就在做了,结构和代码反反复复改了多次,加上自己又太忙,一直没来得及
    error:'UTFT' does not mame a type这个错在那里?
    error:'UTFT' doe
    ********************************************************************************
    【原创】全球最小口袋3D打印机mini one直播教程贴
    【原创】全球最小口袋3D打
    最近闲得蛋疼,没事搞个掌上3D打印机,先放效果图吧。 搞了半天,终于能正常打印,
    哪种按钮传感器可以适用我的arduino装置
    哪种按钮传感器可以适用我
    我想做大概12个按钮并联的这么一个装置,具体交互行为如下:按一次按钮通过mp3模块发
    Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   
    快速回复 返回顶部 返回列表