今天学习一下触摸按键和加速度计
电容式触摸按键使用的是4键触摸TTP224芯片
也算是生活中常用的模块了
具体原理是简单分析来看是体的寄生电容将耦合到静态电容上,使按键的最终电容值变大,单片机设置为浮空输入,按键按下,IC判断充放电时间,将数据传给单片机,关于灵敏度问题,手册有详细介绍
1.在PCB上 IC引脚越短越好
没跟感应线不能平衡交叉
我们明显看到张工布的PCB上IC放在下面 而4个触摸按键对称分布在四个位置

2.覆盖在PCB上的不能有金属成分或其他导电材料
焊盘最好是圆形正方形,避免尖端放电

3.电容C23C25C27C29时可以调节它的灵敏度的在图上我们可以看到他取了一般值50pF

3-2.png


3-5.png

关于加速度计的学习
4-5.png
首先IIC的函数不再分析
主要是结合手册分析一下关于程序里寄存器的问题
先从初始化函数里的基本函数分析
u8_t ReadReg(u8_t Reg, u8_t* Data)
  • {
  •   //To be completed with either I2c or SPI reading function
  •   //i.e. *Data = SPI_Mems_Read_Reg( Reg );
  •   *Data = ReadI2C(Reg , 0x32);
  •   return 1;
  • }
  • 复制代码
    查阅手册可得到结合原理图得知
    1.
    4-6.png
    2.
    4-2.png
    意思是第7脚默认上拉这样就知道了0X32   WriteReg函数也是一样的
    status_t SetODR(ODR_t ov)
  • {
  •   u8_t value;
  •   if( !ReadReg(CTRL_REG1, &value) )
  •     return MEMS_ERROR;
  •   value &= 0x0f;
  •   value |= ov<<ODR_BIT;
  •   if( !WriteReg(CTRL_REG1, value) )
  •     return MEMS_ERROR;
  •   return MEMS_SUCCESS;
  • }
  • 复制代码

    5-1.png
    5-2.png
    意思是把value写入到CTRL_REG1寄存器中并把X,Y,Z使能LP设置为低功耗模式
    函数初始化中
    response = SetODR(ODR_50Hz);
    复制代码
    ODR_50Hz是0X04 即设置为50HZ
    SetFullScale以及接下来的寄存器操作大家可以试着自己分析一下
    个人感觉比较详细了,传感器原理另外的几位也有涉及,在此不再重复

    如果有错误,欢迎指正