//PROGRAMA LED_CONTROL2 PARA LED RGB //Version 20-8-19 //Basado en LEDCONTROL2 Lee algo en el puerto serial y lo almacena en num /* Conexionado * Rojo PIN 9 * Verde PIN 10 * Azul PIN 11 * * * DEFINIMOS ESTA LISTA EN COMUM DE DATOS A ENVIAR * Dato enviado Color * 750 ROJO - 700 NEGRO * 800 VERDE- 850 AZUL * 150 AMARILLO - 145 MAGENTA * 900 BLANCO - 155 CYAN - CELESTE * 678 NARANJA * otros */ int num; // Definida como variable entera y global void setup() { Serial.begin(9600);// inicializamos la comunicación 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(3000); //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 analisisnum(); //Llamo funcion que analiza valores de variable num delay(2000); } //Llave final del Serial.available } //Llave final del loop //-----------ZONA DE FUNCIONES------------------------------------ void analisisnum() { Serial.println("Dato recibido"); //Colores fijos if (num==700)//Negro { analogWrite(9, 0) ; // Rojo PIN 9 analogWrite(10, 0) ; // Green - Verde PIN 10 analogWrite(11, 0) ; // blue - blue PIN 11 } if (num==750) //Rojo { analogWrite(9, 255) ; // Rojo PIN 9 analogWrite(10, 0) ; // Green - Verde PIN 10 analogWrite(11, 0) ; // blue - blue PIN 11 } if (num==800) //Verde { analogWrite(9, 0) ; // Rojo PIN 9 analogWrite(10, 255) ; // Green - Verde PIN 10 analogWrite(11, 0) ; // blue - blue PIN 11 } if (num==850) //blue { analogWrite(9, 0) ; // Rojo PIN 9 analogWrite(10, 0) ; // Green - Verde PIN 10 analogWrite(11, 255) ; // blue - blue PIN 11 } if (num==900) //Blanco { analogWrite(9, 255) ; // Rojo PIN 9 analogWrite(10, 255) ; // Green - Verde PIN 10 analogWrite(6, 255) ; // blue - blue PIN 11 } if (num==145) //Lila (Magenta) { analogWrite(9, 255) ; // Rojo PIN 9 analogWrite(10, 0) ; // Green - Verde PIN 10 analogWrite(11, 255) ; // blue - blue PIN 11 } if (num==150) //Amarillo { analogWrite(9, 255) ; // Rojo PIN 9 analogWrite(10, 255) ; // Green - Verde PIN 10 analogWrite(11, 0) ; // blue - blue PIN 11 } if (num==155) //Celeste (Cyan) { analogWrite(9, 0) ; // Rojo PIN 9 analogWrite(10, 255) ; // Green - Verde PIN 10 analogWrite(11, 255) ; // blue - blue PIN 11 } if (num==678) //Naranja un tono { analogWrite(9, 246) ; // Rojo PIN 9 analogWrite(10, 170) ; // Green - Verde PIN 10 analogWrite(11, 89) ; // blue - blue PIN 11 } }//Llave final de funcion analisisnum //-----------FIN ZONA DE FUNCIONES------------------------------------