# Mostrando datos desde el puerto serie de Arduino

**URL:** https://discourse.processing.org/t/mostrando-datos-desde-el-puerto-serie-de-arduino/954
**Category:** Español
**Created:** [June 14, 2018, 10:35am UTC](https://discourse.processing.org/t/mostrando-datos-desde-el-puerto-serie-de-arduino/954 "2018-06-14T10:35:05Z")
**Posts on this page:** 2
**Page:** 1

<div class="post-metadata">

### Author: ![albertoG1](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/albertog1/32/446_2.png) [@albertoG1](https://discourse.processing.org/u/albertoG1)
#### Post date: [June 14, 2018, 10:35am UTC](https://discourse.processing.org/t/mostrando-datos-desde-el-puerto-serie-de-arduino/954/1 "2018-06-14T10:35:05Z")

</div>

Pues tengo un programa muy sencillo hecho con un Arduino Nano y un sensor de humedad.  
El sensor obtiene un dato por segundo y lo muestra en el puerto serie con dos valores, el primero con valores de cero a 1023 del sensor y el segundo en porcentajes, separadoros ambos valores por un espacio.  
Pongo el sketch de Arduino:

```auto
//*Sensor de humedad, Arduino Nano.
//*Por Puerto serie arroja el valor de la conductividad, luego un espacio vacío y
//*luego el valor porcentual

#include <Wire.h>

const int sensorPin = A0; //Sensor de humedad
unsigned long humedad, Porcentaje = 0; //Valor de humedad y su porcentaje

void setup () 
{
  Serial.begin(115200); //Inicia el puerto serie
}

void loop () 
{
  humedad = 1023 - analogRead(sensorPin); //Invertir el valor (resistencia a conductancia)
  //humedad = humedad * log(3);
  Serial.print(humedad); //Muestra el valor de conductancia
  Serial.print(" "); //Un espacio en blanco
  Porcentaje = humedad * 100 / 1023; //Cálculo porcentual
  Serial.println(Porcentaje); //Muestra el porcentaje
  //Serial.println();
  delay(1000);
}
```

Como introducción diré que con Processing quiero hacer varias ventanas para graficar los datos de formas diferentes, una ventana con el listado de los datos digitales. otra con un gráfico de líneas con la evolución de los datos y otro con un gráfico de barra donde la barra vaya “subiendo y bajando” de acuerdo al valor de la conductancia y al mismo tiempo cambiando de color.  
Por ahora el problema es que he hecho la ventana de los datos digitales, en la cual muestro la fecha y la hora pero quiero que haga un listado, y lo que hace ahora mismo es mostrar los datos de fecha y hora siempre en la misma línea, no sé que comandos necesito para que aparezcan listados todos los valores y luego hagan un scrolling al llegar al final de la ventana.

Pongo el Sketh del IDE de Processing:

```auto
PImage img;

void setup()
{
  size(640,480);// creamos la ventana
  textSize(20);// definimos el tamaño de la letra
  img = loadImage("Logo_Digital.jpg");
}

void draw()
{
  background(300);
  int y = 20;
  image(img,520, 10);
  int Anio = year(); // Valores de 2015, 2014, etc
  int Mes = month(); // Valores de 1 a 12
  int Dia = day(); // Valores de 1 a 31
  fill(255,0,0);
  int Segundos = second(); // Valores de 0 a 59
  int Minutos = minute(); // Valores de 0 a 59
  int Hora = hour(); // Valores de 0 a 23
  text(Dia + "/" + Mes + "/" + Anio + " " + 
  Hora + ":" + Minutos + ":" + Segundos, 10, y);
}
```

---

<div class="post-metadata">

### Author: ![jeremydouglass](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/jeremydouglass/32/20_2.png) [@jeremydouglass](https://discourse.processing.org/u/jeremydouglass)
#### Post date: [June 20, 2018, 12:09am UTC](https://discourse.processing.org/t/mostrando-datos-desde-el-puerto-serie-de-arduino/954/2 "2018-06-20T00:09:13Z")

</div>

> [@Display data in window from Arduino serial port](https://discourse.processing.org/t/display-data-in-window-from-arduino-serial-port/955/2):
>
> You could use a [StringList](https://processing.org/reference/StringList.html) as a buffer. Add the text to the list instead of displaying it right away. If the buffer is larger than some number, remove the oldest entry (index zero). Call text() in a loop to draw the whole list.
