极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

12
返回列表 发新帖
楼主: 49741933o

技术问题

[复制链接]
 楼主| 发表于 2014-7-5 09:46:02 | 显示全部楼层
uvvvvw 发表于 2014-7-4 23:50
int R_pin = 14; //定义电位器的引脚
int S=0; ///////////////////////////////////////////////////// ...

貌似不对,但感觉对。。。。。我调试了一下,当我推到320的时候(也就是稍左边一点),现象是:前进、后退、前进、再是一直后退。。当我再往右边推的时候会经过,341到682这个区间,然后就会停止了,但是以后再怎么推它都不动了。。
回复 支持 反对

使用道具 举报

发表于 2014-7-5 12:29:47 | 显示全部楼层
49741933o 发表于 2014-7-5 09:46
貌似不对,但感觉对。。。。。我调试了一下,当我推到320的时候(也就是稍左边一点),现象是:前进、后退 ...

你程式里 CASE 的语法好像错了。
另外 CASE 0 及 CASE 2 没有考虑停车。

再试试这个。

int R_pin = 14; //定义电位器的引脚
int S=0; ////////////////////////////////////////////////////////////////////////////
void setup()
{
  pinMode(8,OUTPUT);//定义输入、输出接口
  pinMode(9,OUTPUT);
  pinMode(10,OUTPUT);
  pinMode(5,OUTPUT);
  pinMode(6,OUTPUT);
  pinMode(7,OUTPUT);
  pinMode(14,INPUT);
  Serial.begin(9600);
}
void qianjin()//前进,
{
     
     digitalWrite(10,300);
     digitalWrite(5,255);
     digitalWrite(7,HIGH);//使直流电机(左)逆时针转
     digitalWrite(6,LOW);
     digitalWrite(8,LOW);//使直流电机(右)顺时针转
     digitalWrite(9,HIGH);
}

void tingzhi()//停止
{
     digitalWrite(6,HIGH);//使直流电机(左)制动
     digitalWrite(7,HIGH);
     digitalWrite(8,HIGH);//使直流电机(右)制动
     digitalWrite(9,HIGH);
}
void houtui()
{
     digitalWrite(10,255);
     digitalWrite(5,255);
     digitalWrite(6,HIGH);//使直流电机(左)逆时针转
     digitalWrite(7,LOW);
     digitalWrite(8,HIGH);//使直流电机(右)顺时针转
     digitalWrite(9,LOW);
}
void loop()
{   int x,val;
   float t;
    val= analogRead(R_pin);
    Serial.println(val);
   if(val< 341)
    { x=0; t=0.0088*(341-val);}
   else
     {
      if(val<682)
       {x=1;}
      else
       {x=2;  t=0.0088*(val-682);}
     }
   //Serial.println(x);        //////////////////////////////////
   //Serial.println(S);        //////////////////////////////////
  //////////////////////////   
switch(x)
   {
     case 0:
      if (S==0) ///////////////////////////////////////////////
        {      ///////////////////////////////////////////////
         qianjin();delay(t*1000+1000);
         houtui();delay(1000);
         qianjin();delay(1000);
         houtui();delay(t*1000+1000);
         S=1;  //////////////////////////////////////////////
        } //////////////////////////////////////////////
       else
        {
         tingzhi();
        }
     break;
     case 1:
       tingzhi();
       S=0;    //////////////////////////////////////////////
     break;
     case 2:
      if (S==0) ///////////////////////////////////////////////
        {      ///////////////////////////////////////////////      
         houtui();delay(t*1000+1000);
         qianjin();delay(1000);
         houtui();delay(1000);
         qianjin();delay(1000);
         S=1;  //////////////////////////////////////////////
        } //////////////////////////////////////////////   
      else
        {
         tingzhi();
        }     
      break;
   }
}



我用小车试验过 OK 的。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-3-29 16:53 , Processed in 0.046427 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表