//PROGRAMA LED_CONTROL2 //Version 17-5-19 //Lee algo en el puerto serial y lo almacena en num int num; // Definida como variable entera y global void setup() { Serial.begin(9600);// inicializamos la comunicación serial pinMode(10,OUTPUT); //definimos el PIN 10 como salida Serial.println("Bienvenidos "); //Mensaje a Monitor Serial Serial.println("Ordenes: 345 enciende LED 678 apaga LED");//Mensaje por Monitor Serial delay(100); //Los retardos son necesarios en la practica para mejorar desempeño } void loop() { /* * Evaluamos el momento en el cual recibimos un caracter * a través del puerto serie */ if(Serial.available()) //Si la comunicacion serial es utilizable, pregunta aqui. //Obtiene el número de bytes (caracteres) disponibles //para su lectura desde el puerto serie. Se trata de //datos que ya llegaron y se almacenaron en el buffer //de recepción serie (que tiene 64 bytes). { //Delay para favorecer la lectura de caracteres delay(300); //Este tiempo es grande para PODER HACER SIMULACION PROTEUS //originalmente decia 22 para Arduino real //Se crea una variable que servirá como buffer String bufferString = ""; /* * Se le indica a Arduino que mientras haya datos * disponibles para ser leídos en el puerto serie * se mantenga concatenando los caracteres en la * variable bufferString */ while (Serial.available()>0) { bufferString += (char)Serial.read(); //Serial Read es una función que permite leer (recibir) //bytes mediante un puerto Serial. } num = bufferString.toInt(); //Se transforma el buffer a un número entero //Se carga lo leido en la variable num //Luego podemos preguntar sobre el valor // de dicha variable – Por ejemplo // en Tachos LED su valor selecciona color Serial.println("------------------------"); //Mensaje a Monitor Serial Serial.print("Ud digito: "); //Mensaje a Monitor Serial Serial.println(num); //Mensaje a Monitor Serial Serial.println("------------------------"); //Mensaje a Monitor Serial if(num==345) //pregunta por el contenido de la variable num { digitalWrite(10,HIGH); // coloca en ALTO la salida digital PIN 10 Serial.println("------------------------"); //Mensaje a Monitor Serial Serial.println("Ud envio un "); //Mensaje a Monitor Serial Serial.println(num); Serial.println("LED ENCENDIDO"); //Mensaje a Monitor Serial Serial.println("------------------------"); delay(2000); //Los retardos son necesarios en la practica para mejorar desempeño } if(num==678) //pregunta por el contenido de la variable num { digitalWrite(10,LOW); Serial.println("------------------------"); //Mensaje a Monitor Serial Serial.println("Ud envio un "); //Mensaje a Monitor Serial Serial.println(num); Serial.println("LED APAGADO"); //Mensaje a Monitor Serial Serial.println("------------------------"); //Mensaje a Monitor Serial delay(200); //Los retardos son necesarios en la practica para mejorar desempeño } if((num!=345)&& (num!=678)) Serial.println("Orden no reconocida"); //Mensaje a Monitor Serial } }