Functionarea pulsoximetrului se bazeaza pe faptul ca hemoglobina cu oxigen are o culoare diferita de cea fara oxigen, acesta detectand diferenta prin intermediul unor senzori. Astfel, saturatia de oxigen va fi afisata pe LCD sub forma unui procent, alaturi de numarul de batai ale inimii/minut.
In ceea ce priveste partea de software a acestui proiect, se va implementa o functie cu algoritmul pentru calculul saturatiei de oxigen, ce va avea ca parametri intensitatea luminii rosii si a celei infrarosii citite de senzorul fotoelectric, cu ajutorul carora se va calcula cat se absoarbe din fiecare tip de lumina. Saturatia de oxigen va fi calculata folosind aceste valori, cu ajutorul legii Beer-Lambert. Pentru calculul numarului de batai ale inimii/minut se va filtra semnalul primit si se vor calcula peak-urile acestuia, cu ajutorul carora se va calcula intervalul intre 2 peak-uri consecutive. Acesta va fi, in final, convertit in numar de batai/minut (60 / interval).
Codul pentru realizarea acestui pulsoximetru a fost redactat in Arduino IDE, folosind bibliotecile disponibile pentru afisarea pe LCD, calculul pulsului si al saturatiei de oxigen etc. Pulsul este calculat dupa algoritmul prezentat mai sus, afisat pe LCD, dupa care, pe baza acestuia, este calculata si afisata si saturatia de oxigen.
Saturatia de oxigen fiind calculata pe baza pulsului, afisarea acesteia pe ecran va fi intarziata, deoarece este nevoie de asteptarea unor valori valide pentru puls, urmand ca abia apoi sa inceapa calculul saturatiei de oxigen.
In urma unor testari multiple pentru pulsoximetrul realizat, s-a constatat faptul ca functionalitatea acestuia este asemanatoare unui pulsoximetru real, folosit de catre medici.