Learning Examples | Foundations | Hacking | Links
Ejemplos > Comunicaciones
Demuestra una técnica para el envío de varios valores de la placa Arduino al ordenador. En este caso, las lecturas de tres potenciómetros se utilizan para establecer los componentes rojo, verde y azul del color de fondo de un programa en Processing.
Conectados sensores analógicos a las entradas analógicas 0, 1 y 2.
Este circuito utiliza tres sub-circuitos divisores de tensión para generar voltajes desde las resistencias de los sensores de fuerza. Un divisor de voltaje tiene dos resistencias en serie, dividiendo la tensión de forma proporcional a sus valores.
Haz click en la imagen para ampliarla
imagen desarrollada usando Fritzing. Para más circuitos de ejemplo, visita la página del proyecto Fritzing
Esquema
Haz click en la imagen para ampliarla
// Mezclador de Colores
// Este ejemplo toma una serie de valores separados por comas
// desde 0 a 1023, lo mapea en el rango de 0 a 255, y los usa para
// cambiar el color de fondo
// Created 2 Dec 2006
// by David A. Mellis
// modifed 14 Apr 2009
// by Tom Igoe
// Este código de ejemplo es de dominio público.
import processing.serial.*;
float redValue = 0; // valor rojo
float greenValue = 0; // valor verde
float blueValue = 0; // valor azul
Serial myPort;
void setup() {
size(200, 200);
// Lista todos los puertos serie disponibles
println(Serial.list());
// Doy por hecho que el primer puerto serie de la lista de mi mac
// es siempre mi Arduino, por tanto abro Serial.list()[0].
// Abre el puerto que estés usando.
myPort = new Serial(this, Serial.list()[0], 9600);
// no genera un serialEvent() a menos que se obtenga un caracter de nueva línea:
myPort.bufferUntil('\n');
}
void draw() {
// establece el color de fondo con los valores de los colores:
background(redValue, greenValue, blueValue);
}
void serialEvent(Serial myPort) {
// recoge la cadena ASCII:
String inString = myPort.readStringUntil('\n');
if (inString != null) {
// elimina cualquier espacio en blanco:
inString = trim(inString);
// divide la cadena por las comas y convierte las
// subcadenas resultantes en un array de enteros:
float[] colors = float(split(inString, ","));
// si la matriz tiene al menos tres elementos, ya sabes
// que los tienes todos. Ponga los números de las
// variables de los colores:
if (colors.length >=3) {
// map them to the range 0-255:
redValue = map(colors[0], 0, 1023, 0, 255);
greenValue = map(colors[1], 0, 1023, 0, 255);
blueValue = map(colors[2], 0, 1023, 0, 255);
}
}
}
A medida que cambian los valores de los sensores analógicos el color de fondo cambiará:

El programa (patch) max se verá como este. El texto del código está enlazaco en la imagen.