一、前言:
这是我的第一篇CSDN博客,从这学期开学开始接触单片机,期间从C51,到Arduino,再到ESP8266以及现在刚刚开始学期的32,已经整整一个学期。虽然不敢说多么精通,但还是希望通过一些博客来发表我的感想和实验的经历。
在这个系列中,我将用尽量简单易懂的语言,从最基础的点亮LED开始,到使用ESP8266+OLED屏播放Bad apple。以下为实验最终效果–>点此前往B站~.(欢迎素质三连嘻嘻~)。
二、实验设备简介以及环境搭载
- ESP8266 NodeMCU简介:先贴张图
这就是我们要用到的ESPB266 NodeMCU开发板,ESP8266具有普通单片机的串口调试,PWM 调控,GPIO控制I2C总线控制的基础功能,带有ESP8266WiFi模块以及稳压电路,CH340等开发板基本操作,可以简单理解为加了WiFi的单片机开发板。
为什么选择这款开发板:一开始是想用Arduino UNO做,可是Arduino的小的可怜的内存,仅仅存了30帧就啃不动了。面对总共1740帧、1113600字节的点阵数据,Arduino显然是不够用,而NodeMCU光SPIFFS就有3M的存储空间可以支配,并且在Arduino IDE搭载ESP8266开发插件后,代码几乎与Arduino一模一样,因此在Arduino UNO上做了一小部分后,就果断移植到了NodeMCU上。
- 在Arduino IDE 搭载ESP8266开发环境:
①下载Arduino IDE:官网下载.论坛下载.
②搭载ESP8266开发环境:安装完成后打开IDE,点击 左上角
将该链接复制进附加开发板管理器网址:http://arduino.esp8266.com/stable/package_esp8266com_index.json
点击工具>开发板>开发板管理工具搜索ESP8266,选择最新版本并安装
(下载慢的同学请科学上网)
下载完成后,点击工具>开发板,找到NodeMCU1.0并选择
③运行示例测试程序:将板子链接电脑,打开设备管理器查看CH340驱动端口号,在Arduino IDE 工具>端口选择相应端口
打开文件>示例>esp8266>Blink点击上传,烧录到板子,上传完毕后可发现板子有一颗蓝色的led在闪烁
三、Arduino语言简介
以下将用Blink示例为例子,简单说明Arduino语言:
/*只执行一次*/
void setup(){
pinMode(2,OUTPUT); //设置GPIO2为输出模式
}
/*void loop()循环执行*/
void loop(){
digitalWrite(2, LOW); //设置GPIO2为低电平,LED点亮
delay(1000); //延时1000毫秒
digitalWrite(2,HIGH); //设置GPIO2为高电平,LED熄灭
delay(2000); //延时2000毫秒
}
函数介绍:
void setup()
void loop() //arduino语言是基于c语言的的改装,main()主函数被分为了setup()和loop(),setup()只执行一次,loop()循环执行
pinMode(pin,Mode) //pinMode()函数用于设置引脚模式,pin为引脚号,Mode为模式,分为OUTOUT(输出模式)和INPUT(输入模式)
digitalWrite(Pin,LOW or HIGH) //digitalWrite()函数用于设置引脚高低电平,HIGH或1为高电平(5v或3v3),LOW或0为低电平(0v)\\
delay(TIME) //延时函数,延时TIME毫秒
四、点亮LED
- 实验器材:面包板,LEDx1,470Ω电阻x1,杜邦线
- 连接电路:LED正极接D4引脚,负极接电阻后连接到GND:
- 实验代码:将D4引脚设置为输出模式,并设置为高电平:
void setup(){
pinMode(D4, OUTPUT); //设置引脚模式
digitalWrite(D4,HIGH); //设置为高电平
}
void loop(){
}
点击文件>新建,写入代码,保存,将代码烧录至板子,实验现象:
五、流水灯
-
实验器材:和上一个一样,多来几个LED
-
连接电路:三个LED正极分别连接D2,D3,D4,负极经电阻接到GND:(有点丑别介意)
-
实验代码:
void setup(){
pinMode(D2,OUTPUT);
pinMode(D3,OUTPUT);
pinMode(D4,OUTPUT); //设置D2,D3,D4为输出模式
digitalWrite(D2,LOW);
digitalWrite(D3,LOW);
digitalWrite(D4,LOW); //将D2,D3,D4置为低电平
/*初始化*/
}
void loop(){
digitalWrite(D2,HIGH);
delay(500);
digitalWrite(D2,LOW); //第一个LED发光,等待500ms后熄灭
digitalWrite(D3,HIGH);
delay(500);
digitalWrite(D3,LOW); //第二个LED发光,等待500ms后熄灭
digitalWrite(D4,HIGH);
delay(500);
digitalWrite(D4,LOW); //第三个LED发光,等待500ms后熄灭
/*代码执行到这将会回到loop()第一行*/
}
将代码上传至板子,将会看到三个led灯依次闪烁