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 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 } }
No hay comentarios:
Publicar un comentario