
esp32开发板嵌入式原理入门
本章节的目标是:
1、安装代码软件
2、安装驱动
3、简单程序烧录
4、LED原理
5、串口和波特率是什么
6、电位器是什么
7、舵机是什么
1、安装代码软件
嵌入式用的是c语言,也可以用clion,这次用的是vscode。
需要在插件里搜索PlatformIO,安装。期间会下载较多东西,最好挂梯子。卡住了可以尝试关闭重开。
安装好之后,还需要安装ESP32的模板,直接搜索安装
安装好以后在installed可以找到。
安装完毕以后点击新建项目。
选择开发板的型号和框架,如图选择。
创建好的项目可以看到项目框架。src下的main.cpp就是主程序。
setup函数是初始化程序,会最早执行。
loop函数是一个循环程序。
2、安装驱动
安装就行了,安装完以后重启一下电脑,把开发板下面的接口连上电脑,就能看到串口连上了。
3、简单程序烧录
最后就是程序的编译,烧录和运行。
先编译,再烧录,最后运行按钮可以看到串口的打印信息。
例子程序:
#include <Arduino.h>
void setup() {
//设置波特率
Serial.begin(9600);
//获取芯片版本信息
Serial.printf("ESP32 Start\n");
}
/**
* loop函数是许多嵌入式系统中常见的一个循环执行的函数。
* 它没有输入参数,也不返回任何值。
* 这个函数的作用是周期性地执行一些操作,在本例中是打印消息到串口。
*/
void loop() {
// 向串口发送字符串"Hello world",并换行。
Serial.printf("Hello world\n");
// 暂停1000毫秒,即1秒,用于控制打印的频率。
delay(1000);
}
会在控制台打印。效果如下:
4、LED原理
插件led灯珠长引脚为正极,短引脚为负极。
LED(发光二极管)两端存在电压差,有一定的电流流过时会亮起。电流可以理解为水流,电压差可以理解为水位差,当两个点水位高度不一样时,水流会从高水位流向低水位。
如何选择电阻的大小呢?
如何控制引脚的开关呢
实际代码如下:
#include <Arduino.h>
#define PIN_LED 18
void setup() {
pinMode(PIN_LED, OUTPUT);
}
void loop() {
digitalWrite(PIN_LED, HIGH);
delay(1000);
digitalWrite(PIN_LED, LOW);
delay(1000);
}
编译,再写入,查看效果:
成功实现。
5、串口和波特率是什么
串口:
串行通讯端口,简称串口,也称COM口,串行接口的数据是通过一条线一位位地顺序传送。
并行接口,简称并口,是指8位数据同时通过8条并行线进行传送。
串口形容一下就是一条车道,而并口就是有8个车道同一时刻能传送8位(一个字节)数据。但是并不是并口快,由于8位通道之间的互相干扰。传输受速度就受到了限制。而且当传输出错时,要同时重新传8个位的数据。串口没有干扰,传输出错后重发一位就可以了。
波特率:
波特率(bandrate),指的是串口通信的速率
也就是串口通信时每秒钟可
以传输多少个二进制位。
比如每秒钟可以传输9600个二进制(传输一个二进制位需要的时间是
1/9600秒,也就是104us),波特率就是9600。
代码配置
#include <Arduino.h>
void setup() {
Serial.begin(115200);
Serial.println("setup!");
}
void loop() {
Serial.println("loop!");
}
还需要在platformio.ini里面配置波特率,加上最后一行
[env:esp32dev]
platform = espressif32
board = esp32dev
framework = arduino
monitor_speed = 115200
这样之前乱码的控制台就是因为波特率不同导致无法读取的。现在输出正常。
6、电位器是什么
电位器属于无极性器件,可变电阻的一种,三个触点,通过旋转旋钮改变2号脚的位置,从而改变阻值的大小,1脚和3脚分别接开发板的3.3V和GND,2脚接模拟输入引脚。
接线:1接3.3V,3接GND,2接输入,检测2的电压就行。
代码实现:
打印:
ADC: 2624 MilliVolts: 2289
ADC: 2625 MilliVolts: 2289
ADC: 2624 MilliVolts: 2289
ADC: 2624 MilliVolts: 2289
ADC: 2624 MilliVolts: 2289
ADC: 2625 MilliVolts: 2289
ADC: 2625 MilliVolts: 2289
ADC: 2625 MilliVolts: 2289
ADC: 2625 MilliVolts: 2289
ADC: 2626 MilliVolts: 2289
ADC: 2624 MilliVolts: 2289
ADC: 2624 MilliVolts: 2289
ADC: 2626 MilliVolts: 2289
ADC: 2625 MilliVolts: 2289
ADC: 2626 MilliVolts: 2289
ADC: 2625 MilliVolts: 2289
ADC: 2625 MilliVolts: 2290
ADC: 2624 MilliVolts: 2290
ADC: 2627 MilliVolts: 2291
ADC: 2624 MilliVolts: 2289
7、舵机是什么
舵机是一种位置伺服的电机,与马达不同,我们需要马达提供的是旋转,控制的是转速和方向。而舵机不需要整圈的旋转,需要的是旋转角度并维持住。一般舵机旋转的角度范围是0 度到180 度。舵机引线为3线,分别用棕、红、橙三种颜色进行区分,舵机品牌和生产厂家不同,会有些许差异,使用之前需查看资料。我们使用的是最常见的舵机,棕、红、橙分别对应“电源负极,电源正极,控制信号”。