客服热线:199 3776 5559

深圳盛思瑞创科技有限公司

普通会员

深圳盛思瑞创科技有限公司

普通会员

  • 企业类型:

    企业单位 (制造商)

  • 经营模式:

    制造商

  • 荣誉认证:

  • 保  证  金:

    已缴纳 0.00

  • 注册年份:

    2020

  • 主     营:

  • 地     址:

    广东深圳龙岗区深圳市龙岗区布龙路529号金民安写字楼13层13D

产品分类
  • 暂无分类
站内搜索
 
友情链接
  • 暂无链接
首页 > 供应产品 > RM3100智能交通地磁传感器PNI 13101 13156 13104
RM3100智能交通地磁传感器PNI 13101 13156 13104
点击图片查看原图
产品: 浏览次数:885RM3100智能交通地磁传感器PNI 13101 13156 13104 
品牌: PNI
单价: 面议
最小起订量:
供货总量: 5000 件
发货期限: 自买家付款之日起 2 天内发货
有效期至: 长期有效
最后更新: 2022-03-31 14:43
  询价
详细信息
加工定制 品牌PNI
型号RM3100 种类多圈
材料玻璃釉膜 性能功率
货号RM3100 用途***
阻值调节方式旋转式 阻值变化方式Z式(对数式)
标称阻值RM3100 额定功率0.25W
阻值允许偏差±10% 滑动噪声RM3100V
分辨率RM3100% 零位电阻RM3100Ω
接触电阻RM3100Ω 绝缘电阻RM3100MΩ
符合度RM3100 是否跨境货源
展开

RM3100智能交通地磁传感器PNI 13101 13156 13104

PNI sensor地磁传感器RM3100对车辆存在性检测原理


#ifndef MAG3110_H
#define MAG3110_H

#ifdef __cplusplus
extern "C"
{
#endif


#include "stdbool.h"
#include "stdint.h"


#define uchar unsigned char
#define uint unsigned int
#define byte unsigned char
#define word unsigned int
#define byte unsigned char                      

typedef union
{
  byte Byte;
  struct {
    byte _0          :1;
    byte _1          :1;
    byte _2          :1;
    byte _3          :1;
    byte _4          :1;
    byte _5          :1;
    byte _6          :1;
    byte _7          :1;
  } Bit;
} BIT_FIELD;



typedef union
{
  word mword;
  struct
  {
    byte hi;
    byte lo;
  } mbyte;
} tword;


enum
{
  MAG3110_STATUS_00 = 0,          // 0x00
  MAG3110_OUT_X_MSB,              // 0x01
  MAG3110_OUT_X_LSB,              // 0x02
  MAG3110_OUT_Y_MSB,              // 0x03
  MAG3110_OUT_Y_LSB,              // 0x04
  MAG3110_OUT_Z_MSB,              // 0x05
  MAG3110_OUT_Z_LSB,              // 0x06
  MAG3110_WHO_AM_I,               // 0x07
  MAG3110_SYSMOD,                 // 0x08
  MAG3110_OFF_X_MSB,              // 0x09
  MAG3110_OFF_X_LSB,              // 0x0A
  MAG3110_OFF_Y_MSB,              // 0x0B
  MAG3110_OFF_Y_LSB,              // 0x0C
  MAG3110_OFF_Z_MSB,              // 0x0D
  MAG3110_OFF_Z_LSB,              // 0x0E
  MAG3110_DIE_TEMP,               // 0x0f
  MAG3110_CTRL_REG1,              // 0x10
  MAG3110_CTRL_REG2,              // 0x11
 
};

//mag3110状态
typedef enum{
  SENSOR_INIT = 0,
  NO_CAR_DETECTED,
  COUNT_HIGH,
  CAR_DETECTED,
  COUNT_LOW,
  SENSOR_ERROR,
  SENSOR_UNINIT,
}mag3110_state_t;

//地磁状态,少了中间过程
typedef enum{
  INIT = 0,
  NO_CAR,
  CAR,
  ERROR,
  UNINIT,
}sensor_state_t;

typedef enum
{
  GEO_STATE_REPORT_JURA = 1,
  GEO_STATE_REPORT_BLE,
  GEO_RESET,
  GEO_CALIBRATION,
  GEO_THRESHOLD_REQUEST,
  GEO_THRESHOLD_REPORT,
  GEO_THRESHOLD_SET,  
  GEO_DETEC_INTERVAL_REQUEST,
  GEO_DETEC_INTERVAL_REPORT,
  GEO_DETEC_INTERVAL_SET,
}comand_type_t;

typedef struct sensor_config{
   int32_t x_offset;
   int32_t y_offset;
   int32_t z_offset;
   int32_t low_threshold;
   int32_t high_threshold;   
   int32_t detect_interval;
   uint8_t crc;
}sensor_config_t;

typedef struct sensor_infor {
    uint8_t baterry;
    uint8_t sensor_state;
    uint8_t mif;//magnetic_interference
    uint8_t parking_done;//0表示稳定,其他不稳定
}sensor_infor_t;

typedef struct sample_data{
   int16_t x;
   int16_t y;   
   int16_t z;
   uint32_t d;
}sample_data_t;

#define SAMPLE_WINDOW             1
#define DETECT_INTERVAL           3
#define LOW_THESHOLD              500
#define HIGH_THESHOLD             5000
#define MIF_THESHOLD              100000
#define CALIBRATION_WINDOW        3
#define MAG3110_IIC_ADDRESS       0x1C
#define PARKING_SAMPLE            3


#define STATUS_00_REG         0x00
//
#define ZYXOW_BIT             Bit._7
#define ZOW_BIT               Bit._6
#define YOR_BIT               Bit._5
#define XOR_BIT               Bit._4
#define ZYXDR_BIT             Bit._3
#define ZDR_BIT               Bit._2
#define YDR_BIT               Bit._1
#define XDR_BIT               Bit._0
//
#define ZYXOW_MASK            0x80
#define ZOW_MASK              0x40
#define YOR_MASK              0x20
#define XOR_MASK              0x10
#define ZYXDR_MASK            0x08
#define ZDR_MASK              0x04
#define YDR_MASK              0x02
#define XDR_MASK              0x01


#define OUT_X_MSB_REG         0x01
#define OUT_X_LSB_REG         0x02
#define OUT_Y_MSB_REG         0x03
#define OUT_Y_LSB_REG         0x04
#define OUT_Z_MSB_REG         0x05
#define OUT_Z_LSB_REG         0x06   


#define WHO_AM_I_REG          0x07

#define MAG3110Q_ID           0xC4    


#define SYSMOD_REG            0x08
//   
#define SYSMOD1_BIT           Bit._1
#define SYSMOD0_BIT           Bit._0
//
#define SYSMOD1_MASK          0x02
#define SYSMOD0_MASK          0x01
#define SYSMOD_MASK           0x03
#define STANDBY_MASK          0x00
#define ACTIVE_MASK           0x01
#define CORRECT_MASK          0x02


#define OFF_X_MSB             0x09
#define OFF_X_LSB             0x0A
#define OFF_Y_MSB             0x0B
#define OFF_Y_LSB             0x0C
#define OFF_Z_MSB             0x0D
#define OFF_Z_LSB             0x0E

#define DIE_TEMP              0x0F



#define CTRL_REG1             0x10
//
#define DR2_BIT               Bit._7
#define DR1_BIT               Bit._6
#define DR0_BIT               Bit._5
#define OS1_BIT               Bit._4
#define OS0_BIT               Bit._3
#define FR_BIT                Bit._2
#define TM_BIT                Bit._1
#define AC_BIT                Bit._0
//
#define DR2_MASK              0x80
#define DR1_MASK              0x40
#define DR0_MASK              0x20
#define OS1_MASK              0x10
#define OS0_MASK              0x08
#define FR_MASK               0x04
#define TM_MASK               0x02
#define AC_MASK               0x01

//
#define DATA_RATE_125US       0x00
#define DATA_RATE_250US       DR0_MASK
#define DATA_RATE_50MS        DR1_MASK
#define DATA_RATE_100MS       DR1_MASK+DR0_MASK
#define DATA_RATE_200MS       DR2_MASK
#define DATA_RATE_800MS       DR2_MASK+DR0_MASK
#define DATA_RATE_1600MS      DR2_MASK+DR1_MASK
#define DATA_RATE_6400MS      DR2_MASK+DR1_MASK+DR0_MASK


#define CTRL_REG2             0x11
//
#define AUTO_MRST_EN_BIT      Bit._7
#define RAW_BIT               Bit._5
#define MAG_RST_BIT           Bit._4  
//
#define AUTO_MRST_EN_MASK     0x80
#define RAW_MASK              0x20
#define MAG_RST_MASK          0x10


extern bool mag3110_init(bool hi_speed);
extern void mag3110_start(void);
extern void restart_mag3110_timer(bool hi_speed);
extern void mag3110_event_handler(void);
extern void mag3110_recalibration(void);
extern void mag3110_sample_task(void);
extern bool get_mag3110_config(void);
extern bool set_mag3110_config(void);



#ifdef __cplusplus
}
#endif

#endif

  地球磁场的强度在0.5 至0.6 高斯,地球磁场在很广阔的区域内(大约几公里)其强度是一定的。当一个铁磁性物体,如汽车,置身于磁场中,它会使磁场扰动,如图1,此时,放置于其附件的地磁传感能测量出地磁场强度的变化,从而对车辆的存在性进行判断。



  汽车对地磁场的扰动

 对于车辆的存在和方向检测,不需要象对车辆进行分类时那么详细的信息,所以只需将磁传感器放置在路边,沿着被检测的车道即可,而不需要在车道上挖坑埋入磁传感器。三轴磁传感器放在距地面1英尺高的位置,X、Y、Z轴方向定义如图2所示。


  车辆与磁传感器初始化设置


  沿着向上方向的Z轴磁场可用来检测车辆的存在,如图3,轿车经过时Z轴的曲线,该曲线的特点是: 当传感器与车辆平行时出现峰值。当在车辆距传感器1英尺的情形下,对该曲线进行平滑处理后,可用来指示车辆的存在。通过建立合适的阀值,可以滤掉旁边车道的车辆或远距离车辆带来的干扰信号。


  轿车经过时Z轴磁传感器的曲线图


  除了上述沿着向上方向的Z轴检测到手磁场变化可用来检测车辆的存在,检测车辆存在的另一方法是观察磁场变化的大小,也就是计算出整个地磁场在汽车经过时的磁场强度变化情况,从面判断出有无汽车经过: 磁场的大小=(X^2+Y^2+Z^2)^1/2

  图4显示了磁传感器距车辆1 英尺、5 英尺、10 英尺和21 英尺时,一辆轿车通过所产生的曲线。在不同距离下,Z轴的曲线形状很相似,但是信号强度却大不相同。从1英尺到5英尺,信号强度衰减得非常快。距离越远,数值快速衰减。当传感器只检测单一车道车辆,而忽略其他车道车辆的存在时,这种特点非常有用。


  轿车经过时磁场强度的变化曲线

  磁传感器在1 至4 英尺的路边检测距离范围内可以工作得很好。通过观察磁场的变化,可以确定通过车辆的存在。这种检测方法的好处是不用将传感器及相关电路埋在地底,磁传感器也可以安装在铝制外壳中。

 

 

询价单
0条  相关评论
在线客服

公司咨询电话

022-03281518
(9:30-17:30)

扫一扫进入公司官网移动站

扫一扫有惊喜