Ich habe eine Schaltung aufgebaut und die Temperaturen wurden korrekt auf dem Display ausgegeben. Plötzlich zeigt er es auf keinen Arduino Nano mehr an. Habe 3 Stk getestet. Auf einem Mega funktioniert es. Hat jemand eine Idee?
Hier der Code:
#include "Arduino.h"
#include "Wire.h"
#include "OneWire.h"
#include "MicroLCD.h" //OLED
#include "DallasTemperature.h" //DS18B20
//Aussenfühler
#define DS18B20 2
OneWire ourWire(DS18B20);
DallasTemperature sensors(&ourWire);
//OLED
LCD_SSD1306 lcd; /* for SSD1306 OLED module */
//Temp+Hum Sensor
#include <SimpleDHT.h>
int pinDHT11 = 5;
SimpleDHT11 dht11;
//MQ-2 Sensor (LPG)
#include <MQ2.h>
//change this with the pin that you use
int pin = A0;
int lpg, co, smoke;
MQ2 mq2(pin);
#include <Ultrasonic.h>
Ultrasonic ultrasonic(12, 13);
void setup()
{
lcd.begin();
sensors.begin();
mq2.begin();
Serial.begin(9600);
}
void loop()
{
//Ultraschall
Serial.print("Distance in CM: ");
// Pass INC as a parameter to get the distance in inches
Serial.println(ultrasonic.distanceRead());
int Fuellstand;
Fuellstand = map (ultrasonic.distanceRead(), 5, 26, 100,0);
//DS18B20
sensors.requestTemperatures();
//DHT11
//Serial.println("=================================");
//Serial.println("Sample DHT11...");
//read without samples.
byte temperature = 0;
byte humidity = 0;
int err = SimpleDHTErrSuccess;
if ((err = dht11.read(pinDHT11, &temperature, &humidity, NULL)) != SimpleDHTErrSuccess) {
//Serial.print("Read DHT11 failed, err="); Serial.println(err);delay(10);
//Serial.print("Sample OK: ");
//Serial.print((int)temperature); Serial.print(" *C, ");
//Serial.print((int)humidity); Serial.println(" H");
return;
}
float* values= mq2.read(true); //set it false if you don't want to print the values in the Serial
//lpg = values[0];
lpg = mq2.readLPG();
//co = values[1];
co = mq2.readCO();
//smoke = values[2];
smoke = mq2.readSmoke();
//Display Ausgabe
lcd.clear();
//Aussenfühler
lcd.setCursor(35,0);
lcd.setFontSize(FONT_SIZE_LARGE);
lcd.print("Outdoor");
lcd.setCursor(50,2);
lcd.print(sensors.getTempCByIndex(0),0);
lcd.print(" C");
delay(2000);
//Innentemperatur
lcd.clear();
lcd.setCursor(30, 0);
lcd.setFontSize(FONT_SIZE_LARGE);
lcd.print("Wohnwagen ");
lcd.setCursor(50,2);
lcd.print((int)temperature);
lcd.print(" C");
delay(3000);
//Innen Luftfeuchtigkeit
lcd.clear();
lcd.setCursor(30, 0);
lcd.setFontSize(FONT_SIZE_LARGE);
lcd.print("Wohnwagen");
lcd.setCursor(53,2);
lcd.print((int)humidity); Serial.println(" H");
lcd.print("%");
lcd.setCursor(10,4);
lcd.print("Luftfeuchtig-");
lcd.setCursor(45,6);
lcd.print("keit");
// DHT11 sampling rate is 1HZ.
delay(3000);
//Gassensor
lcd.clear();
lcd.setCursor(55, 0);
lcd.setFontSize(FONT_SIZE_LARGE);
lcd.print("GAS:");
lcd.setCursor(50, 4);
lcd.print ((float)lpg, 1);
//lcd.setCursor(0, 4);
lcd.print("%");
delay(3000);
//Rauchmelder
lcd.clear();
lcd.setCursor(55, 0);
lcd.setFontSize(FONT_SIZE_LARGE);
lcd.print("CO2:");
lcd.setCursor(50, 4);
lcd.print ((float)co, 1);
lcd.print("%");
delay(3000);
//Smoke
lcd.clear();
lcd.setCursor(48, 0);
lcd.print("Rauch:");
lcd.setCursor(53, 4);
lcd.print ((float)smoke, 1);
lcd.print("%");
delay(3000);
//Wasserstand
lcd.clear();
lcd.setFontSize(FONT_SIZE_LARGE);
lcd.setCursor(20, 0);
lcd.print("Wassertank:");
//lcd.print(ultrasonic.distanceRead());
lcd.setCursor(48, 2);
lcd.print(Fuellstand);
lcd.print("%");
lcd.setCursor(30, 4);
lcd.print("gefuellt:");
delay(3000);
//lcd.clear();
//lcd.setCursor(0, 2);
//lcd.print("LPG:");
//lcd.print ((float)lpg, 3);
//Rauchmelder
//lcd.setCursor(11, 2);
//lcd.print("CO2:");
//lcd.print ((float)co, 3);
//Smoke
//lcd.setCursor(0, 3);
//lcd.print("Rauch:");
//lcd.print ((float)smoke, 3);
//delay(10000);
/*read the values from the sensor, it returns
*an array which contains 3 values.
* 1 = LPG in ppm
* 2 = CO in ppm
* 3 = SMOKE in ppm
*/
}