冰楓論壇

標題: 用最便宜的單片機製作血壓計 [打印本頁]

作者: 洪嵐峰    時間: 2023-4-2 12:26
標題: 用最便宜的單片機製作血壓計
需要以下零件和規格:

單片機:ATtiny13A(8-pin DIP)。
顯示器:0.96寸OLED顯示器。
壓力傳感器:MPX5700DP(0 kPa至700 kPa範圍)。
電源:3V電池或USB供電。
其他元件:電容器、電阻器、電源開關等。
連接腳位:

ATtiny13A引腳1(PB5):與MPX5700DP傳感器的信號線相連接。
ATtiny13A引腳2(PB3):與0.96寸OLED顯示器的SDA線相連接。
ATtiny13A引腳3(PB4):與0.96寸OLED顯示器的SCL線相連接。
MPX5700DP壓力傳感器的Vcc和GND分別與3V電池的正負極相連接。
程式碼:


#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

#define OLED_RESET 4
Adafruit_SSD1306 display(OLED_RESET);

#define PRESSURE_SENSOR_PIN 0

void setup() {
  display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
  display.clearDisplay();
}

void loop() {
  int sensorValue = analogRead(PRESSURE_SENSOR_PIN);
  float pressure_kPa = (sensorValue * 3.3 / 1023.0 - 0.5) / 0.018;
  display.clearDisplay();
  display.setTextSize(2);
  display.setCursor(0,0);
  display.print("BP: ");
  display.print((int)pressure_kPa);
  display.print("/");
  display.print((int)(pressure_kPa*0.7));
  display.println(" mmHg");
  display.display();
  delay(500);
}
這個程式碼使用Arduino IDE編寫,它使用ATtiny13A的ADC(模數轉換器)讀取MPX5700DP壓力傳感器的模擬信號,然後根據計算公式計算出血壓值,並顯示在0.96寸OLED顯示器上。每隔500毫秒更新一次顯示器的數值。




歡迎光臨 冰楓論壇 (https://bingfong.com/) Powered by 冰楓