回到首页 返回首页
回到顶部 回到顶部
返回上一页 返回上一页

基于Beetle 树莓派RP2350控制的继电器 简单

头像 小瑞 2025.06.04 23 0

 

 

一、项目概述

 

1.1 项目目标

本项目基于 Beetle RP2350 开发板,结合 0.96 英寸 OLED 显示屏与继电器模块,实现对外部设备的定时控制与状态显示功能。系统通过 OLED 实时展示继电器通断状态,并按照预设时间间隔自动切换继电器工作模式,可应用于智能家居、工业自动化控制等场景。

1.2 核心功能

继电器定时控制:实现继电器每 3 秒切换一次状态(通 / 断),支持外部设备的周期性供电控制。

状态实时显示:通过 OLED 屏直观展示继电器当前状态("ON"/"OFF")。

调试接口支持:利用串口通信输出状态信息,方便开发阶段调试与监控

 

微信图片_20250604234647.jpg

继电器线圈失电

 

微信图片_20250604234654.jpg

继电器线圈得电

 

二、硬件系统设计

 

2.1 Beetle RP2350 开发板

核心特性:
基于 RP2350 双核 ARM Cortex-M33 处理器,支持最高 133MHz 运行频率,具备 264KB 片上 RAM 及 2MB Flash 存储。
板载 2 路 12 位 ADC 通道(A0 对应 IO26,A1 对应 IO27),支持模拟信号采集。
超紧凑尺寸设计,兼容 Arduino IDE 开发环境,便于快速原型开发。


3a8983b1a6894c13755656d58903d643.png

 

2.2 0.96 英寸 OLED 显示模块

d6afcfc124932665.jpg

 

技术参数:
采用 SSD1306 驱动芯片,支持 I2C 通信接口(默认地址 0x3C)。
128×64 像素自发光白色 OLED 面板,支持高对比度显示,无需背光系统,功耗低至 5mA(典型值)。
内置显存控制器,支持文本、图形、位图等多种显示模式,通过 U8g2 库可实现高效驱动。

 

 

3、继电器模块

dcf368e1f8beeadb391f6fbf9cf105b9.png

 

主要规格:

5V 电磁继电器,支持 NO(常开)/NC(常闭)触点

高电平触发(3.3V/5V 兼容)

最大负载:AC 250V/10A,DC 30V/10A

控制继电器的引脚连接在 ESP-01S 的 IO0(GPIO0),控制方式是,GPIO0 输出低电平时,继电器线圈得电;GPIO0 输出高电平时,继电器线圈失电。

 

三、电路连接方案

 

3.1 引脚连接说明

模块RP2350 引脚连接说明
OLED SCLGPIO5I2C 时钟线
OLED SDAGPIO4I2C 数据线
继电器 INGPIO9控制信号输入(高电平触发)
VCC5V电源输入
GNDGND共地

 

四、软件开发环境配置

 

4.1 Arduino IDE 开发板配置

 

步骤 1:添加开发板管理器网址

打开 Arduino IDE 后,点击菜单栏中的 文件 -> 首选项。

在弹出的 首选项 窗口中,找到 附加开发板管理器网址 输入框。

输入 Beetle RP2350 开发板的支持包链接。通常可以在开发板的官方文档或者社区中找到对应的链接。对于 RP2350 开发板,一般使用的链接是 https://github.com/earlephilhower/arduino-pico/releases/download/global/package_rp2040_index.json。

点击 确定 保存设置。

image-20250516074502812.png

步骤 2:安装开发板支持库

进入 工具 > 开发板 > 开发板管理器,等待索引更新完成。

在搜索栏输入 "RP2350",选择 "Raspberry Pi Pico/RP2040/RP2350" 并点击 "安装"。

等待安装完成(根据网络速度,可能需要 2-5 分钟)。

image-20250516073904537.png

 

步骤 3:选择目标开发板

安装完成后,通过 工具 > 开发板 菜单选择 "Generic RP2350"。

4E885EEB-63FA-4447-A72E-A208DD093520.png

步骤 4:配置通信端口

通过 USB 线连接开发板至电脑,在 工具 > 端口 中选择正确的 COM 端口(如 "COM3")。

 

4.2 第三方库安装

 

1、U8g2 库(OLED 驱动)

打开库管理器(Sketch > 包含库 > 管理库)。

搜索 "U8g2",选择 "olikraus/U8g2" 并安装。

功能:支持 SSD1306 等 50 + 种显示驱动,提供绘制文本、图形、二维码等 API,兼容 Arduino 框架。

1748169709390.png

 

五、主要程序设计

 

5.1 代码实现

代码
#include <Wire.h>
#include <U8g2lib.h>
#define OLED_SDA 4
#define OLED_SCL 5
#define RELAY_PIN 9

U8G2_SSD1306_128X64_NONAME_F_HW_I2C u8g2(
  U8G2_R0, 
  U8X8_PIN_NONE, 
  OLED_SCL, 
  OLED_SDA
); 


void setup() { 
  u8g2.begin();
  u8g2.setFont(u8g2_font_unifont_t_chinese3); 

  // 初始化串口通信,方便调试
  Serial.begin(115200);
  Serial.println("继电器模块测试开始");
  
  // 设置继电器控制引脚为输出模式
  pinMode(RELAY_PIN, OUTPUT);
  
  // 初始状态:断开继电器(高电平)
  digitalWrite(RELAY_PIN, HIGH);

}  

void loop() {  
  // 闭合继电器(低电平触发)
  Serial.println("继电器闭合,外部设备通电");
  digitalWrite(RELAY_PIN, LOW);
  u8g2.clearBuffer();
  u8g2.setCursor(0, 35);
  u8g2.print("ON");
  u8g2.sendBuffer();
  delay(3000); // 保持3秒
  
  // 断开继电器(高电平)
  Serial.println("继电器断开,外部设备断电");
  digitalWrite(RELAY_PIN, HIGH);
  u8g2.clearBuffer();
  u8g2.setCursor(0, 35);
  u8g2.print("OFF");
  u8g2.sendBuffer();
  delay(3000); // 保持3秒
}    

评论

user-avatar