- Obecnie brak na stanie
Moduł pulsooksymetru MAX30102
Dane techniczne:
- Napięcie zasilania: od 1.8V do 3.3V
- Pomiar pulsu.
- Pomiar nasycenia krwi tlenem.
- Sygnalizacja pracy za pomocą diody LED
- Możliwość włączenia trybu uśpienia
- Temperatura pracy: od -40°C do +85°C
- Wymiary: 20mm x 15mm
Uwaga!
Moduł ten do działania pod Arduino wymaga wprowadzenia pewnych modyfikacji na płytce drukowanej.
Przeznaczenie modułu:
Moduł Max30102 służy do pomiaru tętna oraz poziomu tlenu we krwi.
Dane techniczne:
- Napięcie zasilania: od 1.8V do 3.3V
- Pomiar pulsu.
- Pomiar nasycenia krwi tlenem.
- Sygnalizacja pracy za pomocą diody LED
- Możliwość włączenia trybu uśpienia
- Temperatura pracy: od -40°C do +85°C
- Wymiary: 20mm x 15mm
Podłączenie czujnika pulsooksymetru MAX30102 z Arduino:
- MAX 30102 VIN należy podłączyć pod 3,3V na płytce Arduino.
- MAX 30102 GND należy podłączyć do GND na płytce Arduino
- MAX 30102 SCL należy podłączyć do SCL na płytce Arduino
- MAX 30102 SDA należy podłączyć do SDA na płytce Arduino
Wymagane biblioteki:
Potrzebna będzie biblioteka dostępna w środowisku programistycznym Arduino IDE:
- Otwórz środowisko programistyczne Arduino.
- Przejdź do Szkic -> Dołącz bibliotekę -> Zarządzaj bibliotekami
- Wpisz w pasku wyszukiwania "max30"
- Pobierz "Sparkfun MAX3010x Pulse and Proximity Sensor Library"
Przykładowy program:
Przykładowy program pod Arduino Uno dla szybkości transmisji szeregowej 11500. Max30102 próbkowanie 400Hz
#include <Wire.h> #include "MAX30105.h" MAX30105 particleSensor; // initialize MAX30102 with I2C void setup() { Serial.begin(115200); while(!Serial); //We must wait for Teensy to come online delay(100); Serial.println(""); Serial.println("MAX30102"); Serial.println(""); delay(100); // Initialize sensor if (particleSensor.begin(Wire, I2C_SPEED_FAST) == false) //Use default I2C port, 400kHz speed { Serial.println("MAX30105 was not found. Please check wiring/power. "); while (1); } byte ledBrightness = 70; //Options: 0=Off to 255=50mA byte sampleAverage = 1; //Options: 1, 2, 4, 8, 16, 32 byte ledMode = 2; //Options: 1 = Red only, 2 = Red + IR, 3 = Red + IR + Green int sampleRate = 400; //Options: 50, 100, 200, 400, 800, 1000, 1600, 3200 int pulseWidth = 69; //Options: 69, 118, 215, 411 int adcRange = 16384; //Options: 2048, 4096, 8192, 16384 particleSensor.setup(ledBrightness, sampleAverage, ledMode, sampleRate, pulseWidth, adcRange); //Configure sensor with these settings } void loop() { particleSensor.check(); //Check the sensor while (particleSensor.available()) { // read stored IR Serial.print(particleSensor.getFIFOIR()); Serial.print(","); // read stored red Serial.println(particleSensor.getFIFORed()); // read next set of samples particleSensor.nextSample(); } } |
Wyniki:
- Uruchom program Arduino IDE
- Wybierz Narzędzia -> Kreślarka
- Po uruchomieniu narzędzia powinieneś otrzymać wyniki zbliżone do poniższych.
Uruchomienie pod Arduino - rozwiązywanie problemów:
Ponieważ moduł ten nie został przygotowany do działania z mikrokontrolerami o wyższych poziomach logicznych może on nie działać dobrze pod Arduino. Najprawdopodobniej jednak podczas procesu projektowego został popełniony błąd i moduł nie do końca działa dobrze pod Arduino. Problem jest z podciągnięciem pinów SCL, SDA oraz INT za pomocą rezystorów 4,8kΩ do 1,8V! Aby Arduino mogło zadziałać poprawnie napięcie poziomu wysokiego musi być co najmniej 2V. Poniżej dwie metody rozwiązania tego problemu.
Metoda 1
Usunięcie z płytki rezystorów (zaznaczone na poniższym obrazku) i podłączenie podłączenie zewnętrznych rezystorów 4,7kohm do pinów SDA, SCL i INT.
Schemat podłączenia zewnętrznych rezystorów.
Po tych modyfikacjach moduł będzie działał pod Arduino.
Metoda 2
Metoda druga nie wymaga używania żadnych dodatkowych rezystorów.
Polega na przecięciu ścieżki w miejscu pokazanym czerwoną linią (Rysunek poniżej) i zrobienia przejścia tak jak pokazuje czarna linia. Zworka może być drutem nie izolowanym ponieważ płytka jest pokryta maską ochronną.