加载中…
正文 字体大小:

Arduino通过Mini红外传感器测电机转速

(2009-04-19 10:12:48)
标签:

arduino

红外传感器

直流减速电机

转速

分类: Arduino

    今天编了个测试直流电机转速的小程序,要准备的东东也是以前用过的直流电机驱动板、红外寻线传感器、直流电机和轮子、6V电源(为了准确测速,电源最好为6V),当然还有的就是主角Arduino了。

    详细的各部分接线方法和图就到前面的博文里查看吧,这里就不做过多说明了,只附上几张接线完成的总图,如下:

Arduino通过Mini红外传感器测电机转速

Arduino通过Mini红外传感器测电机转速Arduino通过Mini红外传感器测电机转速

Arduino通过Mini红外传感器测电机转速

Arduino通过Mini红外传感器测电机转速

    这个小程序要达到的目的是测Mini直流电机的转速,这里我用红外传感器做测速工具,也有人利用过霍耳效应器件测电机转速,其实原理类似。我在黑色橡胶轮胎上粘一条白色贴纸,这样轮子每转一圈Mini红外传感器检测反馈的电压就会变化一次,最好观察Arduino软件显示窗一分钟内的变化次数即可。

    下面是具体的程序代码:

 

int pin1=8;//定义I1接口

int pin2=9;//定义I2接口

int speedpin=11;//定义EA接口

int redpin=7;//定义红外接口

int m=0;

int i=0;

int val;

void setup()

{

  pinMode(redpin,INPUT);//定义该红外接口为输入接口

  pinMode(pin1,OUTPUT);//定义该接口为输出接口

  pinMode(pin2,OUTPUT);

  pinMode(speedpin,OUTPUT);//定义该调速接口为输出接口

  Serial.begin(9600);

}

void loop()

{

  val=digitalRead(redpin);//读取红外接口的电平

  if(val==HIGH)

   {//如果红外接口为高电平(遇白色)m自加一次

      m++;

   }

     if(val==LOW&&m>=1)

  {//只有当红外接口在读出高电平后再读出低电平时,i加一,记为一次

      i+=1;

      m=0;//m归零,用于下次检测白线

      Serial.println(i);//输出转速的值

  }

  if(i==1)

  {//当i=1时,电机开始转动

     digitalWrite(speedpin,HIGH);//使电机全速运转

     digitalWrite(pin1,HIGH);//使直流电机转动

     digitalWrite(pin2,LOW);

  }

}

Arduino通过Mini红外传感器测电机转速

Arduino通过Mini红外传感器测电机转速

    这里我测出的转速为222RPM

  机器人基地提供此款电机的参数为:

1、齿轮齿数比:100:1
2、无负载转速(3V):120RPM
3、无负载转速(6V):240RPM
4、无负载时电流(3V):40mA
5、无负载时电流(6V):70mA
6、堵转电流(3V):390mA
7、堵转电流(3V):680mA
8、扭矩大小 (3V):   3200gm*cm
9、扭矩大小 (6V):   5500gm*cm
10、尺寸大小:70.50 mm×27.00 mm×23.00 mm(长×宽×高)
11、重量大小:  约40g

    由于我安装弹性橡胶轮带负载运转测试,所以转速会相空载时小一些。下面是视频演示。

 

 

 

 

 

0

阅读 收藏 转载 喜欢 打印举报
已投稿到:
  

新浪BLOG意见反馈留言板 不良信息反馈 电话:4006900000 提示音后按1键(按当地市话标准计费) 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

新浪公司 版权所有