i2C sensors

Hey,
I already need to apologize because i m sure that my question has already been post.
But I can’t found it!
I m trying to use bmp280 sensor to value temperature and run a fan.
Easy for sur! But how can i use/map i2C information comming from the sensor?

Maybe it will be easier to understand if I join the code

/***************************************************************************
This is a library for the BMP280 humidity, temperature & pressure sensor
This example shows how to take Sensor Events instead of direct readings

Designed specifically to work with the Adafruit BMP280 Breakout
----> http://www.adafruit.com/products/2651

These sensors use I2C or SPI to communicate, 2 or 4 pins are required
to interface.

Adafruit invests time and resources providing this open source code,
please support Adafruit and open-source hardware by purchasing products
from Adafruit!

Written by Limor Fried & Kevin Townsend for Adafruit Industries.
BSD license, all text above must be included in any redistribution
***************************************************************************/

#include <Wire.h>
#include <SPI.h>
#include <Adafruit_BMP280.h>

Adafruit_BMP280 bmp; // use I2C interface
Adafruit_Sensor *bmp_temp = bmp.getTemperatureSensor();
Adafruit_Sensor *bmp_pressure = bmp.getPressureSensor();

int fan[2] = {2, 13};

void setup() {
Serial.begin(9600);
Serial.println(F(“BMP280 Sensor event test”));

if (!bmp.begin(0X76)) {
Serial.println(F(“Could not find a valid BMP280 sensor, check wiring!”));
while (1) delay(10);
}

/* Default settings from datasheet. /
bmp.setSampling(Adafruit_BMP280::MODE_NORMAL, /
Operating Mode. /
Adafruit_BMP280::SAMPLING_X2, /
Temp. oversampling /
Adafruit_BMP280::SAMPLING_X16, /
Pressure oversampling /
Adafruit_BMP280::FILTER_X16, /
Filtering. /
Adafruit_BMP280::STANDBY_MS_500); /
Standby time. */

bmp_temp->printSensorDetails();

pinMode(fan[1], OUTPUT);
}

void loop() {
sensors_event_t temp_event, pressure_event;
bmp_temp->getEvent(&temp_event);
bmp_pressure->getEvent(&pressure_event);

Serial.print(F(“Temperature = “));
Serial.print(temp_event.temperature);
Serial.println(” *C”);

Serial.print(F(“Pressure = “));
Serial.print(pressure_event.pressure);
Serial.println(” hPa”);

Serial.println();
delay(2000);

while (analogRead(bmp_temp) >= 25 ) {

digitalWrite(fan[1], HIGH);

}
}

       while (analogRead(bmp_temp) >= 25 ) {

The object 'bmp_temp' is NOT an analog input pin number so it should not be used with analogRead(). Perhaps you meant:

       if (temp_event.temperature >= 25 ) {

John Wasser! Thanks! That's it! It works

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.