
- BRAK
Dane techniczne:
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:
Podłączenie czujnika pulsooksymetru MAX30102 z Arduino:
Wymagane biblioteki:
Potrzebna będzie biblioteka dostępna w środowisku programistycznym Arduino IDE:
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:
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ą.