Funpack第七期 DM164137 外接气压传感器
Funpack第七期 DM164137 外接气压传感器,测试计算大气压力及海拔
标签
嵌入式系统
cjmf
更新2021-04-06
999

使用设备

  • DM164137

  • NPA201

功能实现

  1. 串口功能通过MCC自带的代码生成功能生成。可以直接重定向 printfUART

  2. 与 NPA201 通讯采用 IIC 协议

    Foae5ueZQFPbPylZTTYCuKNDdUnu

发送指令 AC 即可获得返回温度和压力,通过公式换算海拔。

FiFIF4KS7LinzvBcru2kgI9Hgf16

Fv0lbsSEdispHl5I8qJxPNAZj8bm

  1. UART 通过 CH340G + Python 接收。这段在视频中有,这里不再重复赘述。

 

代码片段

 

 while (1) {
         DELAY_microseconds(500);
         sampleData();
         printf("Temp:%d\n", sensor_data.temperature);
         printf("Altitude:%d\n", sensor_data.altitude);
         printf("Pressure:%d\n", sensor_data.pressure);
    }

 

 

 uint8_t sampleData(void) {
     uint8_t data[5] = {};
     uint8_t cmd = ALTITUDE4_SENS_DATA;
     uint16_t temp_data;
     float temp_holder;
     float pressure;
     float temp;
     float altitude;
     i2c_writeNBytes(ALTITUDE4_SLAVE_ADDRESS, &cmd, 1);
     DELAY_milliseconds(100);
     i2c_readNBytes(ALTITUDE4_SLAVE_ADDRESS, &data, sizeof (data));
     // pressure
     temp_data = data[ 1 ];
     temp_data <<= 8;
     temp_data |= data[ 2 ];
 ​
     temp_holder = temp_data;
     temp_holder /= 65535;
     temp_holder *= 1000;
     temp_holder += 260;
     pressure = temp_holder;
 ​
     // temp
     temp_data = data[ 3 ];
     temp_data <<= 8;
     temp_data |= data[ 4 ];
 ​
     temp_holder = temp_data;
     temp_holder /= 65535;
     temp_holder *= 125;
     temp_holder -= 40;
     temp = temp_holder;
 ​
     // altitude
     temp_holder = 1013.25f / pressure;
     altitude = pow(temp_holder, 0.19022256);
     altitude -= 1;
     temp_holder = temp + 273.15f;
     altitude *= temp_holder;
     altitude /= 0.0065;
 ​
     sensor_data.altitude = (int) altitude;
     sensor_data.pressure = (int) pressure;
     sensor_data.temperature = (int) temp;
     return data[0];
 }

 

对本活动的心得体会

  1. 产品比较新颖,如果没有这次活动,不一定会接触这个方面的东西。

  2. MCC 总的来说还行,相比之下还是有些落后于时代。

  3. 这个传感器并没有适配这块板子,所以要自己去写通讯和转换。由于这个板子的 IIC 通讯比较特殊,所以也花了一定时间。

附件下载
altitude.X.zip
团队介绍
中国计量大学
团队成员
cjmf
评论
0 / 100
查看更多
目录
硬禾服务号
关注最新动态
0512-67862536
info@eetree.cn
江苏省苏州市苏州工业园区新平街388号腾飞创新园A2幢815室
苏州硬禾信息科技有限公司
Copyright © 2024 苏州硬禾信息科技有限公司 All Rights Reserved 苏ICP备19040198号