Funpack3-5-基于Arduino UNO R4 WiFi实现远程可控灯
该项目使用了Arduino Cloud平台,实现了一个Arduino UNO R4 WiFi的设计,它的主要功能为:通过网络连接到智能云端,将设备模拟成可以控制的灯,远程端发送指令,将灯光开启关闭,或调整灯光的亮度,0到90%时,矩阵亮起逐渐变大的范围,90%以上时,灯板显示出太阳的图标。
标签
Arduino
Funpack活动
WiFi
taotie
更新2025-01-15
7

一、项目介绍

本项目的目标是通过网络连接到智能云端,将设备模拟成可以控制的灯,远程端发送指令,将灯光开启关闭,或调整灯光的亮度,0到90%时,矩阵亮起逐渐变大的范围,90%以上时,灯板显示出太阳的图标。

二、硬件分析

Arduino Uno R4 WiFi 是一款集成了无线连接功能的微控制器开发板,以下是它的一些特点:

  1. Arduino Uno R4 WiFi 集成了一个 ESP32-S3 模块,支持 Wi-Fi 和蓝牙连接
  2. 板上有一个内置的 12×8 LED 矩阵
  3. 搭载了 Renesas RA4M1 (Arm® Cortex®-M4) 微控制器,具有 48 MHz 时钟速度、32 kB SRAM 和 256 kB 闪存
  4. 提供 14 个数字输入/输出引脚(其中 6 个支持 PWM 输出)、6 个模拟输入引脚,以及 UART、I2C 和 SPI 串行通信接口
  5. 包括 12 位 DAC、CAN 总线和运算放大器
  6. 支持 6-24V 输入电压,允许使用单一电源与电机、LED 灯带和其他执行器无缝集成
  7. 可以模拟鼠标或键盘,通过 USB 连接到计算机发送击键和鼠标移动
  8. 具有 Qwiic I2C 连接器

三、思路分析

本项目通过arduino cloud控制Arduino Uno R4 WiFi 连接到智能云端并模拟为可控制的灯,实现LED矩阵变化的思路可简要建立以下流程图。

1e8389af8847098358c8567546cce25f.png

首先读取开关状态,如果开关为关闭状态则关闭LED矩阵重新获取开关状态,如果开关为开则获取输入端数据,然后进行判断:如果输入数据大于90,则控制LED矩阵显示太阳图案,否则控制LED矩阵显示对应数值的LED灯,然后再进行开关判断,不断循环。

四、代码分析

1、首先导入需要的库以及宏定义

#include "thingProperties.h"
#include "Arduino_LED_Matrix.h" // Include the LED_Matrix library
#include "frames.h" // Include a header file containing some custom icons
#define XMAX 11
#define YMAX 7

thingProperties.h是在arduino cloud中根据你的参数和网络设置自动生成的。

Arduino_LED_Matrix.h是LED矩阵库

frames中定义了太阳的矩阵显示

XMAX和YMAX则限定了矩阵的大小

2、定义了两个矩阵

uint8_t grid[YMAX+1][XMAX+1] = {};
uint8_t grid1[YMAX+1][XMAX+1] = {};

grid用于计算开关按下时当前显示的图案,grid1则是空矩阵,用于开关关闭时熄灭LED矩阵。

3、定义了控制LED矩阵的核心函数

void blink(int led)
{
int a,b,c,d,e;
if(led2)
if(led <= 90)
{
for(d=8;d>0;d--)
for(e=12;e>0;e--)
grid[d-1][e-1]=0;
a=led/12;
b=led%12;
for(;b>0;b--)
grid[a][b-1]=1;
for(;a>0;a--)
{
c=13;
while(--c)
grid[a-1][c-1]=1;
}
matrix.renderBitmap(grid,8,12);
}
else
{
matrix.loadFrame(sun);
}
else
{
matrix.renderBitmap(grid1,8,12);
}
}

主要实现了流程图中的逻辑功能。

4、在回调函数中调用上述函数

void onLed1Change()  {
blink(led1);
}
void onLed2Change() {
blink(led1);
}

五、实验展示

dbd12998220320f75a5316cbda7932ea.jpg

4e758ed044628b957bb84a1f7ddd25fb_720.jpg

六、活动总结

在本次活动中,我学习了arduino uno r4 wifi的基本使用和网络交互,感谢硬禾学堂和德捷购的支持。

附件下载
led.zip
工程文件
团队介绍
小田
评论
0 / 100
查看更多
硬禾服务号
关注最新动态
0512-67862536
info@eetree.cn
江苏省苏州市苏州工业园区新平街388号腾飞创新园A2幢815室
苏州硬禾信息科技有限公司
Copyright © 2024 苏州硬禾信息科技有限公司 All Rights Reserved 苏ICP备19040198号