Beetle树莓派RP2350代码篇6

2025-05-195656
AI 快速预览详细 收起
本文介绍了如何使用Beetle树莓派RP2350和OLED显示屏实现心率监测。通过SoftwareSerial读取心率传感器数据,并在OLED显示屏上实时显示BPM值。适用于初学者和STEM教育,展示了从硬件连接到代码编写的全过程。
#include <Wire.h>
#include <Adafruit_SSD1306.h>
#include <SoftwareSerial.h>

#define OLED_WIDTH 128
#define OLED_HEIGHT 64
#define OLED_ADDR 0x3C

SoftwareSerial hrSerial(18, 19); // RX=18, TX未用
Adafruit_SSD1306 oled(OLED_WIDTH, OLED_HEIGHT, &Wire, -1);

int bpm = 0;

void setup() {
  Serial.begin(9600);
  hrSerial.begin(9600); // 波特率需与传感器匹配

  // 初始化OLED
  if (!oled.begin(SSD1306_SWITCHCAPVCC, OLED_ADDR)) {
    Serial.println("OLED初始化失败");
    while (1);
  }
  oled.clearDisplay();
  oled.setTextSize(1);
  oled.setTextColor(SSD1306_WHITE);
  oled.display();
}

void loop() {
  // 读取心率传感器数据
  if (hrSerial.available()) {
    String data = hrSerial.readStringUntil('\n');
    parseBPM(data); // 解析BPM值
    updateDisplay(); // 刷新OLED
  }
}

void parseBPM(String data) {
  // 假设数据格式为"BPM:72"
  int startIdx = data.indexOf("BPM:");
  if (startIdx != -1) {
    String valStr = data.substring(startIdx + 4);
    bpm = valStr.toInt();
  }
}

void updateDisplay() {
  oled.clearDisplay();
  oled.setCursor(0, 0);
  oled.print("心率监测");
  oled.setCursor(0, 20);
  oled.print("BPM: ");
  oled.print(bpm);
  oled.display();
}


创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

评论(0)
- 没有更多了 -