bme280 と Arduino nanoを使って温度の変化に合わせてledが光るようにしたいと考えています。
include <BME280_MOD-1022.h>
#include <Wire.h>
void printFormattedFloat(float x, uint8_t precision) {
char buffer[10];
dtostrf(x, 7, precision, buffer);
Serial.print(buffer);
}
// print out the measurements
void printCompensatedMeasurements(void) {
float temp, humidity, pressure, pressureMoreAccurate;
double tempMostAccurate, humidityMostAccurate, pressureMostAccurate;
char buffer[80];
temp = BME280.getTemperature();
humidity = BME280.getHumidity();
pressure = BME280.getPressure();
pressureMoreAccurate = BME280.getPressureMoreAccurate();
tempMostAccurate = BME280.getTemperatureMostAccurate();
humidityMostAccurate = BME280.getHumidityMostAccurate();
pressureMostAccurate = BME280.getPressureMostAccurate();
printFormattedFloat(tempMostAccurate, 2);
Serial.print(" ");
printFormattedFloat(humidityMostAccurate, 2);
Serial.print(" ");
printFormattedFloat(pressureMostAccurate, 2);
Serial.println();
}
// setup wire and serial
void setup()
{
Wire.begin();
Serial.begin(9600);
pinMode(16,INPUT);
pinMode(17,OUTPUT);
digitalWrite(17,0);
}
// main loop
void loop()
{
uint8_t chipID;
chipID = BME280.readChipId();
Serial.print("ChipID = 0x");
Serial.print(chipID, HEX);
// need to read the NVM compensation parameters
BME280.readCompensationParams();
BME280.writeOversamplingPressure(os1x);
BME280.writeOversamplingTemperature(os1x);
BME280.writeOversamplingHumidity(os1x);
BME280.writeMode(smForced);
while (BME280.isMeasuring()) {
Serial.println("Measuring...");
delay(50);
}
Serial.println("Done!");
// read out the data - must do this before calling the getxxxxx routines
BME280.readMeasurements();
Serial.print("Temp=");
Serial.println(BME280.getTemperature()); // must get temp first
Serial.print("Humidity=");
Serial.println(BME280.getHumidity());
Serial.print("Pressure=");
Serial.println(BME280.getPressure());
Serial.print("PressureMoreAccurate=");
Serial.println(BME280.getPressureMoreAccurate()); // use int64 calculcations
Serial.print("TempMostAccurate=");
Serial.println(BME280.getTemperatureMostAccurate()); // use double calculations
Serial.print("HumidityMostAccurate=");
Serial.println(BME280.getHumidityMostAccurate()); // use double calculations
Serial.print("PressureMostAccurate=");
Serial.println(BME280.getPressureMostAccurate()); // use double calculations
// Example for "indoor navigation"
// We'll switch into normal mode for regular automatic samples
BME280.writeStandbyTime(tsb_0p5ms); // tsb = 0.5ms
BME280.writeFilterCoefficient(fc_16); // IIR Filter coefficient 16
BME280.writeOversamplingPressure(os16x); // pressure x16
BME280.writeOversamplingTemperature(os2x); // temperature x2
BME280.writeOversamplingHumidity(os1x); // humidity x1
BME280.writeMode(smNormal);
while (1) {
while (BME280.isMeasuring()) {
}
// read out the data - must do this before calling the getxxxxx routines BME280.readMeasurements(); printCompensatedMeasurements(); delay(1000); // do this every 5 seconds
}
}
こちらのプログラムを使う際、どこにLEDのプログラムを差し込めば起動しますか?
またその際のプログラムを教えていただけると幸いです。