I hope you’re doing well. I am using the MAX30205 Breakout Board Temperature Sensor. When using the following code and associated wiring setup in the code with my Arduino Uno, I keep getting a value of 220 C in the serial monitor at room temperature (220 C). My serial monitor output is also below. Please help, I want to figure out why this sensor is giving 220C output, while still changing in response to temperature changes. I have also soldered the board to the header pins.
The first thing I would do is turn everything off, then read the data sheet: https://www.analog.com/en/products/MAX30205.html The front of the data sheet will tell you it works with a 2.7V to 3.3V Supply Voltage.
Hopefully you have another, the odds are high you destroyed the unit you have. If you have not destroyed and it works assume it will fail as it was damaged by over voltage. The UNO is a 5V processor. You may have damaged the UNO also but maybe you are lucky,.
I see on Google images that most boards don't have I2C level shifting parts fitted.
So you also need to add a level shift board to your setup.
Or switch to a more modern 3.3volt-logic Arduino or ESP32.
Leo..
/**************************************************************************************
This is example for ClosedCube MAX30205 Human Body Temperature Sensor Breakout
Initial Date: 11-Jan-2017
Hardware connections for Arduino Uno:
VDD to 3.3V DC
SCL to A5
SDA to A4
GND to common ground
Written by AA for ClosedCube
MIT License
**************************************************************************************/
#include <Wire.h>
#include "ClosedCube_MAX30205.h"
ClosedCube_MAX30205 max30205;
void setup()
{
Serial.begin(9600);
Serial.println("ClosedCube MAX30205 Arduino Demo");
max30205.begin(0x48);
}
void loop()
{
Serial.print("T=");
Serial.print(max30205.readTemperature());
Serial.println("C");
delay(300);
}
I did connect the sensor to 3.3V, and my room temp was 21.6 C - 22 C.
I connected my board to 3.3V, and tried multiples of the same board at 3.3V, and they all gave me 220C output, so I don’t think the board is destroyed.
That is the board I saw. Your link to it is useless for finding your problem as there is no technical data. That is typical of most market place sellers. They sell cheap because of no support overhead. What happened when you tried my code?
I did try the code, however, it didn’t work for me. It would not compile and gave the following errors.
C:\Users\HamnaHasan\AppData\Local\Temp\.arduinoIDE-unsaved2026119-8500-11u8ewv.dktmj\sketch_feb19a\sketch_feb19a.ino:4:1: error: 'Wire' does not name a type Wire.beginTransmission(addr); ^~~~ C:\Users\HamnaHasan\AppData\Local\Temp\.arduinoIDE-unsaved2026119-8500-11u8ewv.dktmj\sketch_feb19a\sketch_feb19a.ino:5:1: error: 'Wire' does not name a type Wire.write(0x00); // temperature register ^~~~ C:\Users\HamnaHasan\AppData\Local\Temp\.arduinoIDE-unsaved2026119-8500-11u8ewv.dktmj\sketch_feb19a\sketch_feb19a.ino:6:1: error: 'Wire' does not name a type Wire.endTransmission(false); ^~~~ C:\Users\HamnaHasan\AppData\Local\Temp\.arduinoIDE-unsaved2026119-8500-11u8ewv.dktmj\sketch_feb19a\sketch_feb19a.ino:7:1: error: 'Wire' does not name a type Wire.requestFrom(addr, (uint8_t)2); ^~~~ C:\Users\HamnaHasan\AppData\Local\Temp\.arduinoIDE-unsaved2026119-8500-11u8ewv.dktmj\sketch_feb19a\sketch_feb19a.ino:9:1: error: 'msb' does not name a type msb = Wire.read(); ^~~ C:\Users\HamnaHasan\AppData\Local\Temp\.arduinoIDE-unsaved2026119-8500-11u8ewv.dktmj\sketch_feb19a\sketch_feb19a.ino:10:1: error: 'lsb' does not name a type lsb = Wire.read(); ^~~ exit status 1 Compilation error: 'Wire' does not name a type