一、实操题
1、主题: 跳动的心
器件:ESP32主控、8x8LED点阵、74HC595串口寄存器芯片(或模块)、电
位器、LED灯及相关器件。
要求:
使用74HC595串口寄存器芯片控制8x8LED点阵显示大小心形图案,通
过电位器调整大小心形图案的切换频率;通过LED亮度的指示当前的切换
频率,详细要求如下:
1、在8x8LED点阵上分别连续显示大小两个心形图案。
2、通过旋转电位器切换大小心形图案的切换时间在100ms-500ms之间
变化。
3、通过LED灯的亮度来指示当前心形图案的切换频率,当切换时间为
100ms时,LED灯最亮;当切换时间为500ms时,LED灯熄灭;当切换时间
为100ms-500ms之间时,LED灯亮度随之而变化。
4、程序采用C代码编写,不得使用外部库调用。
5、未作规定处可自行处理,无明显与事实违背即可。
6、编写程序文件命名规则为:DJKS5_身份证号,考试完毕拷贝上交备
案。
7、程序编写过程中不得打开库例程和其它程序,如发现,实操成绩按
照0分处理。
参考答案:
略
解析:【喵呜刷题小喵解析】此题要求使用ESP32主控、8x8LED点阵、74HC595串口寄存器芯片(或模块)、电位器、LED灯及相关器件,在8x8LED点阵上分别连续显示大小两个心形图案,并通过电位器调整大小心形图案的切换频率,同时用LED灯的亮度来指示当前的切换频率。程序采用C代码编写,不得使用外部库调用。程序首先定义了一个LED_PIN和一个Potentiometer_PIN,分别用于控制LED灯和电位器。然后定义了一个last_time变量用于记录上一次心形图案切换的时间,delay_time变量用于存储心形图案的切换时间。在main函数中,首先初始化GPIO,然后创建并启动一个任务task_main。task_main任务中,使用FreeRTOS的延时函数delay模拟延时,实现心形图案的切换。延时时间根据电位器的值动态调整,同时LED灯的亮度也根据延时时间动态变化。需要注意的是,心形图案的生成和显示代码需要根据74HC595和8x8LED点阵的接口协议编写,此答案中省略了这部分代码。此外,程序中的延时函数delay使用了FreeRTOS的延时函数xTaskGetTickCount来实现,这种方法精度较低,但在本题中可以满足要求。如果需要更高的精度,可以使用ESP32的定时器功能来实现。另外,此程序使用了FreeRTOS实时操作系统,并创建了一个任务task_main来处理心形图案的切换和LED灯的控制。在实际编程中,可以根据需求选择是否使用操作系统。
喵呜刷题:让学习像火箭一样快速,快来微信扫码,体验免费刷题服务,开启你的学习加速器!