Usaremos como referencia un tutorial anterior (ver el siguiente link: "Comunicación serial (Segunda 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 un cajetín mostrado en pantalla que va de 0 a 5V con decimales.
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 voltaje del potenciometro y muestra el valor en un cajetin en pantalla Autor: Renato Hurtado 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; // Variables de lectura void setup() { size(450, 80); // Tamaño de la pantalla ancho, alto 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() { lectura(); // Creacion de la etiqueta fill(0, 102, 153); // Valor de rojo, verde y azul de la letra textSize(30); // Tamano en pixeles de la letra text("VOLTAJE", 20, 50); // Texto, coordenada en x, coordenada en y // Muestra del dato por pantalla fill(255, 255, 255); // Valor de rojo, verde y azul del cajetin rect(190, 20, 250, 40); // Creacion del cajetin para dato coordenada x, y, ancho, alto fill(0, 102, 153); // Valor de rojo, verde y azul de la letra textSize(30); // Tamano en pixeles de la letra text(val + " V", 200, 50); // Texto de presentacion del dato, coordenada en x, coordenada en y } void lectura(){ 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, 5); // Conversion del valor leido println("Valor del potenciometro: " + val); // Muestra el dato en el puerto serial } }Los resultados obtenidos son los siguientes:
No hay comentarios:
Publicar un comentario