Usaremos como referencia un tutorial anterior (ver el siguiente link: "Comunicación serial (Primera parte)"), vamos a leer el valor de la resistencia de un potenciómetro conectado al pin A0 de Arduino. Éstos datos se van a mostrar a través de Processing usando una librería graficadora para mostrar los datos usando dos ejes Y y X tal como sería el caso de una función.
La conexión es la siguiente:
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
/* 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.
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
*/
int sensor = 0; // Indica el pin de entrada analogico
int val = 0; // Variable de almacenamiento de lectura del potenciometro
void setup() {
Serial.begin(9600); // Inicia el Puerto Serial
}
void loop() {
val = analogRead(sensor) / 4; // Lee el valor del potenciometro y lo convierte en 1 byte (0 a 255)
Serial.write(val); // Envia la variable al puerto serial
delay(100); // Espera 100 milisegundos
}
Al abrir el Monitor Serial de Arduino obtenemos el siguiente resultado:
El programa que va en Processing es el siguiente:
/* 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 muestra el valor cambiando el ancho de un
rectangulo mostrado en pantalla en tiempo real.
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.*; //Inicio de la comunicación serial
Serial puerto; // Crea el puerto serial
float val; // Data que se recibe del puerto serial, tipo float
void setup() {
size(440, 200); //Tamaño de la pantalla
/* NOTA IMPORTANTE:
El primer puerto serial reconocido por Serial.list() deberia ser tu Arduino. Si no es asi, borra los "//" de la ultima linea de
este comentario. Ponle PLAY al sketch de nuevo para ver la lista de puertos seriales. Entonces, cambia el 0 al numero de puerto
al que está conectado tu arduino
*/
// println(Serial.list());
String ArduinoPuerto = Serial.list()[0]; // Encuentra el primer puerto serial para iniciar la comunicacion
puerto = new Serial(this, ArduinoPuerto, 9600); // Inicio de la comunicacion con el primer puerto encontrado
}
void draw() {
if (puerto.available() > 0) { // Si hay datos en el buffer del puerto serial
val = puerto.read(); // Lectura de los datos del puerto serial
val = map(val, 0, 255, 0, width); // Conversion del valor leido
println("Valor del potenciometro: " + val); // Muestra el dato en el puerto serial
}
background(167); // Rellena el espacio de trabajo de color plomo
fill(0); // Llena el espacio del rectangulo dibujado en negro
rect(0, 0, val, 200); // Dibujo del rectangulo
}
Habiendo cerrado primero el monitor Serial de Arduino, le damos "PLAY" a processing y aparece la siguiente ventana:
Al girar el potenciómetro, vamos a ver cómo varía el tamaño del rectángulo negro en la pantalla







No hay comentarios:
Publicar un comentario