光敏电阻和人体红外获取数据变化的疑问

请教一下大家
AdcRead(WIFI_IOT_ADC_CHANNEL_4,&data,WIFI_IOT_ADC_EQU_MODEL_4,WIFI_IOT_ADC_CUR_BAIS_DEFAULT,0)
1、为什么这个函数获取到的数据,不会逐渐变化,data数据要么116~119段 要不就是到1825~1831段。
好像只有2个数据档位,强和弱
人体红外和光敏电阻也是一样的现象,也不会随着光线逐渐变亮,数据逐渐变化

2、人体红外传感,是我人要动了才会探测的到吗?因为我一动数据就跳到1800左右。

希望能指导一下!

 

光敏电阻
人体红外
鸿蒙
AdcRead数据变化
2021-03-24 17:19:21
浏览
收藏 0
回答 2
待解决
回答 2
按赞同
/
按时间
红叶亦知秋
1

下面这段代码是用于炫彩灯板上面的红外感应器的功能,当人体靠近,红外感应感受到了,灯光变亮,未感受到变暗,楼主可以参考下。

#include<stdio.h>

#include<unistd.h>

 

#include "ohos_init.h"

#include "cmsis_os2.h"

#include "wifiiot_gpio.h"

#include "wifiiot_gpio_ex.h"

#include "wifiiot_pwm.h"

#include "wifiiot_adc.h"

#include "wifiiot_errno.h"

 

#define PWM_FREQ_DIVITION 64000

#define ADC_RESOLUTION 4996

 

static void jltfcloudcom(void *arg)

{

    (void)arg;

    //由于炫彩灯板中红色led灯的GIPO为10,这里初始化控制GPIO10的控制方式为PWM模式

    IoSetFunc(WIFI_IOT_IO_NAME_GPIO_10,WIFI_IOT_IO_FUNC_GPIO_10_PWM1_OUT);

 

    //调用函数初始化PWM模式

    PwmInit(WIFI_IOT_PWM_PORT_PWM1);

    

   while(1){

       unsigned short data = 0;

       unsigned short duty = 0;

       //使用AdcRead函数对3通道进行ADC信号读取,读取到的结果存储在data中

       if(AdcRead(WIFI_IOT_ADC_CHANNEL_3,&data,WIFI_IOT_ADC_EQU_MODEL_4,WIFI_IOT_ADC_CUR_BAIS_DEFAULT,0)==WIFI_IOT_SUCCESS)

       {

           printf("data:%d",data);

           duty = PWM_FREQ_DIVITION *(unsigned int)data / ADC_RESOLUTION;

           //128 1820

            //duty = PWM_FREQ_DIVITION * (1948-(unsigned int)data) / ADC_RESOLUTION;

 

       }

       //PWM模式开启对红色led灯的控制

       PwmStart(WIFI_IOT_PWM_PORT_PWM1,duty,PWM_FREQ_DIVITION);

       usleep(10000);

       //PWM模式关闭对红色led灯的控制

       PwmStop(WIFI_IOT_PWM_PORT_PWM1);

 

   }

}

static void jltfcloudcn(void)

{

    osThreadAttr_t attr;

    GpioInit();

    attr.name="jltfcloudcom";

    attr.attr_bits=0U;

    attr.cb_mem=NULL;

    attr.cb_size=0U;

    attr.stack_mem=NULL;

    attr.stack_size=4096;

    attr.priority=osPriorityNormal;

 

    if(osThreadNew(jltfcloudcom,NULL,&attr) == NULL){

        printf("[jltfcloudcn] Failed to create jltfcloudcom!\n");

    }

 

}

APP_FEATURE_INIT(jltfcloudcn);
分享
微博
QQ
微信
回复
2021-03-25 13:48:11
重操旧业51

什么样的数据范围,才算是感应到了人体红外?

分享
微博
QQ
微信
回复
2021-03-25 11:47:07
相关问题
HarmonyOS @ObjectLink@State相关疑问
174浏览 • 1回复 待解决
红外线功能没用了吗?
5536浏览 • 1回复 待解决
获取cpu相关数据imei号
1854浏览 • 1回复 待解决
ssd1306 oled屏显示ascii字符汉字疑问
12179浏览 • 1回复 待解决
如何获取缓存数据清理缓存?
267浏览 • 1回复 待解决
HarmonyOS数据数据变化是否可以监听
385浏览 • 1回复 待解决
如何获取设备横竖屏状态变化通知
1883浏览 • 1回复 待解决
HarmonyOS 企业证书疑问
48浏览 • 1回复 待解决
mysql varchar类型疑问
2212浏览 • 1回复 待解决
HarmonyOS关于RichText疑问
671浏览 • 1回复 待解决
HarmonyOS 关于deliveryWithInstall疑问
510浏览 • 1回复 待解决
关于鸿蒙分布式数据库key疑问
5730浏览 • 1回复 待解决
关于鸿蒙应用开发疑问?
5356浏览 • 1回复 待解决
HSP命名路由跳转疑问
163浏览 • 1回复 待解决
关于Wearable开发几个疑问
7356浏览 • 2回复 待解决
HarmonyOS 关于手动签名疑问
370浏览 • 1回复 待解决