Hola buenas noches, en este momento estoy realizando un circuito el cual mide la temperatura y humedad del ambiente, y estoy utilizando un display de 7 segmentos para mostrar estos datos, mi idea es que cuando se envíe el mansaje "t" al Arduino muestre la temperatura y cuando envíe "h" muestre la humedad, el problema es que cuando pongo estos comandos en el "if" no sucede nada pero cuando escribo el comando directamente el "void loop" si muestra el mensaje, aquí envio el código:
#include <SevSeg.h>
#include <DHT_U.h> //Se incluye la librería DHT_U.h y DHT.h para el uso del sensor DHT11
#include <DHT.h>
#define DHTPIN 10 //Se define el pin en el que se conectará el sensor de temperatura
#define DHTTYPE DHT11 //Se configura la librería para usar un sensor DHT11
DHT dht(DHTPIN, DHTTYPE); //Se crea la variable dht de tipo dht
SevSeg sevseg; //Instantiate a seven segment object
char opcion = " ";
void setup() {
pinMode(10, INPUT); // Se declara el pin 2 como entrada y el pin 13 como salida
dht.begin(); //Iniciamos el sensor
byte numDigits = 4;
byte digitPins[] = {10,11,12,13};
byte segmentPins[] = {2,3,4,5,6,7,8,9};
bool resistorsOnSegments = true; // 'false' means resistors are on digit pins
byte hardwareConfig = COMMON_CATHODE; // See README.md for options
bool updateWithDelays = true; // Default 'false' is Recommended
bool leadingZeros = false; // Use 'true' if you'd like to keep the leading zeros
bool disableDecPoint = false; // Use 'true' if your decimal point doesn't exist or isn't connected. Then, you only need to specify 7 segmentPins[]
Serial.begin(9600);
sevseg.begin(hardwareConfig, numDigits, digitPins, segmentPins, resistorsOnSegments,
updateWithDelays, leadingZeros, disableDecPoint);
}
void loop(){
int t = dht.readTemperature(); //Creamos una variable "t" cuyp valor va a ser igual a los datos de temperatura que registre el sensor
int h = dht.readHumidity();
sevseg.refreshDisplay();
if (Serial.available() != 0){
opcion = Serial.read();
if (opcion == "t"){
sevseg.setNumber(t);
sevseg.refreshDisplay();
}
else if (opcion == "h"){
sevseg.setNumber(h);
sevseg.refreshDisplay();
}
}
}
Si alguien sabe me puede ayudar se lo agradecería.