This circuit consists of an Arduino Mega 2560 microcontroller board interfaced with an LM75 temperature sensor. The LM75 sensor communicates with the Arduino Mega 2560 via the I2C protocol, utilizing the SDA (data line) and SCL (clock line) connections. The sensor is powered by the 5V output from the Arduino and shares a common ground. The purpose of this circuit is to scan and detect I2C devices, specifically to read temperature data from the LM75 sensor.
/*I2C_scanner
This sketch tests standard 7-bit addresses.
Devices with higher bit address might not be seen properly.*/
#include <Wire.h>
void setup() {
Wire.begin();
Serial.begin(9600);
while (!Serial);
Serial.println("\nI2C Scanner");
}
void loop() {
byte error, address;
int nDevices;
Serial.println("Scanning...");
nDevices = 0;
for (address = 1; address < 127; address++ ) {
Wire.beginTransmission(address);
error = Wire.endTransmission();
if (error == 0) {
Serial.print("I2C device found at address 0x");
if (address < 16)
Serial.print("0");
Serial.print(address, HEX);
Serial.println(" !");
nDevices++;
}
else if (error == 4) {
Serial.print("Unknown error at address 0x");
if (address < 16)
Serial.print("0");
Serial.println(address, HEX);
}
}
if (nDevices == 0)
Serial.println("No I2C devices found\n");
else
Serial.println("done\n");
delay(5000);
}
This code is designed to run on the Arduino Mega 2560 and scans for devices on the I2C bus, reporting any found devices to the serial monitor. It is particularly useful for verifying connections and ensuring that the LM75 temperature sensor is properly communicating with the Arduino.