LEER UN POTENCIOMETRO CON PROCESSING Y JFREECHART
Programa en Processing:
import java.awt.*;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.ThermometerPlot;
import org.jfree.data.general.DefaultValueDataset;
import org.jfree.data.general.ValueDataset;
import processing.serial.*;
PImage chartImage;
JFreeChart termometro;
ThermometerPlot thermometerplot;
DefaultValueDataset dataset;
float valor = 0;
void setup(){
size(500, 300);
dataset = new DefaultValueDataset(valor);
thermometerplot = new ThermometerPlot(dataset);
thermometerplot.setThermometerPaint(Color.lightGray);
thermometerplot.setUnits(2); // 1->°F, 2->°C, 3°K
1
thermometerplot.setGap(3);
Serial myPort; // Puerto serial
println(Serial.list());
myPort = new Serial(this, "COM4", 9600); //Configuración del puerto
// un evento serialEvent() es generado cuando un caracter de nueva línea es producida:
myPort.bufferUntil('\n');
void draw(){
//Dibujo del termometro
dataset = new DefaultValueDataset(valor);
thermometerplot = new ThermometerPlot(dataset);
termometro = new JFreeChart("Temperatura", JFreeChart.DEFAULT_TITLE_FONT,
thermometerplot, true);
chartImage = new PImage(termometro.createBufferedImage(500,300));
image(chartImage, 0, 0);
void serialEvent (Serial myPort) {
// get the ASCII string:
String inString = myPort.readStringUntil('\n');
if (inString != null) {
inString = trim(inString); // recortar los espacios en blanco.
valor = float(inString); // convert to a number.
valor = map(valor, 0, 1023, 0, 100); //convertir las lecturas del potenciómetro(0 - 1023) a
la escala (0,100).
Programa en Arduino:
void setup () {
Serial.begin(9600); // initialize serial communications @ 9600
void loop() {
int potenciometro = analogRead(A0); // leer pin de entrada
2
Serial.println(potenciometro);
delay(1); // slight delay to stabilize the ADC