Pegasus读取传感器AD的值

 

这篇文章用的是 MQ3传感器,FSR电阻式薄膜压力传感器,

VCC-->3.3

DO-->开发板

当检测到有压力或者酒精时, 输出电压为0.3V左右。

 Sensor.c

#include <stdio.h>
#include <stdlib.h>
#include <memory.h>

#include "ohos_init.h"
#include "cmsis_os2.h"
#include "iot_gpio.h"
#include "iot_errno.h"

#include "iot_adc.h"
#include "hi_time.h"


#define GPIO11 11
#define GPIO12 12
#define TASK_STAK_SIZE    (1024*10)

void get_Sensor_value (void)
{
    float val_mq3,val_fsr;
    unsigned short data_MQ3 = 0,data_fsr = 0; 
    unsigned int ret=0,qut=0;
    // ADC_Channal_2(gpio5)  自动识别模式  CNcomment:4次平均算法模式 CNend
    ret = AdcRead(IOT_ADC_CHANNEL_5, &data_MQ3,
                               IOT_ADC_EQU_MODEL_4, IOT_ADC_CUR_BAIS_DEFAULT, 0xff);
   if (ret != HI_ERR_SUCCESS) 
    {
        printf("ADC_5 Read Fail\n");
    }
    val_mq3 = data_MQ3 * 1.8 *4 / 4096; /* --- vlt * 1.8* 4 / 4096.0 ---为将码字转换为电压 */
   printf("MQ3_Value is %lf\r\n", val_mq3);

   qut = AdcRead(IOT_ADC_CHANNEL_0, &data_fsr, IOT_ADC_EQU_MODEL_4, IOT_ADC_CUR_BAIS_DEFAULT,  0xF0);
    if (qut != HI_ERR_SUCCESS) 
    {
        printf("ADC_fsr Read Fail\n");
    }
    val_fsr = (float)(data_fsr * 1.8 *4 / 4096); /* --- vlt * 1.8* 4 / 4096.0 ---为将码字转换为电压 */
    printf("fsr_Value is %lf\r\n", val_fsr);
  
}


void SensorTask(void* parame)
{
    (void)parame;
    printf("start test Sensor\r\n");
    unsigned int time = 1000;
    while (1) {
        hi_sleep(time);
       get_Sensor_value();
       
    }
}


static void SensorDemo(void)
{
    osThreadAttr_t attr;

    attr.name = "SensorTask";
    attr.attr_bits = 0U;
    attr.cb_mem = NULL;
    attr.cb_size = 0U;
    attr.stack_mem = NULL;
    attr.stack_size = TASK_STAK_SIZE;
    attr.priority = osPriorityNormal;

    if (osThreadNew(SensorTask, NULL, &attr) == NULL) {
        printf("[SensorDemo] Falied to create SensorTask!\n");
    }
}

APP_FEATURE_INIT(SensorDemo);

build.gn 

static_library("Sensor_demo") {
  sources = [
    "Sensor.c",
    "hal_iot_adc.c",
  ]

  include_dirs = [
    "//utils/native/lite/include",
    "//kernel/liteos_m/kal/cmsis",
    "//base/iot_hardware/peripheral/interfaces/kits",
  ]
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值