Arduino是一套便捷、灵活、容易上手的硬件开发平台它包括多种型号的Arduino控制电路板和专用编程开发软件Arduino IDEESP32S3内置设备开发板LCD2TFT 液晶显示屏模组SPI 接口 TFT-LCD包含驱动底板 液晶屏幕本体。底板带有 FPC 软排线插座用来插接液晶面板上方金色排针是 SPI 通讯引脚可直接对接 ESP32S3 开发板。屏幕尺寸为 2.0~2.4 英寸级别常用于单片机项目做文字、图形、图片显示。供电一般为 3.3V通过 SPI 总线和主控通信可以用来显示人体红外传感器的检测状态、数据等内容。HC-SR501 人体红外热释电传感器4功能检测人体移动当有人在探测范围内活动时输出高电平无人活动则为低电平。用法VCC 接 3.3V~5V 电源GND 接地线OUT 接到 ESP32 的 GPIO 引脚即可读取是否检测到人。上面两颗电位器分别调节检测延时和感应灵敏度。21 键红外遥控器38KHz4一般搭配 MP3 解码板、蓝牙音响模块使用。 按键功能开关机、模式切换、播放暂停、上下曲、音量加减、音效 EQ、数字选曲、单曲循环、U 盘 / SD 卡切换。 配合红外接收头可以直接接到你的 ESP32S3 开发板上做红外遥控控制。电机1128BYJ-48 5V 四相五线减速步进电机。供电电压直流 5V不能直接用 3.3V 驱动。使用方式必须搭配 ULN2003 驱动板再连接到 ESP32S3 开发板⑩号上方的 MOTOR 接口电机专用位置。用途低速转动、角度定位常用于风向摆叶、小型云台等项目。接线说明 电机插头插到 ULN2003 驱动板驱动板四根控制引脚接到开发板 MOTOR 排针供电由开发板 5V 供给。130 直流小电机普通有刷直流马达工作电压一般为 3V6V。它不能直接接到 ESP32 主控引脚必须搭配 L298N 或者三极管驱动模块使用。 接线位置接开发板上标号 11MOTOR区域由驱动板控制正转、反转与启停。红、棕两根线调换接线方向电机就会改变转动方向。SG90 9g 舵机4作用能精准转到指定角度0°~180°用来做云台转向、开关门、机械摆臂、摄像头角度调节。接线开发板④号黄色通用 GPIO 排针棕线 GND红线 3.3V橙线 信号脚随便选 IO4/IO5黄铜金属头激光发射模块4作用射出一道红色激光细线搭配激光接收模块做对射检测激光被挡住就触发信号用于红外计数、遮挡感应、光电门。接线④号排针VCC→3.3VGND→GND信号脚接任意空闲数字 IO各模块激光接收传感器小板4作用接收对面发射的激光无激光时输出高电平激光被遮挡输出低电平和激光发射成对使用检测有无物体遮挡光路。接线④号排针VCC→3.3VGND→GNDOUT 信号接数字 IO电位器可调电阻模块7/4作用旋转旋钮改变输出电压ESP32 读取电压数值可用来手动调速、手动控制舵机角度、调节屏幕亮度。接线⑦号 ADC 模拟接口 / ④号排针模拟引脚VCC→3.3VGND→GNDAO 模拟输出接 ADC 引脚标 BMP280 小板气压高度传感器作用实时测量环境大气压强换算出海拔高度同时可测环境温度适合气象检测、高度测量项目。接线④号排针 I2C 引脚VCC→3.3VGND→GNDSDA、SCL 对应 I2C 通讯引脚中间器件HC-SR04 超声波测距模块4作用发射超声波碰到物体反射回来计算和障碍物之间的距离用来避障、测距离、感应有无物体。四根引脚定义VCC供电接 3.3V/5V 都可以推荐 5VTrig触发引脚单片机发信号启动测距Echo回响引脚接收反射信号GND地线接线位置开发板④号黄色通用 GPIO 排针VCC 接 5VGND 接 GNDTrig、Echo 分别接两个空闲数字 IO比如 IO2、IO3各色带黑色插头的线杜邦线是什么单片机通用连接线一头插模块一头插开发板排针用来传递电信号、供电。不同颜色只是区分线路功能无差别红线习惯用来接电源正极3.3V/5V黑色 / 棕色习惯用来接地线 GND其余彩色橙、黄、绿、蓝、白、紫全部用作信号传输线传感器、电机、屏幕信号线DHT11 温湿度传感器作用实时检测环境温度 空气湿度用来做室内温湿度监测、智能家居环境采集。四根引脚定义VCC供电3.3VDATA温湿度数据信号线NC空脚不用接线GND地线接开发板位置普中 ESP32S3 高配板④号黄色通用 GPIO 排针VCC → 3V3GND → GNDDATA → 随便一个空闲数字 IO比如 IO4黑色多功能传感器底板接④号GPIO排针1.8 块带蓝色可调电阻小板光敏 / 红外对射 / 触摸类通用传感器模块作用检测光线变化、物体遮挡、人体触摸蓝色旋钮调节检测灵敏2.带摇杆的模块双轴 XY 摇杆模块作用游戏操纵杆上下左右 按键控制小车、屏幕光标3.带白色圆形小元件DS18B20 温度传感器作用测量环境温度4.黑色小圆元件震动传感器模块作用检测震动、敲击触发报警5.白色圆形元件声音传感器模块声音模块检测环境音量大小人体模块检测附近人体活动6.长条金属栅格金属触摸传感器作用手触摸金属栅格输出电平信号7.银色圆形金属盖模块MQ-2 气体烟雾传感器作用检测烟雾、燃气、可燃气体浓度8.右下角单蓝色可调小板火焰传感器作用检测明火、火光用于消防报警项目RC522 射频 RFID 读卡模块含蓝色感应卡 钥匙扣卡作用读取感应卡片 ID做门禁刷卡、身份识别、打卡系统通信SPI 通讯接线开发板④号黄色通用 GPIO 排针占用一组 SPI 引脚Arduino语言Arduino语言结构Arduino 语言本质不是一门全新编程语言而是一堆封装好的 API 函数合集全都放在 Arduino 核心库里。API 现成功能函数点灯、读取 GPIO、串口通信、WiFi 连接等不用你从零写底层驱动。底层是 ESP-IDFESP32 官方 C 语言底层开发库操作寄存器、硬件时序、WiFi 协议这些复杂代码官方提前写好了。Arduino 团队把难懂的 ESP-IDF 底层代码二次封装简化成简单函数 举例子 底层 ESP-IDF 要十几行代码点亮 LED Arduino API 只需要两行plaintextpinMode(2,OUTPUT); digitalWrite(2,HIGH);好处底层复杂操作全部屏蔽我们只需要直接调用封装好的 API 函数不用研究单片机寄存器、底层驱动上手简单。C/C 才是单片机真正底层语言Arduino 只是套了一层简易 API 外壳代码最后还是会编译成底层 ESP-IDF 程序烧录进 ESP32所有你用的 Serial、analogRead、WiFi.begin () 全部都是封装后的 API。Arduino程序结构setup和loopArduino没有main函数main函数被隐藏在了Arduino核心库中而是使用setup和loop函数setup函数里面的代码只会执行一次外设的初始化配置等等loop函数类似于一个大循环里面的代码会重复执行C/C语言基础C是面向过程的编程语言C是面向对象的编程语言数据类型常量在程序运行中值不能被改变的量称为常量#define 常量名 常量值eg#define LED1 3变量程序中可变的量称为变量类型 变量名称egint i 0或 int ii 0字符型要 float四字节double八字节运算符表达式运算符加运算对象 egab数组数组是由一组相同数据类型的数据构成的集合数组的定义数据类型 数组名称[数组元素个数]int a[5]数组元素的调用数组名称 [下标]egint a[5] [1,2,3,4,5] ;printf ( a[3] ) 结果是4字符串字符串的定义用字符型数组方式定义另一种是String类型定义字符组成字符串字符串要用英文双引号括起来 char 字符串名称 [字符个数]String 字符串名称注释多行注释“/*”与“*/”之间内容为注释单行注释“//”c/c语言结构选择结构更多分支switch语句从前往后看常量表达式1234...与表达式是否相等相等执行对应的语句不相等就执行到最后default语句遇到break跳出当前语句块跳出switch如果没有写default语句并且常量表达式与表达式不相等就不会执行switch里的语句。注意常量表达式1234...各不相同switch语句的表达式结果必须是整型或字符型别的类型只能用 if 语句循环结构Arduino添加第三方库pinMode函数该函数主要是用来设置我们对应单片机的一个管脚及模式即定义这个口是干啥用的必须先写。语法void pinMode引脚号模式参数1引脚号是用来设置我们的这个管脚标号参数2模式是指定 IO 口的模式那像我们这个函数呢里面有两个参数第一个呢是用来设置我们的这个管脚标号比如我们的 ESP 32 开发板当中对应我们的排针旁边呢都会有对应的一些标号引脚就把对应的引脚传进来。第二个是指定我们这个 IO 口的一个模式 IO 口它可以作为输出使用也可以作为输入使用。那你使用哪一种就要自己选择。上图就是 IO 口的各种模式的宏定义参数2官方提供了很多的宏定义。OUTPUT 输出模式控制 LED、继电器用的引脚可以主动输出高电平、低电平用来点灯、控制外设咱们点亮彩灯就用这个。INPUT 普通输入模式用来读取外部信号按键、传感器引脚悬空的时候电平会乱跳信号不稳定。INPUT_PULLUP 上拉输入最常用读按键内部自带拉高电阻按键没按下时默认高电平按下变低不用额外接电阻不会出现信号飘忽的问题。INPUT_PULLDOWN 下拉输入内部把电平拉低按键松开是低电平按下变成高电平用得比上拉少。OUTPUT_OPEN_DRAIN 开漏输出引脚只能主动输出低电平想要高电平必须在外面再接一个上拉电阻适合多器件共用一条信号线的场景。INPUT_ANALOG 模拟输入ADC专门用来读取电位器、电压这类连续变化的模拟信号才能用analogRead()采集数值不能做高低电平的数字读写。digitalWrite函数语法digitalWrite (引脚号电平)作用已经把引脚设为输出模式后控制引脚通电断电参数HIGH等同于数字 1输出 3.3V 高电平LED 点亮LOW等同于数字 0输出 0V 低电平LED 熄灭 ESP32 芯片标准输出电压高电平 3.3V普通 Uno 单片机是 5V。两种写法完全等效digitalWrite(3, HIGH);digitalWrite(3, 1);delay ()函数语法delay时间时间单位毫秒ms1 秒 1000 毫秒egdelay(100);程序在这里暂停 100 毫秒。delayMicroseconds函数语法void delayMicroseconds时长微秒级延迟函数1毫秒1000微秒usdigitalRead函数数字读取函数语法int digitalReadint pinegkeydigitalRead1 即读取1号管脚的电平作为key变量引脚编号作为函数传进去LED实验点亮LED模块中的一个LED灯即让GPIO输出高或低电平对ESP32来说高电平约3.3V低电平约0V。原理图由图可知LED连3号IO口引脚号为3LED口阳极连的是控制引脚控制引脚接高电平发光二极管通发电低电平不发电蜂鸣器实验蜂鸣器分为两种有源蜂鸣器和无源蜂鸣器有源蜂鸣器给电压就能发出声音无源蜂鸣器需要连续输出一定频率的脉冲信号才能使其发声即循环让IO口输出高低电平控制在1.5K-5.0K之间频率2K赫兹~0.5ms一个周期占公比高电平在于整个周期的时间比例原理图蜂鸣器BP连IO输出口15号引脚继电器实验继电器可实现小电流控制大电流低压控制高压原理图芯片为反向驱动芯片输入端为高电平输出端就是低电平电机模块RELAY高电平则RELAY OUT为低电平则继电器模块的RELAY OUT为低电平线圈RK1一端下端连VCC55伏正极又因为上端为低电平0伏负极有电压差线圈导通P2为继电器接线端子控制IO给高电平则线圈导通继电器常开NO 常开平时断开继电器吸合之后就连通NC 常闭本来连着继电器一吸合就断开按键控制实验按键松开默认为高电平由于按下抬起会有波动所以通常会用delay函数在识别到低电平时延迟大约10ms再进行运作原理图需要设置引脚为输入上拉模式程序中想单次扫描按键就设置mode0多次扫描mode1将key设置为静态变量让它能够在循环中保存上一次的值直流电机实验直流电机将直流电能转化为机械能直流电动机或将机械能转化为直流电能发动机直流电机没有正负之分在两端加上直流电压就可以工作ULN2003ULN2003 是7 路达林顿反向驱动芯片简单说一块芯片里集成了 7 个放大开关专门用来放大单片机微弱信号驱动继电器、蜂鸣器、电机这类需要大电流的元器件。最核心特性反向输出。输入高电平 → 输出低电平 输入低电平 → 输出高阻态断开ESP32 单片机 IO 口输出电流很小几毫安直接带不动继电器线圈 ULN2003 可以承受500mA 大电流完美驱动继电器、蜂鸣器保护 ESP32 芯片不被烧坏。必须一个接正极一个接ULN2003的输出口ULN2003输入高电平输出低电平接电机一端另一端接正极可以使电机旋转反之输入低电平输出高阻态会停止旋转