Tutorial - Comunicación serial: Parte 2 (Recepción de datos)

Para esta parte leeremos el valor del voltaje de un potenciómetro que está conectado al pin A0 de nuestro Arduino. Los datos se mostrarán por el puerto serial. La conexión es la siguiente:

# PIN A0 : Arduino UNO => PIN CENTRAL : Potenciómetro
# GND : Arduino UNO => EXTREMO : Potenciómetro 
# 5V : Arduino UNO => EXTREMO : Potenciómetro


El programa inicial contempla almacenar el dato de lectura del potenciómetro a través de un dato de tipo String. A través de la función "endsWith("letra")", asignamos un número que en este caso es "0" para discriminar los números divisibles por 10.
/*
   PROGRAMA DE PRUEBA DE COMUNICACION SERIAL
   CONEXION:
             Arduino (A0) : Pin central potenciometro
             Arduino (GND): Pin extremo potenciometro
             Arduino (5V) : Pin extremo potenciometro
    
   El siguiente programa nos ayuda a realizar la lectura del votlaje del potenciometro y mostrarlo por
   puerto serial solo los valores que son divisible por 10 o no
    
   Autor: Renato H.
   http://beetlecraft.blogspot.pe/
   
   El siguiente programa es de uso publico, cualquier modificacion o mal uso del mismo que pudiera 
   ocasionar el mal funcionamiento de la plataforma de uso de la misma no es responsabilidad del autor
*/
 
void setup(){
  Serial.begin(9600); // Inicio de comunicacion a 9600 bps
}
 
void loop(){
  String POT = "Lectura del potenciometro : "; // Variable de almacenamiento y muestra del dato
  POT += analogRead(A0); // Lectura del pin A0 correspondiente al voltaje

  // Escritura por puerto serial del valor del potenciometro
  Serial.print(POT);     

  // Discriminacion de la lectura del potenciometro por divisibilidad                
  if (POT.endsWith("0")){ Serial.println(" Esta lectura es divisble por 10"); } 
  else { Serial.println(" Esta lectura no es divisble por 10"); }
  
  delay(500); // Espera de 500 ms
}
El resultado obtenido es el siguiente:


Un segundo programa contempla recibir datos a través de un dato tipo integer que luego a través de la función "map(dato, valor mínimo leído, valor máximo leído, valor mínimo deseado, valor máximo deseado)" cambiamos el valor del ADC que va de "0 a 1023" y lo cambiamos a valores entre "0 a 100", para luego concatenarlo y realizar el mismo proceso que en el punto anterior.
/*
   PROGRAMA DE PRUEBA DE COMUNICACION SERIAL
   CONEXION:
             Arduino (A0) : Pin central potenciometro
             Arduino (GND): Pin extremo potenciometro
             Arduino (5V) : Pin extremo potenciometro
    
   El siguiente programa nos ayuda a realizar la lectura del votlaje del potenciometro y mostrarlo por
   puerto serial solo los valores que son divisible por 10 o no
    
   Autor: Renato H.
   http://beetlecraft.blogspot.pe/
   
   El siguiente programa es de uso publico, cualquier modificacion o mal uso del mismo que pudiera 
   ocasionar el mal funcionamiento de la plataforma de uso de la misma no es responsabilidad del autor
*/
 
void setup(){
  Serial.begin(9600); // Inicio de comunicacion a 9600 bps
}
 
void loop(){
  String POT = "Lectura del potenciometro : "; // Variable de muestra del dato
  int lectura; // Variable de almacenamiento del potenciometro
  
  lectura = analogRead(A0);                // Lectura del pin A0 correspondiente al voltaje
  lectura = map(lectura, 0, 1023, 0, 100); // Conversion de datos a formato de 0 a 100%

  POT = POT + lectura; // Concatenacion del dato
  
  // Escritura por puerto serial del valor del potenciometro
  Serial.print(POT);     

  // Discriminacion de la lectura del potenciometro por divisibilidad                
  if (POT.endsWith("0")){ Serial.println(" Esta lectura es divisble por 10"); } 
  else { Serial.println(" Esta lectura no es divisble por 10"); }
  
  delay(500); // Espera de 500 ms
}
El resultado obtenido es el siguiente:


Autor: 

No hay comentarios:

Publicar un comentario