⑴ 单片机测速传感器如何使用
测量转速的方式很多,常见的有:霍尔传感器(例如你提到的那一种)、光电传感器(还分反射式与透射式)、以旋转编码器等等。
霍尔传感器很容易用,我用过的(我不记清型号了)就3根线:电源、地和输出信号,为易于与单片机接口,电源就用5V,输出信号直接接口线(为防止干扰也可加个简单的阻容滤波)。编程计算每2个脉冲之间的时间(通常用定时器)就可以了。
关于补充:你说的那个型号我没用过,但我觉得不如3根线的易用,如我前面所说,几乎不需要任何其它东西就行。如果精度要求高,至多再加一个D触发器(门控计数方式)。我用12MHz的51实现了30--4000rpm的测量,可以精确到1rpm一下。
⑵ 测速怎么用单片机实现
购买一个脉冲开关,在机械旋转部位安装一个类似于凸台的感应部分,利用凸台每接近脉冲开关后脉冲开关产生以此脉冲的原理,用单片机进行计数,或者用更专业一点的,采用齿圈形式,这样一个精度相对高一点,另外适合高转速,至于原理,其实都差不多,都是利用电磁原理,让传感器产生脉冲,让单片机进行采集或计数。我这里有相关文章,如果需要请留下邮箱。
⑶ 单片机 速度测试的程序
关键是看你用什么传感器.
⑷ 51单片机 测速
可以考虑用外部中断加定时器来做,当感应到磁性的时候产生外部中断,这时打开定时器,给定时器设定一个合理的溢出时间,比如1ms,然后打开定时器溢出中断,另外在程序中加一个时间变量,定时器产生一次溢出中断后变量就加1,直到第二个外部中断到来时,关闭定时器,这时检查时间变量,值是多少就说明两次外部中断间隔了多少毫秒。
单片机,全称单片微型计算机(英语:Single-Chip Microcomputer),又称微控制器(Microcontroller),是把中央处理器、存储器、定时/计数器(Timer/Counter)、各种输入输出接口等都集成在一块集成电路芯片上的微型计算机。与应用在个人电脑中的通用型微处理器相比,它更强调自供应(不用外接硬件)和节约成本。它的最大优点是体积小,可放在仪表内部,但存储量小,输入输出接口简单,功能较低。由于其发展非常迅速,旧的单片机的定义已不能满足,所以在很多应用场合被称为范围更广的微控制器;从上世纪80年代,由当时的4位、8位单片机,发展到现在的32位300M的高速单片机。
⑸ 89c52 单片机测速程序 光电码盘
这个说白了就是测量脉冲的个数,也就是理想方波的频率。
给你一个测频率的程序,仅供参考
#include<reg51.h>
#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char
float f=0;
uchar LED0_data,LED1_data,LED2_data,LED3_data;
uchar i=0;
uchar code Segcode[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
void display();
void delay(uint v);
void initime();
/*定时器初始化*/
void initime()
{
TMOD=0x51; //T1计数器,T0定时器,方式1
TL0=(65536-10000)%256;
TH0=(65536-10000)/256;
TL1=0;
TH1=0;
ET0=1;
EA=1;
}
/*延时子函数*/
void delay(unsigned int c)
{
unsigned int i,j;
for(i=0;i<c;i++)
for(j=0;j<100;j++);
}
/*将十进制数拆成送数码管的显示码*/
void dectobit(int dec)
{
LED3_data=dec/1000;
dec=dec % 1000;
LED2_data=dec/100;
dec=dec % 100;
LED1_data=dec/10;
dec=dec % 10;
LED0_data=dec;
}
/*显示程序*/
void display()
{
P0=Segcode[LED3_data]; //个位
P2&=~0x01;
delay(10);
P2|=0x01;
P0=Segcode[LED2_data]; //十位
P2&=~0x02;
delay(10);
P2|=0x02;
P0=Segcode[LED1_data];
P2&=~0x04;
delay(10);
P2|=0x04; //百位
P0=Segcode[LED0_data]; //千位
P2&=~0x08;
delay(10);
P2|=0x08;
}
void main(void)
{
initime();
TR0=1;
TR1=1;
while(1)
{
dectobit(f);
display();
}
}
timer()interrupt 1 using 2
{
i=i+1;
if(i==100)
{ i=0;
f=TH1*256+TL1;
TL1=0;
TH1=0;
}
TL0=(65536-10000)%256;
TH0=(65536-10000)/256;
}
⑹ 基于单片机的测速
用定时器 记脉冲个数,已知 一圈多少个脉冲 每个脉冲 距离间隔多少 就可以通过 在多长的时间里 记了多少个脉冲 得出 速度
仅供参考
⑺ 三线cpu风扇怎么用单片机测速
除了红、黑线,三线CPU风扇的另一根线是风扇转速输出信号线。这根线输出的是一个周期不变(通常为40~50uS),脉冲宽度随风扇转速改变的信号,脉冲的幅度为2v左右。也就是说,信号的占空比随转速变化。
用单片机测量风扇转速时,可以直接测量正脉冲的宽度(负脉冲宽度则与转速成反向变化)。采用正跳沿开启计数器、捕获甚至查询等都可以达到测量正脉冲宽度的目的,当然,你的晶振频率要足够高。
⑻ 51单片机测速原理图
直流电机测速可以看看这个。51单片机直流测速。
⑼ 89C51单片机读取霍尔编码器的脉冲测速
400表示转一圈来的脉冲数是4000 脉冲个数越多测量精度越高。
单片机主要是通过定时器定时1秒或1分钟,同时利用计数器对光电编码器的脉冲计数,
每当定时时间到,就读出计数器的脉冲个数,计数出单位时间的脉冲个数除以转一圈来的脉冲数,
就是电机的转数。
如:在单位时间1秒内,计数脉冲为 80000个 即80000个脉冲/每秒
可以推出: 20转/每秒 即 1200转/分
⑽ 用80C51单片机怎么使用测速传感器
测速传感器,就是霍尔传感器,传感器如果有磁铁经过的时候,会输出一个高电平(也有些输出低电平)。然后你利用中断口,计数这高电平的数目。你然后再乘以轮子的周长,就可以测量速度。
这个传感器需要配合磁铁才能工作,一般都是在轮子上装个小的磁铁,然后统计轮子的转的圈数。
希望对你有帮助。。