拆了个加油机的编码器,一不小心码盘搞弯了回不回不去了,看来要下次再找个拆
看得眼花花的,120栅一圈?
那问题来了,在这个设备上,这一栅格对应多少油?
问我也不懂
要看齿轮一圈对应多少没了,应该是椭圆齿轮作传感器
所以我问,
怎么感觉这个编码器有问题啊,接个单片机接到光耦的发射端是什么意思啊?是不是加油的过程中闪两下,多给你记点油进去?
这个9701c 只能在这个直径的码盘上上180度的格子,再精细了做不了。但是经典应用上是不要单片机的啊。
标准论坛尾巴。当你看到这个尾巴的时候就知道你的回复是正常的。
码盘有单独卖的,你这能搞弯啥材料的?不是不锈钢吧?
不懂是啥意思,不过感觉是处理好的数据送主板去吧
脉冲是多少的?1000的吗?
不懂是啥意思,不过感觉是处理好的数据送主板去吧
看起来很是高大上的
这种编码器,可以用JLC钢网直接做出来
刚刚写了个加油机编码器程序不知道能用不
#include "Encode.h"
#define T1_PORT GPIOI
#define T0_PORT GPIOI
#define T1_PIN GPIO_Pin_2
#define T0_PIN GPIO_Pin_3
#define T1_READ() ((T1_PORT->IDR & T1_PIN)?1:0)
#define T0_READ() ((T0_PORT->IDR & T0_PIN)?1:0)
static unsigned long EncodeCounts = 0;//正转脉冲数
static unsigned long EncodePluseErrorCounts = 0;//非加油状态正转脉冲数
static unsigned long DropEncodeCounts = 0;//丢失脉冲数
static unsigned long RbackEncodeCounts = 0;//反转脉冲数
static unsigned char EncodeError = 0;//编码器异常标志
//设置编码器故障代码
void SetEncodeError(unsigned char EncodeErrors)
{
EncodeError = EncodeErrors;
}
//获取编码器错误代码 0:正常 1:反转 2:脉冲丢失 3:T0或T1故障 4:停机还出油 5:脉冲停止
unsigned char GetEncodeError(void)
{
return EncodeError;
}
//设置编码器脉冲数
void SetEncodeCounts(unsigned long EncodeCount)
{
EncodeCounts = EncodeCount;
}
//获取编码器脉冲数
unsigned long GetEncodeCounts(void)
{
return EncodeCounts;
}
void EncodeParmInit(void)
{
SetEncodeCounts(0);
}
//Beep端口初始化
void EncodeInterfaceInit(void)
{
//定义一个接口配置结构
GPIO_InitTypeDef GPIO_InitStruct_Encode;
RCC_AHB1PeriphClockCmd( RCC_AHB1Periph_GPIOI, ENABLE);//初始化时钟
GPIO_InitStruct_Encode.GPIO_Pin = GPIO_Pin_2|GPIO_Pin_3;//对应管脚
GPIO_InitStruct_Encode.GPIO_Mode = GPIO_Mode_IN;//输出模式
GPIO_InitStruct_Encode.GPIO_OType = GPIO_OType_PP; //推挽
GPIO_InitStruct_Encode.GPIO_Speed = GPIO_High_Speed;
GPIO_Init(GPIOI, &GPIO_InitStruct_Encode);
EncodeParmInit();
}
//相位判断
//返回值:0:正常 1:脉冲丢失 2:编码器反转
static unsigned char JudgeEncodeRound(unsigned char T0_val ,unsigned char T1_val)
{
unsigned short temp = 0;
temp = T0_val;
temp = (temp