Dexter, você deve ligar os pinos IN e OUT a dois I/Os do Arduino, o pino IN controla a leitura e o pino OUT gera um pulso proporcional à distância lida pelo sensor.
Por exemplo, ligando o pino IN ao pino 4 do Arduino e o pino OUT ao pino 5 do Arduino, seu código deve ficar mais ou menos assim:
//codigo baseado em um projeto do fundo do bau
//do tempo que eu usava os BS1 da Tato...
//inicializa I/Os
byte pinoInSensor = 4; //pino 4, IN do sensor
byte pinoOutSensor = 5; //pino5, OUT do sensor
//variaveis globais
byte distanciaEmCm = 0; //usa variavel byte por 2 motivos, o sensor nao le direito acima de +-220cm, e fica mais facil mandar pela serial
unsigned long duracaoDoPulso = 0;
void setup()
{
pinMode(pinoInSensor, OUTPUT); //seta pino como saida
digitalWrite(pinoInSensor, HIGH); //seta nivel alto na saida, estado de repouso do sensor
pinMode(pinoOutSensor, INPUT); //seta pino como entrada
digitalWrite(pinoOutSensor, HIGH); //habilita pull-up interno, so pra garantir...
Serial.begin(9600);
}
//programa princpal
void loop()
{
//gera pulso de 50uS no pino IN do sensor para iniciar uma leitura
digitalWrite(pinoInSensor, LOW);
delayMicroseconds(50);
digitalWrite(pinoInSensor, HIGH);
//deixa pino 5 esperando o pulso de leitura do sensor, que ocorre em nivel alto
duracaoDoPulso = pulseIn(pinoOutSensor, HIGH);
//converte a leitura de microsegundos para centimetros
duracaoDoPulso *= 34; //multiplica pela velocidade do som
duracaoDoPulso /= 2; //divide por 2, pois a leitura = tempo de ida + volta
duracaoDoPulso /= 1000; //acerta a escala para centimetros
if(duracaoDoPulso > 220) //overflow, erro na leitura do sensor...
{
duracaoDoPulso = 255; //valor 255 indica overflow, use como referencia no processing...
}
//passa valor para variavel byte e manda pela serial
distanciaEmCm = duracaoDoPulso;
Serial.print(distanciaEmCm, BYTE);
//espera 1 segundo até a próxima leitura
delay(1000);
}