本章节的目标是:

1、安装代码软件

2、安装驱动

3、简单程序烧录

4、LED原理

5、串口和波特率是什么

6、电位器是什么

7、舵机是什么

1、安装代码软件

嵌入式用的是c语言,也可以用clion,这次用的是vscode。

需要在插件里搜索PlatformIO,安装。期间会下载较多东西,最好挂梯子。卡住了可以尝试关闭重开。

安装好之后,还需要安装ESP32的模板,直接搜索安装

安装好以后在installed可以找到。

安装完毕以后点击新建项目。

选择开发板的型号和框架,如图选择。

创建好的项目可以看到项目框架。src下的main.cpp就是主程序。

setup函数是初始化程序,会最早执行。

loop函数是一个循环程序。

2、安装驱动

CH341SER.EXE

安装就行了,安装完以后重启一下电脑,把开发板下面的接口连上电脑,就能看到串口连上了。

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线,分别用棕、红、橙三种颜色进行区分,舵机品牌和生产厂家不同,会有些许差异,使用之前需查看资料。我们使用的是最常见的舵机,棕、红、橙分别对应“电源负极,电源正极,控制信号”。