This program demonstrates the use of MAX32630HSP3 board with the MAX30205 sensor which provides accurate clinical body temperature with an accuracy of 0.1°C (37°C to 39°C).

Dependencies:   MAX30205 max32630hsp3

Run the Code

  • Import it into the mbed online compiler.
  • Compile the program.
  • It will automatically download the .bin file.
  • Drag-drop or copy-paste the .bin file to the programmer drive. (PICO DAPLINK).
  • Open a serial terminal (Putty, Tera Term, etc.)
  • Find the COM port that the device is connected to and set that COM port in the terminal. Adjust the baudrate to 9600.
  • Press the reset button on the microcontroller board.
  • You should now see the temperature values on the terminal with 0.5-second intervals.

main.cpp

Committer:
Emre.Eken
Date:
2018-07-09
Revision:
7:9a0214badf2b
Parent:
3:73a73c9ba847

File content as of revision 7:9a0214badf2b:

#include "mbed.h"
#include "MAX30205.h"
#include "max32630hsp.h"

//PC serial connection:
Serial pc(USBTX,USBRX);

//Enable pin to convert 3V3 to 3V for MAX30205:
DigitalOut max30205_LDO_EN(P7_1,1);

//Board Initializations: (This also initializes PMIC)
MAX32630HSP icarus(MAX32630HSP::VIO_3V3);

//Get I2C instance
I2C i2cBus(I2C1_SDA, I2C1_SCL);

//Get temp sensor instance
MAX30205 bodyTempSensor(i2cBus, (0x90 >> 1));

int main(void)
{
    //use sensor
    uint16_t TemperatureValue;
    uint32_t ExpandTemperatureValue=0;
    float Celsius;

    while(1)
    {
        if(!bodyTempSensor.readTemperature(TemperatureValue))
        {
            ExpandTemperatureValue = (uint32_t)TemperatureValue;
            Celsius = bodyTempSensor.toCelsius(ExpandTemperatureValue);
            pc.printf("The temperature is %f Celsius\r\n",Celsius);
        }
        wait(0.5);
    }
}