/********* Pleasedontcode.com **********
Pleasedontcode thanks you for automatic code generation! Enjoy your code!
- Terms and Conditions:
You have a non-exclusive, revocable, worldwide, royalty-free license
for personal and commercial use. Attribution is optional; modifications
are allowed, but you're responsible for code maintenance. We're not
liable for any loss or damage. For full terms,
please visit pleasedontcode.com/termsandconditions.
- Project: **Sensor Data**
- Source Code NOT compiled for: Arduino Uno
- Source Code created on: 2024-11-28 23:59:14
********* Pleasedontcode.com **********/
/****** SYSTEM REQUIREMENTS *****/
/****** SYSTEM REQUIREMENT 1 *****/
/* The project must implement the LM35 sensor for */
/* continuous temperature monitoring, with readings */
/* taken from analog pin A0. The setup should include */
/* necessary error handling for sensor malfunctions. */
/****** SYSTEM REQUIREMENT 2 *****/
/* read gyroscope and accelerometer and print on */
/* serial. */
/****** END SYSTEM REQUIREMENTS *****/
/* START CODE */
/****** DEFINITION OF LIBRARIES *****/
#include
#include //https://github.com/wilmouths/LM35
#include //https://github.com/EmotiBit/EmotiBit_BMI160
/****** FUNCTION PROTOTYPES *****/
void setup(void);
void loop(void);
/***** DEFINITION OF ANALOG INPUT PINS *****/
const uint8_t temp_LM35_Vout_PIN_A0 = A0;
/***** DEFINITION OF I2C PINS *****/
const uint8_t accelerometer_BMI160_I2C_PIN_SDA_A4 = A4;
const uint8_t accelerometer_BMI160_I2C_PIN_SCL_A5 = A5;
const uint8_t accelerometer_BMI160_I2C_SLAVE_ADDRESS = 104;
/****** DEFINITION OF LIBRARIES CLASS INSTANCES*****/
LM35 lm35(temp_LM35_Vout_PIN_A0); // Create LM35 object
BMI160GenClass BMI160; // Create BMI160 object
void setup(void)
{
// Initialize serial communication
Serial.begin(9600);
// Initialize LM35 temperature sensor
pinMode(temp_LM35_Vout_PIN_A0, INPUT);
// Initialize BMI160 sensor
if (!BMI160.begin(BMI160GenClass::I2C_MODE, Wire, accelerometer_BMI160_I2C_SLAVE_ADDRESS)) {
Serial.println("BMI160 initialization failed!");
while (1); // Halt if initialization fails
}
}
void loop(void)
{
// Read temperature from LM35
double temperature = lm35.getTemp(); // Get temperature in Celsius
Serial.print("Temperature: ");
Serial.print(temperature);
Serial.println(" °C");
// Read gyroscope and accelerometer data from BMI160
int16_t ax, ay, az; // Accelerometer data
int16_t gx, gy, gz; // Gyroscope data
BMI160.readAccelerometer(ax, ay, az);
BMI160.readGyroscope(gx, gy, gz);
// Print accelerometer data
Serial.print("Accelerometer: ");
Serial.print(" ax: "); Serial.print(ax);
Serial.print(", ay: "); Serial.print(ay);
Serial.print(", az: "); Serial.println(az);
// Print gyroscope data
Serial.print("Gyroscope: ");
Serial.print(" gx: "); Serial.print(gx);
Serial.print(", gy: "); Serial.print(gy);
Serial.print(", gz: "); Serial.println(gz);
// Delay before the next reading
delay(1000); // Delay for 1 second
}
/* END CODE */