Disculpen, la pregunta, pero como puedo solucionar este problema de el case...
solo me lee el 0: y 1:, el resto lo ignora, ya cambie las cosas en los otros case y si funciona los comandos.. o sea si pongo la opcion de luminosidad en el 0: anda y lo que esta en el 0: pongo en el 2: y no aparece..
#include <DHT.h>
#define DHTPIN 2 // what digital pin we're connected to
#define DHTTYPE DHT11 //DHT 11
DHT dht (DHTPIN, DHTTYPE); //Initialize DHT sensor.
// LCD display
#include <LiquidCrystal.h>;
LiquidCrystal lcd(3, 4, 5, 6, 7, 8); //Colocamos los pines del LCD
const int BOTON = 9;
int valor = 0;
float l;
void setup() {
pinMode(BOTON,INPUT); // y BOTON como señal de entrada
Serial.begin(9600);
dht.begin();
lcd.begin(16, 2);
digitalWrite(BOTON, LOW);
}
void loop() {
if (digitalRead(BOTON) == 1){
valor=valor+1;
Serial.println(valor);
if (valor > 3){
valor=0;
}
delay(300);
}
switch(valor){
case 0:
Serial.println("entro en la PRESENTACION");
lcd.setCursor(0, 0);
lcd.print("U.N.P. -- F.C.A.");
lcd.setCursor(0, 1);
lcd.print(" C. Ambientales ");
break;
case 1:
lcd.clear();
Serial.println("entro en TREMP. y HUMEDAD");
float t = dht.readTemperature(); // Read temperature in *C (default)
float h = dht.readHumidity(); // Read humidity %
// LCD display
lcd.setCursor(0,0);
lcd.print("Temperatura:");
lcd.setCursor(12,0);
lcd.print(t);
lcd.setCursor(0,1);
lcd.print("Humedad:");
lcd.setCursor(8,1);
lcd.print(h);
lcd.setCursor(12,1);
lcd.print("% ");
delay(300);
break;
case 2:
Serial.println("entro en LUMINOSIDAD");
l = analogRead(A3);
l = (l * 100) / 1023;
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Luminosidad");
lcd.setCursor(0, 1);
lcd.print(l);
lcd.print(" %");
delay(300);
break;
}
}
Moderador:
Primero debes leer y editar tu post usando las normas del foro y la etiqueta para códigos que es ésta </>. La tienes en la barra de íconos.
Lee las normas, edita y luego conversamos sobre tu problema.
He modificado tu código para que con cada acción de tu boton se mueva solo de a 1 el incremento de valor, o sea presionas y solo suma 1.
#include <DHT.h>
#define DHTPIN 2 // what digital pin we're connected to
#define DHTTYPE DHT11 //DHT 11
DHT dht (DHTPIN, DHTTYPE); //Initialize DHT sensor.
// LCD display
#include <LiquidCrystal.h>;
LiquidCrystal lcd(3, 4, 5, 6, 7, 8); //Colocamos los pines del LCD
const int BOTON = 9;
bool estado, estadoAnt = false;
int valor = 0;
float l;
void setup() {
pinMode(BOTON,INPUT); // y BOTON como señal de entrada
Serial.begin(9600);
dht.begin();
lcd.begin(16, 2);
digitalWrite(BOTON, LOW);
}
void loop() {
estado = digitalRead(BOTON);
if (estado && !estadoAnt){
valor++;
Serial.println(valor);
if (valor > 3){
valor = 0;
}
}
estadoAnt = estado;
switch(valor){
case 0:
Serial.println("entro en la PRESENTACION");
lcd.setCursor(0, 0);
lcd.print("U.N.P. -- F.C.A.");
lcd.setCursor(0, 1);
lcd.print(" C. Ambientales ");
break;
case 1:
lcd.clear();
Serial.println("entro en TREMP. y HUMEDAD");
float t = dht.readTemperature(); // Read temperature in *C (default)
float h = dht.readHumidity(); // Read humidity %
// LCD display
lcd.setCursor(0,0);
lcd.print("Temperatura:");
lcd.setCursor(12,0);
lcd.print(t);
lcd.setCursor(0,1);
lcd.print("Humedad:");
lcd.setCursor(8,1);
lcd.print(h);
lcd.setCursor(12,1);
lcd.print("% ");
delay(300);
break;
case 2:
Serial.println("entro en LUMINOSIDAD");
l = analogRead(A3);
l = (l * 100) / 1023;
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Luminosidad");
lcd.setCursor(0, 1);
lcd.print(l);
lcd.print(" %");
delay(300);
break;
}
}
creo que el problema es otro hice un video para que veas, que realmente, cuenta, como veras en la consola del Serial, y cuando lleva al 2 o al 3 no hace nada...
Bueno, en tu video yo no veo nada. Asi que poco puedo indicarte.
La imagen esta de costado y poco definida, la mejor resolución posible es 360p imposible entender algo asi.