Sensor Magnetico + Sensor Distancia Por Ultrasonido (Hc-sr04)

Hola, estoy trabajando en un proyecto para la facultad. Tengo un sensor magnetico (el cual me costo un huev*** hacerlo funcionar) andando que envia el estado del mismo a traves del puerto serial para que Processing pueda recibirlo y hacer cosas en base a éste. Ahora necesito agregar a esto que ya tengo un sensor de distancia para que tambien envie datos para que los pueda recibir Processing y hacer otras cosas con éstos. El tema es que no tengo NI idea de como conectarlo, el sensor de distancia lo hice andar con los ejmplos basicos y todo bien, pero no se como acoplarlo a lo que ya tengo. Alguna idea?

Gracias!!!

Adjunto una imagen de lo que tengo armado ahora.

si usas un medidor de distancia tipo HC-SR04, usa 2 lineas mas que la puedes elegir a gusto. Una emite el pulso de inicio, y otra lee el pulso de medición calculando el tiempo que tardó entre una y otra señal.

maxid:
si usas un medidor de distancia tipo HC-SR04, usa 2 lineas mas que la puedes elegir a gusto. Una emite el pulso de inicio, y otra lee el pulso de medición calculando el tiempo que tardó entre una y otra señal.

Claro entiendo lo que decis (o por lo menos le veo cierta logica) pero no tengo NI IDEA de como hacerlo. Por ejemplo, aca tengo un ejemplo del sensor ultrasonico, como haria mas o menos para fusionarlo con lo que ya tengo?

bueno, si posteas tu codigo seria mas facil, pero yo haria lo siguiente:

If (sensormagnetico())
{
hago lo que creo
}

cm= LeerDistancia(8,7);
If(cm == 2)
{
...algo
}

Por curiosidad, ¿qué sensor magnético estás usando?

Bueno voy a responder prolijamente asi se entiende mejor jeje

Estoy usando el mismo que se usa en alarmas (adjunto imagen: SENSOR-MAGNETICO-PARA-ALARMAS.jpg)

El codigo de Arduino:

const int buttonPin = 2;    
const int ledPin =  13; 

int buttonState = 0;     

void setup() {
  pinMode(ledPin, OUTPUT);      
  pinMode(buttonPin, INPUT);   
  Serial.begin(9600);  
}

void loop(){
  buttonState = digitalRead(buttonPin);

  if (buttonState == HIGH) {     
    digitalWrite(ledPin, HIGH);  
    Serial.print("1.");
    delay(250);
  } 
  else {
    digitalWrite(ledPin, LOW); 
    Serial.print("0.");
    delay(250);
  }
}

El codigo de Processing recibiendo la data, en este caso uso el estado del sensor para cambiar el fill de una ellipse (en realidad dispararia un video o no):

import processing.serial.*;
Serial port;
String valor = "xxx";
int convertido = 2;

void setup() {
  size(400, 400);
  //en mi compu el puerto es el 0, si no sabes cual es
  //fiajte que imprimo la lista de puertos
  //sacar de ahi cual tenes que poner aca
  port = new Serial(this, Serial.list()[4], 9600);
  println(Serial.list());
  port.bufferUntil('.');
}

void draw() {
  background(125);
  convertido = int(valor);  
  if (convertido == 1) {
    fill(0);
  } else {
    fill(255);
  }
  ellipse(width/2, height/2, width/3, width/3);
  //println("el valor es: " + valor);
  //println("el convertido es: " + convertido);
}

void serialEvent (Serial port) {
  valor = port.readStringUntil('.');
  // Remover el punto
  valor = valor.substring(0, valor.length() - 1);
  println("+"+valor+"+");
}

EL sketch de como lo tengo armado va adjunto, se llama button.png