用户:
祖星查看:15 回复:12 评论:15 创建时间:2020-04-26T17:32:20
大家好,这里是滑稽天团讲堂,我是祖星,今天我们再来了解一下管脚的输入与输出
首先呢我们先来认识一下ESP32的管脚分布
其中的5V和3.3V是供电,GND是接地,剩下的绝大部分都是GPIO数字模拟通用引脚
首先我们先来讲一下数字引脚的输入与输出
首先我们要学习三中新的函数:pinMode(pin,mode);
digitalWrite(pin,value);
digitalRead(pin);
顾名思义,这三个函数分别是模式设置函数(初始化函数)、写入函数、读取函数
pin代表的是管脚号,value代表的是数值,不要忘记分号!
const int SPin=16,LPin=4;//定义变量
void setup()
{
pinMode(SPin,INPUT_PULLDOWN); //模式设置为内部下拉输入
pinMode(LPin,OUTPUT);
}
void loop()
{
if(digitalRead(SPin)==1) digitalwrite(LPin,1);//也可以为HIGH
else digitalwrite(LPin,0);//~LOW
}
一个简单地LED灯按键控制程序就做好了,SPin是按钮的管脚,LPin是LED灯的管脚,const是指定义的为常量
然后我们来讲一下模拟量的输入输出
模拟量的输出方式就比较特殊了,一共有三种方式:LEDC、SigmaDelta、DAC
首先讲LEDC:LEDC是基于PWM的16通道模拟输入函数集,其中的成员函数有:
ledcSetup(td,pl,bitnum);
ledcAttachPin(pin,td);
ledcDetachPin(pin);
ledcWrite(td,bitnum);
ledcWriteTone(td,pl);
ledcWriteNote(td,note,octava);
td:PWM通道(0~15共16个)
pl:PWM频率
bitnum:占空比(或分辨率)
首先第一个呢是通道参数设置函数,可以设定通道,频率,分辨率等信息
第二个函数的作用是讲PWM信号传递到GPIO引脚上,第三个函数则是取消引脚的PWM输出
第四个函数可以指定占空比,也就是分辨率为8下的0~255之间的一个数,就是它来进行模拟输入的
第五、第六函数是音乐封装函数,用来输出音乐
const int LPin=2,pl=5000,td=0,num=8;
void setup()
{
ledcSetup(td,pl,num);
ledcAttachPin(LPin,td);
}
void loop()
{
for(int i=0;i<=255;i+=5)
{
ledcWrite(td,i);
delay(50);//延迟函数
}
for(int i=255;i>=0;i-=5)
{
ledcWrite(td,i);
delay(50);
}
}
}
这样一个慢慢变暗又再次变亮的小灯就做好了
严禁抄袭