El siguiente código de ejemplo nos permitirá ajustar el brillo de un led conectado a una salida PWM. De este modo al escribir el valor deseado desde el monitor serial y pulsar la tecla intro, el led se iluminara con el brillo deseado.
En el ejemplo de los módulos RF use un código parecido a este para recoger los datos enviados, sin embargo hacia falta terminar siempre con un punto, ahora con un simple intro funciona igual.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
#define led 3 void setup() { pinMode(led, OUTPUT); Serial.begin(9600); Serial.println("Introduzca un numero de 0 a 255:\n"); }; void loop() { char cad[4]; int i; // Cuando haya caracteres por leer en el buffer: if( Serial.available() > 0) { // Es necesario hacer una pequeña pausa o da error la concatenación. delay(5); // Se guardan los caracteres del buffer en una cadena temporal: for( i=0 ; Serial.available() > 0 ; i++ ) cad[i] = Serial.read(); // Extrae un carácter del buffer y lo guarda en la cadena temporal. // Se añade el fin de línea a la cadena: cad[i] = '\0'; // Por ultimo se pasa la cadena a entero y se le hace un casting a byte // y se envía a analogWrite para que aplique el nuevo valor. analogWrite(led, (byte)atoi(cad)); } }; |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
#define pLED 3 void setup() { pinMode(pLED, OUTPUT); Serial.begin(9600); Serial.println("Introduzca un numero de 0 a 255:\n"); } void loop() { if( Serial.available() > 0 ) { delay(5); analogWrite(pLED, Serial.parseInt()); while( Serial.available() > 0 && Serial.read() > -1 ); //Clean the buffer } } |
a este código le hace falta algo
No le falta nada, pero se podría simplificar el código enormemente, revisa el segundo ejemplo.
me encanta gracias n.n por el programa n.n