猫史档案馆


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

用户:祖星祖星查看:529 回复: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


评论

应该是Arduino吧

那不就是C++嘛。

……?不是呀,硬件开发……?

代码是java代码,C++不是这个样

因该不是Arduino(我仔细看了一遍,板子和NANO和UNO都不一样,但代码是支持Arduino的)


33aaron33aaron

顶!我Arduino爱好者又来了

点赞0


评论

Arduino是什么

哈哈哈哈哈哈哈哈

不是一个啥主板吗……?


祖星祖星

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

点赞0


评论

祖星NB!

气抖冷!!!!

祖星!!NB!!

祖星nb


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

挖一挖

点赞2


评论


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

沙发

点赞0


评论

《 滑 稽 天 团 》

awa