搜索
bottom↓
回复: 7

用arduino板做的蔽障小车

[复制链接]

出0入0汤圆

发表于 2011-7-30 20:50:46 | 显示全部楼层 |阅读模式
潜水很久了,在论坛上学了很多。发个以前做的小车,那时的我只知道单片机很强大,不知道怎么用,总觉得学电子要花好多钱,在读书又没多少钱,虽然学的是电子专业,但那时才大一,也没人指导,也不知道去找老师请教,自己学习加网上找资料还是花了近一年的时间才弄出来的。
》》》现在看看觉得当时太笨了

减速电机 (原文件名:DSC00073.JPG)


(原文件名:DSC00064.JPG)


(原文件名:DSC00072.JPG)


(原文件名:DSC00071.JPG)


(原文件名:DSC00056.JPG)


(原文件名:DSC00054.JPG)


(原文件名:DSC00058.JPG)


(原文件名:DSC00057.JPG)


(原文件名:DSC00053-1.JPG)


(原文件名:DSC00067.JPG)


(原文件名:DSC00069.JPG)


(原文件名:DSC00065.JPG)



程序:
int inputPin=12;
int outputPin=13;
int pinI1=8;//定义I1接口
int pinI2=9;//定义I2接口
int speedpin0=5;//定义EA(PWM调速)接口
int pinI3=10;//定义I3接口
int pinI4=11;//定义I4接口
int speedpin1=6;//定义EB(PWM调速)接口
int IRR=2;//定义右侧避障传感器接口
int IRM=3;//定义中间避障传感器接口
int IRL=4;//定义左侧避障传感器接口
void setup()
{
  Serial.begin(9600);
  pinMode(pinI1,OUTPUT);
  pinMode(pinI2,OUTPUT);
  pinMode(speedpin0,OUTPUT);
  pinMode(pinI3,OUTPUT);
  pinMode(pinI4,OUTPUT);
  pinMode(speedpin1,OUTPUT);
  pinMode(IRR,INPUT);
  pinMode(IRM,INPUT);
  pinMode(IRL,INPUT);
  pinMode(inputPin,INPUT);
  pinMode(outputPin,OUTPUT);
}       
void loop()
{
    int r,m,l;
    /***********************读取红外接收管信号**************************/
    r=digitalRead(IRR);
    m=digitalRead(IRM);
    l=digitalRead(IRL);
    /******************超声波测距*************************/
    digitalWrite(outputPin,LOW);
    delayMicroseconds(2);
    digitalWrite(outputPin,HIGH);
    delayMicroseconds(10);
    digitalWrite(inputPin,LOW);
    long distance=pulseIn(inputPin,HIGH);
    distance=distance/58;
    Serial.print("S=");
    Serial.print(distance);
    Serial.print("cm");
    Serial.println();   
    /*******************************************/
    if(distance>10)//双分支
    {
      advance(120);//前进
    }
    else
    {
      if(l==HIGH &&m==HIGH && r==HIGH)//分别装在三个方向上,低电平有效
      advance(120);//前进
      if(l==LOW &&m==LOW  && r==LOW )
      {
        back(120);//后退
        delay(300);
        right(100);//右转
        delay(100);
      }
      if(l==LOW &&m==HIGH  && r==LOW )
      {
        back(120);//后退
        delay(300);
        right(100);//右转
        delay(100);
      }
      if(l==HIGH  &&m==LOW  && r==HIGH  )
      {
        back(120);//后退
        delay(300);
        right(100);//右转
        delay(100);
       }
      if(l==LOW &&m==LOW  && r==HIGH )
      right(100);//右转
      if(l==LOW && m==HIGH && r==HIGH)
      right(80);//右转
      if(l==HIGH &&m==LOW  && r==LOW )
      left(100);//左转
      if(l==HIGH &&m==HIGH  && r==LOW )
      left(80);//左转
    }
}
void advance(int a)//前进
{
     analogWrite(speedpin0,a);//输入模拟值进行设定速度
     analogWrite(speedpin1,a);
     digitalWrite(pinI4,LOW);//使直流电机(右)逆时针转
     digitalWrite(pinI3,HIGH);
     digitalWrite(pinI1,LOW);//使直流电机(左)顺时针转
     digitalWrite(pinI2,HIGH);
}
void right(int r)//右转
{
     analogWrite(speedpin0,r);//输入模拟值进行设定速度
     analogWrite(speedpin1,r);
     digitalWrite(pinI4,HIGH);//使直流电机(右)顺时针转
     digitalWrite(pinI3,LOW);
     digitalWrite(pinI1,LOW);//使直流电机(左)顺时针转
     digitalWrite(pinI2,HIGH);
}
void left(int l)//左转
{
     analogWrite(speedpin0,l);//输入模拟值进行设定速度
     analogWrite(speedpin1,l);
     digitalWrite(pinI4,LOW);//使直流电机(右)逆时针转
     digitalWrite(pinI3,HIGH);
     digitalWrite(pinI1,HIGH);//使直流电机(左)逆时针转
     digitalWrite(pinI2,LOW);
}
void Stop()//停止
{
     digitalWrite(pinI4,HIGH);//使直流电机(右)制动
     digitalWrite(pinI3,HIGH);
     digitalWrite(pinI1,HIGH);//使直流电机(左)制动
     digitalWrite(pinI2,HIGH);
}
void back(int b)//后退
{
     analogWrite(speedpin0,b);//输入模拟值进行设定速度
     analogWrite(speedpin1,b);
     digitalWrite(pinI4,HIGH);//使直流电机(右)顺时针转
     digitalWrite(pinI3,LOW);
     digitalWrite(pinI1,HIGH);//使直流电机(左)逆时针转
     digitalWrite(pinI2,LOW);
}

速度值要自己实际调试,我用的是两个坏手机的电池串联供电的,速度跟电压有关
pde格式的文件ourdev_662334N97PWC.zip(文件大小:1K) (原文件名:xunji_first.zip)

哦,还有红外蔽障电路

(原文件名:捕获.JPG)

其他的都用了超声波模块和电机驱动模块

阿莫论坛20周年了!感谢大家的支持与爱护!!

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出0入0汤圆

发表于 2011-7-30 21:16:03 | 显示全部楼层
那个。。。。字打错了,是躲避的避,不是屏蔽的蔽。

出0入0汤圆

 楼主| 发表于 2011-7-30 21:42:08 | 显示全部楼层
回复【1楼】huayuliang 花生
-----------------------------------------------------------------------
呵呵。。。谢谢指正!

出0入0汤圆

发表于 2011-7-30 22:29:32 | 显示全部楼层
楼主,你的应用用nano或者pro mini会更方便,引出插针直接接杜邦线
额,又广告了一把。。。

出0入0汤圆

发表于 2011-7-31 18:17:29 | 显示全部楼层
不错,最近也在搞这个

出0入0汤圆

发表于 2011-9-21 12:53:01 | 显示全部楼层
做的挺不错的 我现在也在弄arduino小车呢,向楼主学习!

出0入0汤圆

发表于 2014-5-31 13:44:22 | 显示全部楼层
谢谢分享@@@
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-8-25 18:41

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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