本文主线FastBond2阶段1——基于ESP32C3开发的简易IO调试设备,esp32c3环境搭建,设计目标如下
设计用户操作界面,该设备具备简单易用的操作界面,外加显示屏SSD1306和旋转编码器进行显示和控制,用户后期可进行二次开发WiFi或蓝牙连接电脑或手机监控。
多种数字和模拟信号的输入输出:用户可以选择不同的输入输出模式,并通过设备的操作界面进行设置。例如,用户可以选择某个GPIO口作为模拟输入引脚,然后通过设备的操作界面设置输入的电压值,以模拟外部信号的输入,达到调试简易传感器读取和执行器输出功能。
支持PWM输出、舵机控制特性:用户可以选择某个GPIO口作为PWM输出引脚,并通过设备的操作界面设置PWM输出的频率和占空比。用户还可以选择某个GPIO口作为舵机控制引脚,并通过设备的操作界面设置舵机的角度。
因此系统具有一定的电流输出能力、信号辨识能力和显示交互功能。
首先去官网下载最新的Arduino 2.以上版本:https://www.arduino.cc/en/software
打开文件,以管理员方式运行
点击我同意接受协议
安装选项选择默认个人。点击下一步
选择合适的安装位置,一定要指定到对应文件夹,避免与其他文件混装
等待安装完成
点击完成启动Arduino IDE,或者点击桌面图标即可启动
初次启动,需要等待系统配置相关文件后,方可正常运行,因此需要良好的网络环境
可登录自己的云账户
弹出设备安装,点击安装四个设备软件
将Arduino UNO通过USB连接电脑,配置tool工具,选择匹配开发板和端口(端口选择可插拔观察软件端口,跳变端口即板载端口)
选择Blinker点灯案例,在文件例程基础中选择blinker
采用对号编译源文件,验证目标程序语法正确
点击箭头烧录程序,验证目标程序功能齐全
可观察Uno板载LED D13号引脚以1hz频率交替闪烁。此处说明Arduino IED安装成功。
注意如果不习惯英文,可在文件首选项中设置中文简体
文件–>首选项–>
esp32使用这个https://dl.espressif.com/dl/package_esp32_index.json
8266使用这个http://arduino.esp8266.com/stable/package_esp8266com_index.json
此处需要良好的网络环境哟!
在工具中选择开发板管理器
工具–>开发板–>开发板管理器–>输入esp32
安装完成
CORE ESP32核心板是基于乐鑫ESP32-C3进行设计的一款核心板,尺寸仅有21mm*51mm,板边采用邮票孔设计,方便开发者在不同场景下的使用。核心板支持UART、GPIO、SPI、I2C、ADC、PWM等接口,可根据实际需要选择。
其中LED控制
合宙CORE ESP32核心板板载2颗LED,开发者可参考表4-1进行对应管脚的控制。
LED编号 | 对应GPIO | 管脚功能 | 描述 |
---|---|---|---|
D4 | IO12 | GPIO12配置 | 高电平有效 |
D5 | IO13 | GPIO13配置 | 高电平有效 |
使用注意事项
- BOOT(IO09)管脚上电前不能下拉,ESP32会进入下载模式。
- 使用到IO08管脚进行设计,不建议外部直接下拉,因为在下载烧录时,IO08管脚为低电平,不能使用串口进行下载。
- IO12(GPIO12)、IO13(GPIO13)在QIO模式下为SPI信号SPIHD和SPIWP复用,为了增加可用GPIO数量,开发板选择采用2线SPI的DIO模式,IO12、IO13并未连接flash,使用自己编译的软件时需要注意配置flash为DIO模式。
- 外置SPI flash的VDD已链接至3.3V电源系统,使用时不需再配置其他电源,采用普通2线SPI通信方式。
- GPIO11默认为SPI flash的VDD引脚,需要配置后才能作为GPIO使用。
在文件实例基础中选择Fade
查看对应D4LED匹配IO12,源码修改如下,即可实现呼吸灯效果
/*
Fade
This example shows how to fade an LED on pin 9 using the analogWrite()
function.
The analogWrite() function uses PWM, so if you want to change the pin you're
using, be sure to use another PWM capable pin. On most Arduino, the PWM pins
are identified with a "~" sign, like ~3, ~5, ~6, ~9, ~10 and ~11.
This example code is in the public domain.
https://www.arduino.cc/en/Tutorial/BuiltInExamples/Fade
*/
int led = 12; // the PWM pin the LED is attached to
int brightness = 0; // how bright the LED is
int fadeAmount = 5; // how many points to fade the LED by
// the setup routine runs once when you press reset:
void setup() {
// declare pin 9 to be an output:
pinMode(led, OUTPUT);
}
// the loop routine runs over and over again forever:
void loop() {
// set the brightness of pin 9:
analogWrite(led, brightness);
// change the brightness for next time through the loop:
brightness = brightness + fadeAmount;
// reverse the direction of the fading at the ends of the fade:
if (brightness <= 0 || brightness >= 255) {
fadeAmount = -fadeAmount;
}
// wait for 30 milliseconds to see the dimming effect
delay(30);
}
设置下载配置,分别是板卡型号、端口和DIO模式三处
⛳烧录时选择flash模式为DIO,默认是选择QIO模式的,如果是选择QIO模式烧录了程序,板子是无限重启,串口会不断打印系统重启信息。这一点切记!!!
点击烧录D4会呼吸变化
在文件实例基础中选择AnalogRead
查看对应模拟量端口匹配IO00~04,源码修改如下,即可实现A1、A2端口读取模拟量并打印效果
void setup() {
// initialize serial communication at 115200 bits per second:
Serial.begin(115200);
//set the resolution to 12 bits (0-4096)
analogReadResolution(12);
}
void loop() {
// read the analog / millivolts value for pin 2:
int analogValue = analogRead(1);
int analogVolts = analogReadMilliVolts(2);
// print out the values you read:
Serial.printf("ADC analog value = %d\n",analogValue);
Serial.printf("ADC millivolts value = %d\n",analogVolts);
delay(100); // delay in between reads for clear read from serial
}
可用铅笔触碰IO01和IO02
,看其变化,打印效果如下
通过esp32c3配置arduino IDE教程,我们可以让Arduino作为主心骨,其他外设有机衔接从而完成功能,进而丰富我们的生活。
从而实现对外部世界进行感知,充分认识这个有机与无机的环境,科学地合理地进行创作和发挥效益,然后为人类社会发展贡献一点微薄之力。
- 我会持续更新对应专栏博客,非常期待你的三连!!!
- 如果鹏鹏有哪里说的不妥,还请大哥大姐们多多评论指教!!!
- 下面有我的群推广,欢迎志同道合的朋友们加入,期待与你的思维碰撞