esp32使用光敏传感器实现发光二极管灯的亮暗线性调节
发光二极管灯接ESP32的18口和GND。
光敏传感器VCC接3.3,GND接GND吗不接,AO接35口,注意这里不需要接DO,如果接DO,无法实现线性调光,只返回两个固定值。
int freq=5000//频率
(同Internationalorganizations)国际组织通道=0;//通道
(同Internationalorganizations)国际组织分辨率=8;//分辨率
const int led=18
const int gm=35/光敏电阻引脚
内部过滤器_值
无效设置()
{
连环杀手。begin(115200);
//设置光敏电阻输入
pinMode(gm,INPUT);//光敏电阻
randomSeed(模拟读数(全球机制));
ledcSetup(通道、频率、分辨率);//设置通道
led碎裂(led,通道);//将通道与对应的引脚连接
}
#定义过滤器_N 20
int Filter(){ 0
int I;
int filter _ sum=0;
int filter_max,filter _ min
int FIlter _ buf[FIlter _ N];
for(I=0;I FILTER _ N;I){ 0
filter _ buf[I]=模拟读数(GM);
延迟(1);
}
filter _ max=filter _ buf[0];
filter _ min=filter _ buf[0];
filter _ sum=filter _ buf[0];
for(I=FILTER _ N-1;I 0;I-){ 0
if(filter_buf[i] filter_max)
filter _ max=filter _ buf[I];
否则if(filter_buf[i] filter_min)
filter _ min=filter _ buf[I];
filter _ sum=filter _ sum filter _ buf[I];
filter _ buf[I]=filter _ buf[I-1];
}
I=FILTER _ N-2;
filter _ sum=filter _ sum-filter _ max-filter _ min I/2;//i/2的目的是为了四舍五入
filter _ sum=filter _ sum/I;
返回过滤器_总和
}
无效循环()
{
过滤器_值=过滤器();
ledcWrite(0,映射(Filter_Value,0,4095,0,255))。
}
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/81988.html