Подключение датчика пульса MAX30100 к Arduino: Пошаговое руководство
Компоненты и материалы
| Компонент | Кол-во | Примечание |
|---|---|---|
| ProtoCentral Pulse Oximeter Breakout (MAX30100) | 1 | I2C, измеряет SpO2 и пульс (PPG) |
| Arduino UNO | 1 | Хост-контроллер |
Софт
- Arduino IDE
- Processing (визуализация PPG-волн) — processing.org
О проекте
Руководство по подключению модуля пульсоксиметрии MAX30100 (ProtoCentral breakout) к Arduino и визуализации фотоплетизмограммы (PPG) и SpO2 в Processing.
Схема подключения (I2C)
- VIN → 3.3 В или 5 В (на модуле есть стабилизатор)
- GND → GND
- SCL → A5 (Uno)
- SDA → A4 (Uno)
- INT → не обязателен (прерывание готовности данных)
Примечание: На модуле ProtoCentral уже стоят pull-up резисторы 4.7 кОм на SDA/SCL — дополнительные не нужны.
Установка библиотек
- Arduino IDE: Скетч → Подключить библиотеку → Управление библиотеками → ищем ProtoCentral_MAX30100 или MAX30100lib → Установить.
- Processing: скачайте IDE для вашей ОС, установите.
Настройка Processing-визуализатора
- Скачайте репозиторий ProtoCentral: GitHub Pulse.
- Распакуйте, найдите папку
Processing/ces_view_oximeter. - Скопируйте её в sketchbook Processing:
- Windows:
C:\Users\\Documents\Processing\ - macOS:
/Users//Documents/Processing/ - Linux:
/home//sketchbook/
- Windows:
- Создайте папку
librariesв sketchbook, если нет. - Скопируйте папки
G4PизPulse-master/Processing/librariesвlibrariessketchbook. - Перезапустите Processing IDE.
- Откройте любой
.pdeфайл вces_view_oximeter→ Run. - В GUI выберите COM-порт Arduino → Start.
Что вы увидите
- Две волны: красная (Red LED) и инфракрасная (IR LED) — это PPG-сигналы.
- Расчётные SpO2 и BPM в реальном времени.
- Графики обновляются с частотой сэмплирования датчика (обычно 100 Гц).
Arduino-скетч (минимальный)
Используйте пример из библиотеки ProtoCentral_MAX30100 (File → Examples → ProtoCentral_MAX30100 → MAX30100_Basic или похожий). Он инициализирует датчик, настраивает ток LED, режим SpO2, и в loop() читает FIFO, шлёт данные по Serial в формате, понятном Processing-скетчу.
Типичные проблемы
- Нет данных / нули: проверьте I2C-адрес (0x57), питание 3.3В, pull-upы.
- Шумовый сигнал: прижимайте палец плотнее, используйте резиновую накладку, избегайте движения.
- Processing не коннектится: закройте Serial Monitor в Arduino IDE (порт занят), проверьте COM-порт, обновите библиотеки G4P.
- SpO2 не реалистичен: нужен калибровочный коэффициент; сырые данные требуют фильтрации (DC removal, полосовой фильтр).
Полезные ссылки
- Библиотека и примеры: ProtoCentral/Pulse
- Схемы и дизайн-файлы breakout: тот же репозиторий.
- Datasheet MAX30100 (Maxim Integrated).
Производственный процесс
- Интеграция данных сенсоров в Raspberry Pi: практическое руководство
- Подключение ультразвукового датчика HC-SR04 к Raspberry Pi — практическое руководство
- Интеграция импульсного радара Acconeer A111 с Raspberry Pi: практическое руководство
- Освоение PSoC 6 Pioneer Board с IoT Add-On Shield: руководство разработчика
- Управление яркостью LED с ШИМ через кнопку на Arduino Mega
- Высокоскоростная фотография капель воды на Arduino Nano — DIY-триггер для вспышки
- Надежная система учета рабочего времени на Arduino с RFID и Python
- Проект с датчиком DHT11: индикация температуры светодиодами и пьезо-динамиком на Arduino
- Робот для поиска людей на базе Arduino Uno: пошаговая интеграция датчиков
- Датчик CO2 K30: мониторинг качества воздуха в реальном времени на Arduino