本篇文章主要介绍了如何安装Arduino IDE、如何添加附加开发板,并以 ESP32 库为例。开发板使用了最近自己做的 ESP32-C3-BCHG-02 为例,当然使用 Arduino UNO 、 Arduino NANO 、D1 mini 或者是其他 ESP32 板子、Arduino IDE 生态支持的板子均可。
注意事项
本文使用的 Arduino IDE 为 1.8.19 版本,最新版本为 2.0.4,一般正常情况下用 1.X.X 会比较稳定,但是整体设置大差不差。
本文的操作系统均为 MAC,但是 Windows 端的操作基本差不多,所以亦可参考。
注意:自制的 ESP32-C3-BCHG-02 在 Windows 端可以完全正常使用,但是在 MAC 端会报错 A fatal error occurred: Unable to verify flash chip connection (No serial data received.).,需要将波特率改成 115200,即可解决该问题。
注意:Mac 系统需要将 Upload Speed 从 921600 改成 115200,不然会出现 A fatal error occurred: Unable to verify flash chip connection (No serial data received.) 错误。 相关参考链接(来自 forum.arduino.cc)实测 Windows 系统下无需更改此项。
由于 D1 mini 采用了过时的 Micro USB 接口,所以打算替换成 Type-C 接口进行充电或供电,相关文章可以参见这篇:Micro USB 公头转 Type-C 母头转接器制作。店家给的资料中列出了最基本的使用方法,在本例中再增加一个开关和上述的 Type-C 接口,实物图接线如下所示:
unsigned long previousMillis;
unsigned long period = 1000;
但是如果同时有多个需要延迟的进程,那么需要定义多个 previousMillis,以便进行区分:
unsigned long previousMillisHeater = 0; //用来存时间
unsigned long previousMillisVentilateur = 0; //用来存时间
unsigned long previousMillisMoteur = 0; //用来存时间
const long period = 30000; // 周期,不中断正在进行的进程,单位为ms
举一个简单的闪烁LED示例。 period = 1000 将告诉我们 LED 将闪烁1秒:
const int ledPin = 4; // the LED pin number connected
int ledState = LOW; // used to set the LED state
unsigned long previousMillis = 0; //will store last time LED was blinked
const long period = 1000; // period at which to blink in ms
void setup() {
pinMode(ledPin, OUTPUT); // set ledpin as output
}
void loop() {
unsigned long currentMillis = millis(); // store the current time
if (currentMillis - previousMillis >= period) { // check if 1000ms passed
previousMillis = currentMillis; // save the last time you blinked the LED
if (ledState == LOW) { // if the LED is off turn it on and vice-versa
ledState = HIGH;
} else {
ledState = LOW;
}
digitalWrite(ledPin, ledState);//set LED with ledState to blink again
}
}