Soy nuevo en esto de arduino y intento unir 3 codigos de sensores (luz, humedad y co2). El problema es que por separado funcionan bien pero cuando los junto y intento que se muestren por un lcd, no sale nada por este. Creo que el problema esta en la entrada del de co2 pero no se
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#define pwmPin 10
byte cmd[9] = {0xFF,0x01,0x86,0x00,0x00,0x00,0x00,0x00,0x79};
char response[9];
int prevVal = LOW;
int th, tl, ppm;
int valorLDR = 0; //Creamos la variable de tipo número entero para almacenar los datos recogidos del sensor analógico LDR (Light Dependant Resitor).
int pinLDR = A0; //Seleccionamos el pin analógico A0 como input del sensor LDR. // YL-39 + YL-69 humidity sensor
int porcentajeluz;
int porcentajehumedad;
LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);
byte humidity_sensor_pin = A1;
byte humidity_sensor_vcc = 6;
byte pwmpin = 10;
void setup() {
lcd.begin(16, 2);
// Init the humidity sensor board
pinMode(humidity_sensor_vcc, OUTPUT);
digitalWrite(humidity_sensor_vcc, LOW);
pinMode(pwmPin, INPUT);
while (!Serial);
delay(1000);
Serial.begin(9600);
}
int read_humidity_sensor() {
digitalWrite(humidity_sensor_vcc, HIGH);
delay(500);
int value = analogRead(humidity_sensor_pin);
digitalWrite(humidity_sensor_vcc, LOW);
return 1023 - value;
}
void loop() {
//CO2 via pwm
do {
th = pulseIn(pwmPin, HIGH, 1004000) / 1000.0;
tl = 1004 - th;
ppm = 2000 * (th-2)/(th+tl-4);
} while (ppm < 0.0);
//Imprimirmos humedad
porcentajehumedad = map(read_humidity_sensor(), 20, 720, 0, 100);
valorLDR = analogRead(pinLDR); //Leemos el valor del pinLDR y lo guardamos en la variable creada.
porcentajeluz = map(valorLDR, 0, 1024, 0, 100);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("luz%");
lcd.setCursor(5, 0);
lcd.print(porcentajeluz);
lcd.setCursor(8, 0);
lcd.print("ppm");
lcd.setCursor(12, 0);
lcd.print(ppm);
lcd.setCursor(0, 1);
lcd.print("humd%");
lcd.setCursor(6, 1);
lcd.print(porcentajehumedad);
delay(5000);
}