Um exemplo do uso da placa Arduino para receber dados a partir do computador. Neste caso, a placa Arduino liga um LED quando receber o caractere 'H' e desliga quando receber 'L'.
Os dados podem ser transmitidos a partir do Arduino serial monitor ou um outro programa, tal como Processing (veja o código abaixo), Flash (via um proxy serial-rede), PD ou Max/MSP.
Um LED no pino 13.
int outputPin = 13;
int val;
void setup()
{
Serial.begin(9600);
pinMode(outputPin, OUTPUT);
}
void loop()
{
if (Serial.available()) {
val = Serial.read();
if (val == 'H') {
digitalWrite(outputPin, HIGH);
}
if (val == 'L') {
digitalWrite(outputPin, LOW);
}
}
}
// mouseover serial
// by BARRAGAN <http://people.interaction-ivrea.it/h.barragan>
// Demonstra como transmitir dados à placa de E/S Arduino de forma
// a acender uma luz caso o rato/mouse esteja sobre um retângulo e
// desligá-la caso contrário.
// criado em 13 Maio 2004
import processing.serial.*;
Serial port;
void setup()
{
size(200, 200);
noStroke();
frameRate(10);
// Lista no painel de saída todas as portas seriais disponíveis.
// Você precisará escolher nesta lista a porta a qual a placa
// Arduino vai conectada. A primeira porta da lista é a de
// número 0 e a terceira porta, a de número 2.
println(Serial.list());
// Abra a porta a qual a placa Arduino vai conectada (aqui, a 0)
// Certifique-se de abrir a porta à mesma velocidade do Arduino (9600bps)
port = new Serial(this, Serial.list()[0], 9600);
}
// função a testar se o rato/mouse está sobre o retângulo
boolean mouseOverRect()
{
return ((mouseX >= 50)&&(mouseX <= 150)&&(mouseY >= 50)&(mouseY <= 150));
}
void draw()
{
background(#222222);
if(mouseOverRect()) // se rato/mouse estiver sobre o retângulo
{
fill(#BBBBB0); // mude a cor
port.write('H'); // envie um 'H' como indicação
} else {
fill(#666660); // mude a cor
port.write('L'); // transmita 'L', caso contrário
}
rect(50, 50, 100, 100); // desenhe o retângulo
}