Go Down

Topic: como tomar 2 datos del monitor y convertirlo en 2 variables distintas? (Read 45 times) previous topic - next topic

Bruss

Hola a todos, soy nuevo en esta pagina, y ademas en arduino estoy recién aprendiendo, por ende pido disculpas de antemano si es que pregunto cosas- Estoy realizando una programación de un reloj modificable, en donde se conecta una pantalla lcd (16,2), y el serial monitor, actualmente no cuento con el arrduino, pero por mientras estoy utilizando un simulador, llamado tinkercad, y bueno la pregunta es la siguiente, es posible recibir de serial monitor 2 variable por separados, es decir serial monitor me dirá, escriba la Hora, y la variable quede guardada en variable "Hr", y despumes un mensaje que diga Escriba Minutos, y que quede guardado como variable "Min". Esto es lo único que se me ha ocurrido hacer remplazar if por while, pero tampoco funciono. lo que pasa es que en el primer paso me dice escribe la hr, luego de escribir la hr me dice escribe los minutos, y el problema esta en que lo que escribo remplaza la hr y no los minutos. No se si me explique bien, por favor si me pueden ayudar seria genial, he estado muchos días intentando solucionar esto. Bueno este es mi código gracias.


#include <LiquidCrystal.h>

// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(13, 12, 11, 10, 9, 8);
volatile int Seg = 0;
volatile int Min = 0;
volatile int Hr=0;
int estado=0;
int salida=0;
int lectura;
int Led = 3;
int paso1;


void setup() {
pinMode(2, INPUT);
pinMode(3, OUTPUT);
Serial.begin(9600);
lcd.begin(16, 2);
Serial.println("Modificacion De");
Serial.println("HORA");
Serial.println("Ingrese Hora:");
}
void loop(){
salida = digitalRead(2);
  if (salida == HIGH){
      lcd.clear();
       delay(1);
  Seg= Seg+1;
  if (Seg > 59){
Min= Min + 1;
    Seg = 0;
    if (Min > 59){
      Hr= Hr +1;
      Min = 0;
      if (Hr > 24){
      Hr = 0;
  lcd.setCursor(0,1);
        char hora[10];
sprintf(hora, "%d:%d:%d",Hr, Min, Seg);
      lcd.print(hora);
  delay (500);
      }
    }
  }
  }
 else{
      char hora[10];
sprintf(hora, "%d:%d:%d", Hr, Min, Seg);
   lcd.setCursor(0,1);
      lcd.print(hora);
  delay (500);
if  (Serial.available() >0) {
Hr = Serial.readString().toInt();
        lcd.setCursor(0,1);
      lcd.print(hora);
       Serial.println(Hr);
Serial.parseInt();
    Serial.println("---------------");
    delay(500);
 lcd.setCursor(0,1);
     Serial.println("Ingrese Minutos:");
              char hora[10];
sprintf(hora, "%d:%d:%d",Hr, Min, Seg);
    paso1=0;
if (Serial.available()>0) {
      Min = Serial.readString().toInt();
   lcd.print(hora);
    lcd.setCursor(0,1);
            Serial.println(Min);
   lcd.clear();
   delay(1);
 Serial.parseInt();
    Serial.println("---------------");
   Serial.println("Active Reloj");
  delay(1000);
    }
}
  }
}

Go Up