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

请教一下大家
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);
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
  • 51.
  • 52.
  • 53.
  • 54.
  • 55.
  • 56.
  • 57.
  • 58.
  • 59.
  • 60.
  • 61.
  • 62.
  • 63.
  • 64.
  • 65.
  • 66.
  • 67.
  • 68.
  • 69.
  • 70.
  • 71.
  • 72.
  • 73.
  • 74.
  • 75.
  • 76.
  • 77.
  • 78.
  • 79.
  • 80.
  • 81.
  • 82.
  • 83.
  • 84.
  • 85.
  • 86.
  • 87.
  • 88.
  • 89.
  • 90.
  • 91.
  • 92.
  • 93.
  • 94.
  • 95.
  • 96.
  • 97.
  • 98.
  • 99.
  • 100.
  • 101.
  • 102.
  • 103.
  • 104.
  • 105.
  • 106.
  • 107.
  • 108.
  • 109.
  • 110.
  • 111.
  • 112.
  • 113.
  • 114.
  • 115.
  • 116.
  • 117.
  • 118.
  • 119.
  • 120.
  • 121.
分享
微博
QQ
微信
回复
2021-03-25 13:48:11
重操旧业51

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

分享
微博
QQ
微信
回复
2021-03-25 11:47:07
相关问题
HarmonyOS 怎么获取watch变化之前数据
513浏览 • 1回复 待解决
HarmonyOS @ObjectLink@State相关疑问
996浏览 • 1回复 待解决
获取cpu相关数据imei号
2917浏览 • 1回复 待解决
ssd1306 oled屏显示ascii字符汉字疑问
13572浏览 • 1回复 待解决
如何获取缓存数据清理缓存?
1265浏览 • 1回复 待解决
红外线功能没用了吗?
6442浏览 • 1回复 待解决
HarmonyOS page如何监听数据变化
833浏览 • 1回复 待解决
HarmonyOS 装饰器数据变化监听
587浏览 • 1回复 待解决
mysql varchar类型疑问
3146浏览 • 1回复 待解决
HarmonyOS soundPool使用疑问
790浏览 • 1回复 待解决
HarmonyOS关于RichText疑问
1834浏览 • 1回复 待解决
HarmonyOS 关于deliveryWithInstall疑问
1693浏览 • 1回复 待解决
HarmonyOS数据数据变化是否可以监听
1325浏览 • 1回复 待解决
如何获取设备横竖屏状态变化通知
2670浏览 • 1回复 待解决
HarmonyOS getRawFileContentSync 疑问
1052浏览 • 1回复 待解决
HarmonyOS 关于手动签名疑问
1533浏览 • 1回复 待解决
关于鸿蒙分布式数据库key疑问
6655浏览 • 1回复 待解决
HarmonyOS 企业证书疑问
878浏览 • 1回复 待解决
HarmonyOS 关于混淆疑问
1009浏览 • 1回复 待解决