zoukankan      html  css  js  c++  java
  • Arduino开发版学习计划--小车的行走

    小车的前进后退,左右转弯

    代码如下

    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,m);
    }
    void turnR(int n)      //右转 
    {
      motor(4,5,0,n);
      motor(7,6,1,n);
    }
    void stop()            //停止
    {
      motor(4,5,0,0);
      motor(7,6,1,0); 
    }
    void setup()
    {
      Serial.begin(9600);
     }
    void loop() 
    { 
      char num1,num2,num3,num4,num5,num6,num7;
      num1=digitalRead(8);    
      num2=digitalRead(9);
      num3=digitalRead(10);
      num4=digitalRead(11);
      num5=digitalRead(12);
      num6=digitalRead(2);
      num7=digitalRead(3);
                            // 用num1-7保存从左到右7个传感器的状态
      if(num1==0)          //第一个传感器检测到黑线用200的速度左转
      {
       turnL(250);   
       delayMicroseconds(2);
      }
     else if(num2==0)       //第二个传感器检测到黑线用150的速度左转
     {
       turnL(200);
       delayMicroseconds(2);
     }
      else if(num3==0)       //第三个传感器检测到黑线用150的速度左转
     {
       turnL(150);
       delayMicroseconds(2);
     }
     
     else if(num5==0)       //第五个传感器检测到黑线用150的速度右转
     {
        turnR(150);
       delayMicroseconds(2);
     }
     else if(num6==0)        //第六个传感器检测到黑线用200的速度右转
     {
        turnR(200);
       delayMicroseconds(2);
     }
      else if(num7==0)        //第七个传感器检测到黑线用250的速度右转  
     {
        turnR(250);
       delayMicroseconds(2);
     }
      else                     //其他状态小车直走
      {
       runfoward(180);
       delay(2);
      }
    }

     3398.27-2754.14=644.13

  • 相关阅读:
    某网的五一首发的黑夜3306终结版 工具+教程
    3389、1433、3306抓鸡原理和工具教程(原理篇)
    新手学习SEO要做的七件事是什么?
    通俗语言解释内外网IP与端口映射
    一次FCK拿bc全过程
    总结找到后台路径的N总思路方法
    threejs学习笔记(8)
    threejs学习笔记(7)
    threejs学习笔记(6)
    threejs学习笔记(5)
  • 原文地址:https://www.cnblogs.com/taiguyiba/p/7261330.html
Copyright © 2011-2022 走看看