前言
本人刚接触单片机开发,原专业为机械自动化,因为传统机械行业的不景气,想要转为从事电子行业。之前有一点C语言基础,还学过一点点C#,但是也就一点点,可谓小白学习之路。希望能够给大家一点借鉴。
1、简介
ESP8266EX 集成了 32 位 Tensilica 处理器L106 32 位 RISC 处理器,CPU 时钟速度最高可达 160 MHz
具体参数可以去乐鑫官网查看
官网地址:乐鑫科技
2、模组
ESP-01S
ESP-07S
’
’
’
ESP-12F
说明:模组之间的区别在哪?
不同系列之间的差别更多的是封装工艺以及Flash闪存大小之间的不同。flash是外接在ESP8266芯片外面通过SPI与8266通讯。
![ESP12F的PCB原理图](https://img-blog.csdnimg.cn/20200425193010341.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L25vb2RsZXMxOTk2,size_16,color_FFFFFF,t_70)
![ESP12F](https://img-blog.csdnimg.cn/2020042519301034.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L25vb2RsZXMxOTk2,size_16,color_FFFFFF,t_70)
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200425221131403.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L25vb2RsZXMxOTk2,size_16,color_FFFFFF,t_70#pic_center)
我们在学习前期可以先用别人做好的NodeMcu开发板学习,后期再直接用ESP12F。
3、NodeMcu开发板
通过淘宝购买了ESP8266 nodeMcu开发板(28元)
SD1306显示屏(7元)时钟模块(3元)随便购买即可
![NodeMcu](https://img-blog.csdnimg.cn/20200425193223392.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L25vb2RsZXMxOTk2,size_16,color_FFFFFF,t_70#pic_center)
说明:
1、NodeMcu上的CLK SD0 CMD SD1 SD2引脚用于连接外接Flash芯片,悬空即可。
2、不同颜色代表不同功能。基本留给我们的大约11个GPIO能够使用.其中的两个通常被保留用于TXD和RXD以便用于串口通信。
D9(RX)————————GPIO3
D10(TX)————————GPIO1
![NodeMcuPCN原理图](https://img-blog.csdnimg.cn/20200425193303496.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L25vb2RsZXMxOTk2,size_16,color_FFFFFF,t_70#pic_center)
GPIO引脚对应于ESP12F上的引脚,D字母开头的引脚为NodeMcu标记的引脚,关于其关系可与看我
文章:ESP8266 NodeMcu GPIO和D转换
4、ESP8266 arduino 程序结构
demo(演示):测试ESP8266
void setup()
{
Serial.begin(115200);
}
void loop()
{
pinMode(D1,OUTPUT);
digitalWrite(D1,HIGH);
}
5、数字I/O口
3、被留下的通用I/O口为D0-D8(D3除外)
![在这里插入图片描述](https://img-blog.csdnimg.cn/2020042522192017.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L25vb2RsZXMxOTk2,size_16,color_FFFFFF,t_70#pic_center)
Void setup()
{
pinmode(D1,output)
}
void loop()
{
digitalWrite(D1,low);
delay(1000);
digitalwrite(D1.high);
delay(1000);
}
6、中断功能
attachinterrupt()
detachinterrupt()
除了D0/GPIO16,IO0-8都可以
attachinterrupt(pin,function,mode)
detachInterrupt(pin)
digitalPinToInterrupt(pin)
7、PWM
PWM(Pluse width Modulation,脉宽调制)是在保持波的频率不变的同时改变脉宽的技术,基本上数字I/O口都可作为PWM引脚(除了D0D3)
NodeMCU PWM有关的Arduino函数
analogwrite(pin,val)
analogWriteRange(new_range);
new_range:新的PWMrange数值
anologWriteFraquency(new_Fraquency)
(new_Fraquency:新的PWM频率,默认为100-1K
PWM例程:呼吸灯
void setup() {
pinMode(D1,OUTPUT);
analogWrite(D1,0);
}
void loop() {
for(int val=0;val<1024;val++)
{
analogWrite(D1,val);
delay(2);
}
for(int val=1023;val>=0;val--)
{
analogWrite(D1,val);
delay(2);
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)