拆了个加油机的编码器
拆了个加油机的编码器,一不小心码盘搞弯了回不回不去了,看来要下次再找个拆 看得眼花花的,120栅一圈?那问题来了,在这个设备上,这一栅格对应多少油? LearningASM 发表于 2015-7-8 09:08
看得眼花花的,120栅一圈?
那问题来了,在这个设备上,这一栅格对应多少油? ...
问我也不懂 LearningASM 发表于 2015-7-8 09:08
看得眼花花的,120栅一圈?
那问题来了,在这个设备上,这一栅格对应多少油? ...
要看齿轮一圈对应多少没了,应该是椭圆齿轮作传感器 mcu5i51 发表于 2015-7-8 09:32
要看齿轮一圈对应多少没了,应该是椭圆齿轮作传感器
所以我问,
在这个设备上,这一栅格对应多少油 怎么感觉这个编码器有问题啊,接个单片机接到光耦的发射端是什么意思啊?是不是加油的过程中闪两下,多给你记点油进去?
这个9701c 只能在这个直径的码盘上上180度的格子,再精细了做不了。但是经典应用上是不要单片机的啊。
标准论坛尾巴。当你看到这个尾巴的时候就知道你的回复是正常的。 码盘有单独卖的,你这能搞弯啥材料的?不是不锈钢吧? ahuang227 发表于 2015-7-8 09:56
怎么感觉这个编码器有问题啊,接个单片机接到光耦的发射端是什么意思啊?是不是加油的过程中闪两下,多给你 ...
不懂是啥意思,不过感觉是处理好的数据送主板去吧 脉冲是多少的?1000的吗? ahuang227 发表于 2015-7-8 09:56
怎么感觉这个编码器有问题啊,接个单片机接到光耦的发射端是什么意思啊?是不是加油的过程中闪两下,多给你 ...
不懂是啥意思,不过感觉是处理好的数据送主板去吧 看起来很是高大上的 这种编码器,可以用JLC钢网直接做出来{:lol:} 本帖最后由 yufanyufan77 于 2017-7-27 09:03 编辑
刚刚写了个加油机编码器程序不知道能用不
#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<<2) | T1_val;
switch(temp)
{
//正转
case 0:
case 7:
case 14:
case 8:
return 0;
//反转
case 11:
case 13:
case 4:
case 2:
return 2;
}
//丢脉冲
return 1;
}
//读取编码器
//00 01 11 10
void EncodeProcess(void)
{
unsigned char temp = 0;
unsigned char T0_val = 0;
unsigned char T1_val = 0;
unsigned char EncodeTemp_val = 0;
static unsigned char Encode_val = 0;
static unsigned long EncodeStopCountsTime = 0;//正转脉冲停止时间
T0_val = T0_READ();
T1_val = T1_READ();
EncodeTemp_val = (T0_val<<1) | T1_val;
if(Encode_val == EncodeTemp_val)//此时间段内没有转动
{
//开始计时
EncodeStopCountsTime++;
if(EncodeStopCountsTime>10000)
{
SetEncodeError(5);
EncodeStopCountsTime = 0;
}
return ;
}
else
EncodeStopCountsTime = 0;
temp = JudgeEncodeRound(Encode_val ,EncodeTemp_val);
switch(temp)
{
//正转
case 0:
Encode_val = EncodeTemp_val;
EncodeCounts++;
if(!GetnozzleNumFuelState())//非加油状态
EncodePluseErrorCounts++;
if(EncodePluseErrorCounts>100)
SetEncodeError(4);//停机状态还出油
break;
case 1:
//脉冲丢失需修正
DropEncodeCounts++;
if(DropEncodeCounts>10&&DropEncodeCounts<20)
{
SetEncodeError(2);//丢脉冲
return;
}
if(DropEncodeCounts>20)
{
SetEncodeError(3);//T0或T1故障
return;
}
break;
case 2://反转
Encode_val = EncodeTemp_val;
RbackEncodeCounts++;
if(RbackEncodeCounts>20)
{
SetEncodeError(1);
return;
}
break;
}
} 楼主你是做加油机的吗
yufanyufan77 发表于 2017-7-26 16:32
刚刚写了个加油机编码器程序不知道能用不
#include "Encode.h"
坛友,你做加油机系统? 这个加油机编码器是双脉冲输出的,一般是开漏输出,不带防作弊功能。带防作弊功能的还带有出口TTL输出,接税控口。 类似鼠标的原理 换个齿密点的盘是不是可以作弊了 ffbiao 发表于 2019-12-4 10:35
坛友,你做加油机系统?
是的一直在加油设备行业干 newselect 发表于 2019-12-4 11:35
换个齿密点的盘是不是可以作弊了
嗯可以少出油但是流量过快加油机会锁死 我最近也在倒腾这个编码器。 redworlf007 发表于 2023-3-27 15:40
我最近也在倒腾这个编码器。
(引用自21楼)
1000线以内的码盘 14元包邮,某宝一大堆,卷的飞起,内孔各种各样,
9700 9731的光电编码器读头也是几块钱,自己修不如买新的。 网络攻城师 发表于 2023-3-27 15:47
1000线以内的码盘 14元包邮,某宝一大堆,卷的飞起,内孔各种各样,
9700 9731的光电编码器读头也是几 ...
(引用自22楼)
我做的是监听加油机每次加油数据的设备,就是反向获取数据,我从屏幕 站控 税控取到数据,现在在想从编码器脉冲拿出数据来。 LearningASM 发表于 2015-7-8 09:08
看得眼花花的,120栅一圈?
那问题来了,在这个设备上,这一栅格对应多少油? ...
(引用自2楼)
转一圈,0.5L的油。
页:
[1]