测速模块
1、用途:用于电机转速检测,脉冲计数,位置限位等
2、实现原理:有遮挡输出高电平;无遮挡,输出低电平
3、接线:vcc接5v,gnd接地,out信号输出
4、测速原理,和单位换算
①轮子走一圈,经过一个周长,C=2*3.14*半径=3.14*直径(6.5cm)
②轮子走一圈,对应码盘转一圈,经过一圈有20个孔,遮挡为高电平,不遮挡为低电平,那么对应的一个脉冲就是3.14*6.5cm/20=1.0205cm
③定时器可以设计成1s,统计脉冲数,1个脉冲就是1cm,若1s有80个脉冲,则速度为80cm/s
代码实现:
1.
main.c
//#include "reg52.h"//代码里边没有,sbit i/o口,可以不要声明 //#include "intrins.h"//代码里边没有_nop_();可以不要该声明 #include "reg52.h" #include "stdio.h" #include "motor.h" #include "dalay.h" #include "uart.h" #include "pwm.h" sbit speedio=P3^2;//外部中断口 unsigned int speedcnt=0;//用外部中断统计速度 extern unsigned int speed; extern char signal;