导航菜单
首页 » 梦之城下载 » 正文

逆袭-计数传感器

接线图

VCC 5V

GND GND

OUT D3

==接线示意图==

==比如程序==

Int speedPin=3;//界说数字3接口
int cntValue=0;
void setup ()
{
pinMode(speedPin,INPUT);//3号数字口设置为输入状况
Serial.begin(9600);
Serial.println("Speed Count\n");
}
void loop()
{
//判别是否被遮挡
if(digitalRead(speedPin)==0)
{cntValue++;//计数添加
Serial.独宠萌妃println(cntValue);//串口输出计数值
while(digitalRead(speedPin)==0);//等候遮挡完毕
}
}

==程序作用==

通过遮挡槽型光耦传感器,不断计数。

实践运用

U型测速模块的运用

U型测速模块

TT马达和测速码盘

规范电源(3V和6V)

下图为TT马达的几个基本参数:

我本次运用的是1:48的减速比电机,其他两个都没有测验~~~

下面是U逆袭-计数传感器型测速模块图片:

电路:(电路图就不画了,接线很简单)

将上面的U型测速模块接好,G接GND、V接5V、S接数字引脚2或许3(运用中止,只能接这两个脚),

然后将码盘和TT马达装置在一起,就能够实验了。

接好后,用一个遮挡物放在U型开关之间,模块上的LED点亮,无遮挡物时,LED不亮;

运用这一原理,当信号输出改动一次就计数一次,再通过一些列的换算就能够得到转速了~~

下面咱们看下程序,将其复制到Arduino IDE中,烧写入UNO中:

/*************************************************逆袭-计数传感器**********************
* 电机测速
* 运用millis()函数,记载时刻,单位为毫秒
* 运逆袭-计数传感器用中止函数,当引脚电平改动时触发,计数一次
* 以1:48减速电机、20孔的码盘为例
* 将得到的值Val除以40,得到滚动圈数
* 除以其时的时刻,由于时刻单位为毫秒,除以60000转换为分
* 这时候得到电机转速Speed ,单位 转/分
* 留意;测出来的值会有些差错,比实践值大,是由于码盘与电机轴有必定间隔
* BY YFROBOT
************************************************************************/
//设置模块引脚接到数字引脚2(程序用到中止函数,UNO中止引脚为数字引脚2和3)
int U_Pin = 2;
flo逆袭-计数传感器at Val = 0; //设置变量Val,计数
float time; //设置变量time,计时
float Speed; //设置变量Speed,存储转速

void setup(){

Serial.begin(9600);
attachInterrupt(0,count,CHANGE); //引脚电平发作改逆袭-计数传感器动时触发
}

void loop(){

time = millis();
Speed = (Val/40)/(time/60000) ;
Serial.println(Speed);
}

void count(){
Val += 1;
}

接上电源,测验成果成果如下(3V与6V,单位为转/分):

测验成果与上面的表中有些差错,这是由于码盘有直径,测验成果是码盘的转速,你也能够将成果再换算下,应该就能够得到电机的转速了~~~,还能够换算一下,得到车轮的转速,再依据逆袭-计数传感器车轮的周长,得到总的行进间隔了。

这些,我们就自行发挥吧。

二维码