猫史档案馆


【滑稽天团讲堂之硬件技术】第一章:基础——输入输出

用户:祖星祖星查看:15 回复:12 评论:15 创建时间:2020-04-26T17:32:20


大家好,这里是滑稽天团讲堂,我是祖星,今天我们再来了解一下管脚的输入与输出

首先呢我们先来认识一下ESP32的管脚分布

center_image

其中的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);
  }
}
}

这样一个慢慢变暗又再次变亮的小灯就做好了

严禁抄袭


回复

上一页1 页 / 共 1下一页
祖星祖星

咳咳

点赞1


评论


猫悟淡猫悟淡

沙发

点赞0


评论


猫悟淡猫悟淡

板凳

点赞0


评论


猫悟淡猫悟淡

地板

点赞0


评论


猫悟淡猫悟淡

nb

点赞0


评论


猫悟淡猫悟淡

顶顶

点赞0


评论


猫悟淡猫悟淡

顶顶

点赞0


评论


星空之忆星空之忆

C++?

点赞0


评论


33aaron33aaron

顶!我Arduino爱好者又来了

点赞0


评论


祖星祖星

唉,这个浏览量3个月才这点…………下一期怕是出不来了emotion_编程猫_冷漠

点赞0


评论


23K不纯金滑稽23K不纯金滑稽

挖一挖

点赞2


评论


无敌版滑稽战神无敌版滑稽战神

沙发

点赞0


评论