测速码盘怎么接单片机(测速码盘怎么用)

作者:研茂套袋机

2023-04-29

本文目录一览:

我想用红外对管接收测速码盘信号,让车轮转过固定的角度,你能给点指导吗?

你用的什么单片机控制的 不过原理一样 差的就是精度 51的话精度别要求太高 我去年用STM32做过334线码盘的电机 做到可以控制任意角度 大致思路就是捕获码盘的转动格数 一般电机有减速箱 实际测一下 看转一圈码盘装多少格 让后就是在单片机里输入你需要转动的格数 把对管的信号输出线 接到单片机捕获(计数)IO上 每一个下降沿加一个数 加到你设置的数停止 或执行别的模式

测速码盘怎么用

编码器一般与轴相联,编码器的脉冲量是固定的,在轴旋转的时候,编码器就会输出脉冲,PLC或计数器收到脉冲,根据轴转的速度不同时,在单位时间内收到的脉冲总量是不一样的,速度就表现在这里了,根据脉冲量与实际转的长度就可以算了真实的速度米/分钟

工作原理:由一个中心有轴的光电码盘,其上有环形通、暗的刻线,有光电发射和接收器件读取,获得四组正弦波信号组合成A、B、C、D,每个正弦波相差90度相位差(相对于一个周波为360度),将C、D信号反向,叠加在A、B两相上,可增强稳定信号;另每转输出一个Z相脉冲以代表零位参考位。

由于A、B两相相差90度,可通过比较A相在前还是B相在前,以判别编码器的正转与反转,通过零位脉冲,可获得编码器的零位参考位。

求基于51单片机光码盘测转速程序

你好!

那就用一个普通的IO口来实现,但是响应速度会受到影响

89c52 单片机测速程序 光电码盘

这个说白了就是测量脉冲的个数,也就是理想方波的频率。

给你一个测频率的程序,仅供参考

#includereg51.h

#includeintrins.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;ic;i++)

for(j=0;j100;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;

}

测速码盘怎么接单片机的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于测速码盘怎么用、测速码盘怎么接单片机的信息别忘了在本站进行查找喔。

cache
Processed in 0.006146 Second.