Lorin1987
Üye
- Katılım
- 8 Tem 2021
- Mesajlar
- 23
- Puanları
- 1
- Yaş
- 37
Arduino LCD ekran projesi kısa tanıtım
Bir süre önce, bir kalp atış hızı sensörü modülü MAX30100 buldum. Bu modül, aynı zamanda basit ve kullanımı kolay olan kullanıcıların kan oksijen ve kalp atış hızı verilerini toplayabilir.
Verilere göre Arduino kütüphane dosyalarında MAX30100 kütüphaneleri olduğunu buldum. Yani Arduino ile MAX30100 arasındaki iletişimi kullanırsam sürücü dosyalarını yeniden yazmaya gerek kalmadan doğrudan Arduino kütüphane dosyalarını çağırabilirim. Bu iyi bir şey, bu yüzden MAX30100 modülünü satın aldım.
MAX30100'ün kalp atış hızı ve kan oksijen toplama işlevini doğrulamak için Arduino kullanmaya karar verdim. Tansiyonu izlemek için STONE TFT LCD ekranlı.
Temel elektronik malzemeler şu şekilde belirlenir
1. Arduino Mini Pro geliştirme kartı
2. MAX30100 kalp atış hızı ve kan oksijen sensörü modülü
3. TAŞ 7 inç LCD seri port ekran modülü
4. MAX3232 modülü
donanım bağlantısı
GUI tasarımı
kod
Nihai görüntüleme sonuçları
Bir süre önce, bir kalp atış hızı sensörü modülü MAX30100 buldum. Bu modül, aynı zamanda basit ve kullanımı kolay olan kullanıcıların kan oksijen ve kalp atış hızı verilerini toplayabilir.
Verilere göre Arduino kütüphane dosyalarında MAX30100 kütüphaneleri olduğunu buldum. Yani Arduino ile MAX30100 arasındaki iletişimi kullanırsam sürücü dosyalarını yeniden yazmaya gerek kalmadan doğrudan Arduino kütüphane dosyalarını çağırabilirim. Bu iyi bir şey, bu yüzden MAX30100 modülünü satın aldım.
MAX30100'ün kalp atış hızı ve kan oksijen toplama işlevini doğrulamak için Arduino kullanmaya karar verdim. Tansiyonu izlemek için STONE TFT LCD ekranlı.
Temel elektronik malzemeler şu şekilde belirlenir
1. Arduino Mini Pro geliştirme kartı
2. MAX30100 kalp atış hızı ve kan oksijen sensörü modülü
3. TAŞ 7 inç LCD seri port ekran modülü
4. MAX3232 modülü
donanım bağlantısı
GUI tasarımı
kod
C:
#include
#include "MAX30100_PulseOximeter.h"
#define REPORTING_PERIOD_MS 1000
#define Heart_dis_addr 0x01
#define Sop2_dis_addr 0x05
#define connect_sta_addr 0x08
unsigned char heart_rate_send[8]= {0xA5, 0x5A, 0x05, 0x82,\
0x00, Heart_dis_addr, 0x00, 0x00};
unsigned char Sop2_send[8]= {0xA5, 0x5A, 0x05, 0x82, 0x00, \
Sop2_dis_addr, 0x00, 0x00};
unsigned char connect_sta_send[8]={0xA5, 0x5A, 0x05, 0x82, 0x00, \
connect_sta_addr,0x00, 0x00};
// PulseOximeter is the higher level interface to the sensor
// it offers:
// * beat detection reporting
// * heart rate calculation
// * SpO2 (oxidation level) calculation
PulseOximeter pox;
uint32_t tsLastReport = 0;
// Callback (registered below) fired when a pulse is detected
void onBeatDetected()
{
// Serial.println("Beat!");
}
void setup()
{
Serial.begin(115200);
// Serial.print("Initializing pulse oximeter..");
// Initialize the PulseOximeter instance
// Failures are generally due to an improper I2C wiring, missing power supply
// or wrong target chip
if (!pox.begin()) {
// Serial.println("FAILED");
// connect_sta_send[7]=0x00;
// Serial.write(connect_sta_send,8);
for(;;);
} else {
connect_sta_send[7]=0x01;
Serial.write(connect_sta_send,8);
// Serial.println("SUCCESS");
}
// The default current for the IR LED is 50mA and it could be changed
// by uncommenting the following line. Check MAX30100_Registers.h for all the
// available options.
pox.setIRLedCurrent(MAX30100_LED_CURR_7_6MA);
// Register a callback for the beat detection
pox.setOnBeatDetectedCallback(onBeatDetected);
}
void loop()
{
// Make sure to call update as fast as possible
pox.update();
// Asynchronously dump heart rate and oxidation levels to the serial
// For both, a value of 0 means "invalid"
if (millis() - tsLastReport > REPORTING_PERIOD_MS) {
// Serial.print("Heart rate:");
// Serial.print(pox.getHeartRate());
// Serial.print("bpm / SpO2:");
// Serial.print(pox.getSpO2());
// Serial.println("%");
heart_rate_send[7]=(uint32_t)pox.getHeartRate();
Serial.write(heart_rate_send,8);
Sop2_send[7]=pox.getSpO2();
Serial.write(Sop2_send,8);
tsLastReport = millis();
}
}
Nihai görüntüleme sonuçları