Tutorial - Comunicación Serial (Tercera parte)

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 objetivo de éste experimento es graficar en Processing a través de Adruino. Para esto, igual que en el tutorial anterior, conectamos un potenciómetro al pin analógico A0.


El código para leer la señal del potenciómetro en Arduino es el siguiente:
/* 
   PROGRAMA PARA GRAFICACION CON PROCESSING
   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 voltaje del potenciómetro. 
   Autor: Carolina G.
   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); // Inicia la comunicación Serial a 9600 bps
}

void loop() {
  Serial.println(analogRead(A0)); // Envia el valor de la entrada analogica:
  delay(2); // Espera un bit para la conversion analoga - digital para estabilizar 
            // despues de leer
}
Los resultados se pueden ver a continuación:


El resultado que obtenemos en el monitor serial al variar el valor del potenciómetro, es el siguiente:



Para trasladar éstos valores a un gráfico en processing, desarrollamos el siguiente código:
/* 
   PROGRAMA PARA GRAFICACION CON PROCESSING
   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 voltaje del potenciometro. 
   El sketch de graficos usa cadenas en código ASCII desde el puerto serial a 9600 baud y 
   la grafica. Debe recibir valores de 0 a 1023 y luego pasar a una nueva línea

   Autor: Carolina G.
   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
*/


import processing.serial.*;
Serial Puerto;    // El puerto serial
int xPos = 1;     // Posicion horizontal del grafico
float inByte = 0; // Variable de almacenamiento para la lectura del potenciometro 

void setup () {
  size(400, 300);         // Tamano de la pantalla:
  println(Serial.list()); // Muestra el puerto conectado
  Puerto = new Serial(this, Serial.list()[0], 9600); // En el lugar de [0], debe ir el puerto
                                                     // al que esta conectado el Arduino
  Puerto.bufferUntil('\n'); // Lee el puerto serial hasta encontrar un LF (Line feed)
  background(100);          // Fondo de pantalla
}

void draw () {
  stroke(127, 34, 255); // Color de la linea 
  line(xPos, height, xPos, height - inByte); // Dibuja la linea
  if (xPos >= width) { // Verifica que hemos llegado al limite de pantalla
    xPos = 0;          // Reseteo de la posicion a la posicion inicial
    background(100);   // Fondo de pantalla
  } 
  else { xPos++; } // Nos movemos en la posicion horizontal 
}

void serialEvent (Serial Puerto) {
  String inString = Puerto.readStringUntil('\n'); // Lee la cadena hasta encontrar un enter

  if (inString != null) {
    inString = trim(inString); // Se quita los espacios en blanco:
    inByte = float(inString);  // Convierte en flotante el String leido
    println(inByte);           // Muestra el dato convertido
    inByte = map(inByte, 0, 1023, 0, height); // Convierte el dato en la altura de salida
  }
}
En la ventana de Processing le damos "PLAY", y (habiendo cerrado el monitor Serial de Arduino). Observaremos que aparece la siguiente Pantalla , y, variando el valor de la resistencia del potenciómetro, obtendremos un gráfico parecido:


Autor: 

No hay comentarios:

Publicar un comentario