因为想测试Arduino使用MQTT,最后发现直接用NodeMCU之类的ESP8266模块最方便了。
而手头又没有NodeMCU,只有一块机智云的和一块"开发快“(小E)的,好在他们都差不多啦。
本文以"开发快“(小E)为例,简要介绍如何使用Arduino IDE开发ESP8266,实现板载的RGB灯闪烁功能。
安装Arduino core for ESP8266 WiFi chip
首先,我们要为Arduino IDE安装Arduino core for ESP8266 WiFi chip。
项目地址:https://github.com/esp8266/Arduino
基本步骤如下:
- 安装Arduino IDE (1.6.4以后,推荐使用最新版本)
- 启动Arduino IDE,打开File->Preferences窗口
- 在Settings->Additional Board Manager URLs中输入:http://arduino.esp8266.com/stable/package_esp8266com_index.json
- 在IDE中,打开Tools->Boards Manager
-
安装ESP8266
完成上述步骤后,你的Arduino IDE已经支持开发ESP8266喽
blink for小E
现在,我们可以为小E写个blink程序测试啦。
打开blink example
板卡选择NodeMCU 1.0
选择对应的串口
"开发快“(小E)的R,G,B LED为共阳极,引脚分别为
GPIO 12, RED
GPIO 15, GREEN
GPIO 14, BLUE
所以,点亮并闪烁红色LED的代码如下:
-
void setup() {
-
pinMode(12, OUTPUT);
-
}
-
-
void loop() {
-
digitalWrite(12, HIGH);
-
delay(1000);
-
digitalWrite(12, LOW);
-
delay(1000);
- }
由于一些原因(我也不知道),GPIO 15默认输出低电平,所以绿灯是常亮的。
我们需要在代码中关闭绿灯,更新后代码如下:
-
void setup() {
-
pinMode(12, OUTPUT);
-
-
pinMode(15, OUTPUT);
-
digitalWrite(15, HIGH);
-
}
-
-
void loop() {
-
digitalWrite(12, HIGH);
-
delay(1000);
-
digitalWrite(12, LOW);
-
delay(1000);
- }
点击IDE的上传按钮
按住小E的BOOT按钮,给小E上电
待IDE中出现上传进度条时,松开BOOT按钮即可
上传成功后,我们会发现小E的RGB LED中的红灯以一秒的间隔闪烁。
进一步的操作
现在,你可以对这个程序进行进一步的完善,
比如依次点亮RGB灯,或者通过同时点亮不同颜色的灯实现8个颜色的灯交替闪烁。
简单的8色(全灭是黑色)交替闪烁的例子:
-
void setup() {
-
pinMode(12, OUTPUT);
-
pinMode(14, OUTPUT);
-
pinMode(15, OUTPUT);
-
digitalWrite(12, HIGH);
-
digitalWrite(14, HIGH);
-
digitalWrite(15, HIGH);
-
}
-
-
void loop() {
-
for (int i = 0; i < 8; i++)
-
{
-
bitRead(i, 0) == 1 ? digitalWrite(15, 0):digitalWrite(15, HIGH);
-
bitRead(i, 1) == 1 ? digitalWrite(14, 0):digitalWrite(14, HIGH);
-
bitRead(i, 2) == 1 ? digitalWrite(12, 0):digitalWrite(12, HIGH);
-
-
delay(1000);
-
}
- }
总结
本文简单介绍在Arduino IDE中安装Arduino core for ESP8266 WiFi chip。
并以"开发快“(小E)为例,写了个简单的小程序实现blink, 以及8种颜色LED交替闪烁的例子。
谨以本文抛砖引玉,希望大家折腾出更好玩的东西