1. GPIO 例子:智能台灯
-
场景:一个用单片机控制的智能台灯。
-
硬件:
-
GPIO (输出) → 连接一个继电器模块,继电器控制台灯电源线的通断。
-
GPIO (输入) → 连接一个触摸开关或物理按键。
-
-
工作流程:
-
用户触摸开关(输入引脚被拉高/拉低)。
-
单片机检测到输入引脚的电平变化。
-
单片机控制输出引脚的电平:
-
如果当前灯是关的,则输出高电平 → 继电器吸合 → 台灯亮起。
-
如果当前灯是开的,则输出低电平 → 继电器断开 → 台灯熄灭。
-
-
-
核心:GPIO完成了最基础的“检测”和“控制”任务。
2. ADC 例子:智能花园浇水系统
-
场景:自动监测花盆土壤湿度,干了就自动浇水。
-
硬件:
-
土壤湿度传感器 → 输出模拟电压(越干电压越高/越低,取决于传感器)。
-
ADC 引脚 → 读取传感器的模拟电压值。
-
GPIO (输出) → 控制一个小型水泵或电磁阀。
-
-
工作流程:
-
ADC引脚读取湿度传感器的电压值(例如,读到一个12位的数值:
2500)。 -
单片机在程序里判断:
if (adc_value > 2000) { ... }// 假设大于2000表示土壤太干了 -
如果条件满足,单片机通过GPIO打开水泵浇水5秒钟。
-
浇水后再次读取ADC值,直到湿度足够。
-
-
核心:ADC将现实的“干湿程度”这个模拟量,转换成了单片机可以理解和判断的数字量。
3. PWM 例子:电脑风扇调速 & 呼吸灯
-
场景:PC机箱内的CPU风扇,根据温度自动调节转速。
-
硬件:
-
温度传感器 (可能是ADC读取)
-
PWM 引脚 → 连接到风扇的PWM控制线(通常是4线风扇)。
-
-
工作流程:
-
单片机读取CPU温度。
-
根据温度计算出一个目标占空比(例如:40°C时占空比20%,80°C时占空比100%)。
-
单片机配置PWM硬件,输出对应占空比的方波信号给风扇。
-
风扇内部的IC会根据收到的PWM信号比例来调整自身的功率,从而改变转速。占空比越高,转速越快,散热效果越好,但噪音也越大。
-
-
另一个经典例子:呼吸灯
-
程序循环让占空比从0%逐渐增加到100%,再逐渐减少到0%。
-
LED灯就会实现从暗 -> 亮 -> 暗的平滑过渡效果,像呼吸一样。
-
4. UART 例子:GPS定位器 & 串口调试
-
场景:做一个车辆追踪器,获取GPS位置并上传。
-
硬件:
-
GPS模块 (如ATGM336H) → 其TXD引脚连接到单片机的RXD引脚。
-
4G模块 (如SIM7600) → 其RXD引脚连接到单片机的TXD引脚。
-
-
工作流程:
-
GPS模块会不停地通过它的UART(TXD引脚)向外发送遵循NMEA协议的字符串数据,例如:
$GPRMC,123519,A,4807.038,N,01131.000,E,022.4,084.4,230394,003.1,W*6A\r\n -
单片机的UART(通过RXD引脚)接收这些字符串,并在程序中解析出经纬度、时间、速度等信息。
-
单片机再将处理好的位置信息,通过另一个UART(TXD引脚)发送给4G模块。
-
4G模块将数据通过移动网络发送到服务器。
-
-
核心:UART实现了两个设备间的“字符串对话”。串口调试助手 也是利用UART和电脑通信来打印调试信息。
5. I2C 例子:环境监测站
-
场景:用一块单片机同时读取多个环境传感器数据。
-
硬件:
-
所有设备的 SDA 和 SCL 引脚分别并联在一起,接到单片机的I2C总线上。
-
温湿度传感器 (如SHT30, 地址
0x44) -
大气压强传感器 (如BMP280, 地址
0x76) -
光强度传感器 (如BH1750, 地址
0x23)
-
-
工作流程:
-
单片机在SDA和SCL线上发起一个起始信号。
-
单片机先发送SHT30的地址
0x44+ 写位,告诉SHT30:“我要给你下命令了”。 -
单片机发送一个命令字节,告诉SHT30:“开始测量”。
-
延时后,单片机再次发起起始信号,发送SHT30的地址
0x44+ 读位,说:“把数据给我”。 -
SHT30将温湿度数据通过SDA线发送给单片机。
-
单片机收到后,发送停止信号,结束这次通信。
-
重复2-6步骤,但这次发送BMP280的地址
0x76,来读取气压值。仅用2根线就轮询了所有传感器!
-
6. SPI 例子:LCD显示屏 & SD卡读写
-
场景:在屏幕上显示一张存储在SD卡里的图片。
-
硬件:
-
SD卡模块 → 连接单片机的一组SPI引脚(MOSI, MISO, SCK, CS_SD)。
-
LCD显示屏 (如ILI9341) → 连接单片机的另一组SPI引脚(MOSI, MISO, SCK, CS_LCD)。(注意:LCD的DC/RS引脚通常用普通GPIO控制)
-
-
工作流程:
-
单片机想读取SD卡里的图片数据。
-
单片机先拉低 SD卡的CS片选引脚,激活SD卡。
-
单片机通过SPI总线(MOSI线)发送SD卡的读命令和地址。
-
SD卡通过MISO线将图片数据流高速地发送给单片机。
-
单片机收到数据后,拉高 SD卡的CS引脚,结束通信。
-
单片机现在要往LCD写数据了。它拉低 LCD的CS片选引脚,激活LCD。
-
单片机用一个GPIO设置LCD为“数据模式”,然后通过SPI总线(MOSI线)将刚刚收到的图片数据高速地发送给LCD控制器。
-
LCD控制器收到数据后,将其显示在屏幕上。
-
-
核心:SPI实现了与需要高速数据传输的外设之间的通信。两个设备共享数据线和时钟线,但通过独立的片选线(CS) 来区分。
2753

被折叠的 条评论
为什么被折叠?



