Fotocelula y Arduino

Saludos a todos.En un anterior post comenté el proyecto en el que me encuentro actualmente, cuyo objetivo es el conteo de objetos mediante el uso de dos componentes principales:por un lado Arduino Uno y por otro un sensor fotoelectrico con salida relé.Gracias a un compañero del foro pude confirmar la viabilidad de la conexión entre la fotocélula y la placa Arduino sin embargo debido a mis básicos conocimientos en electrónica desconozco el proceso a seguir para realizar la conexión mencionada.He encontrado referencias tanto dentro del foro como a través de la web, sin embargo lo que localizado está mas enfocado al control de determinados componentes(lamparas,bombillas,etc) mediante conexiones de salida Arduino-relé.¿Como se realizaría la conexion (entrada) relé->Arduino para que éste pueda realizar el conteo de dicha fotocélula?. Muchas gracias de antemano.

Supongo que el rele debe tener una borna de conexion donde tu conectas los 5v que sacas del arduino y segun si el rele esta accionado o no,esos 5v te los devuelve por otra borna (comprueba con el tester).Esa entrada la conectas al pin que quieras usar ,que declaras como input y compruebas cuando esta a high.Siendo para hacer conteo ,lo mejor es que uses una interrupcion http://arduino.cc/en/Reference/AttachInterrupt

Saludos.Gracias por responder.Referente a lo que me comentas,parto de solo los dos componentes mencionados: -Arduino Uno(sin clemas); y -Sensor fotoelectrico(salida rele):http://es.rs-online.com/web/p/sensores-fotoelectricos/4805039/ Segun mencionas;¿ debería por tanto integrarle bornas a Arduino con el fin de poder realizar la conexión?. Gracias por la propuesta de código para el conteo.

Un saludo.

Siento no poder ayudarte con el dispositivo que comentas pues no lo conozco y creo que viendo el esquema la salida no esta libre de potencial(si es asi no podrias conectarlo directamente a una entrada de arduino ya que el voltaje de este dispositivo es como minimo de 12v y las entradas de arduino son de 5v) .Los reles con los que yo he trabajado son los tipicos de bobina magnetica en los cuales la alimentacion es independiente de los contactos y por lo tanto estos estan libres de potencial pudiendolos usar como un interruptor.Seria esto:

Revisando y agradeciendo la información recibida, en caso de localizar una fotocelula que posea salida rele libre de potencial,¿podria ser conectada directamente a Arduino?,en caso afirmativo,una vez realizada la conexion(salida rele a pin 2 de Arduino y conexion de potencia a fuente externa),¿cargaria directamente el codigo proporcionado anteriormente para obtener una salida del conteo de pulsos?. Gracias

Si,porque la señal que vas a obtener es la que tu le conectes al comun,en este caso un cable desde el pin 5v de la placa arduino.Si encuentras un dispositivo que funcione a 5v y no consuma mas de lo que te de Arduino (creo que uno 40 mAh o asi) perfecto lo alimentas desde Arduino ,si no lo alimentas con una fuente externa .Luego deberas conectar un cable de retorno desde una borna NA del rele(normalmente abierta,el rele en reposo no da señal) hasta el pin 2 o el 3 ,que son los dos que puedes usar en la placa UNO.El codigo es un ejemplo para que veas su funcionamiento,deberas adaptarlo a tus necesidades. attachinterupt() tiene tres parametros:el numero de interrupcion(en tu caso 0 si usas pin 2 o 1 si usas pin 3) la funcion que sera llamada,y es en esa funcion donde tienes que programar lo que quieras que pase cuando tengas un HIGH en la entrada(se habra activado el rele) y el tipo de funcionamiento que en tu caso seria RISING (cuando la entrada cambia de LOW a HIGH):

volatile int contador = 0;
void setup()
{
  attachInterrupt(0, contar, RISING);
}
void loop()
{
}
void contar()
{
  contador ++;
}

Cada vez que la entrada detecte un cambio de LOW a HIGH llamara a la funcion contar que incrementara en uno el contador.

Te agradezco enormemente la información aportada.Seguiré los pasos indicados una vez localizada la fotocelula que cumpla los requisitos enunciados y comentaré los resultados obtenidos.

De nuevo muchas gracias. Un saludo.

Buenas Tardes: La fotocelula que has seleccionado, tiene varios modelos. En la documentacion viene dos modelos con salida rele (EQ-501(T)EQ-502(T)) . Estos modelos tienen un contacto libre de potenciasl (Borna 3 y borma 4). Simplemente las tienes que conectar al arduino como si fuesen un pulsador (Hay miles de ejemplos en la red). IMPORTANTE: cuando desarrolles el soft, utiliza una interrupcion para el conteo. Si vas a contar muchas piezas, en largos intervalos de tiempo, la fotocelula salida rele no es la mejor opcion pues abrasarias el rele. La alternativa seria salida transistor PNP o NPN y rele se estado solido intermedio. Tambien es importate el tiempo de reaccion entre que la celula detecta la pieza y manda la señal. Con salida rele suele andar en los 15 ms y con salida transistor inferior a los 2 mS. Si necesitas frecuencias altas de conteo, o el tiempo que esta excitada la celula es muy bajo, no te queda mas remedio que salida transistor.

Un saludo y buena suerte...

Gracias por tu respuesta.Desconocia la probabilidad de quemar el relé por lo que a la hora de seleccionar la fotocelula orientaré también la busqueda en las salidas que me comentas ya que el objetivo del prototipo inicial es el conteo de objetos de forma ininterrumpida.El sensor debería permanecer en un determinado lugar durante 7 días.Cierto es que dentro del proyecto se incluye un reloj para activar y desactivar la conexión con la fotocélula,aún así son varias horas seguidas de detección. Muchas gracias.

Perdón por inmiscuirme, más teniendo en cuenta mi ignorancia electrónica, pero visto el precio del cacharro que mencionas, y que el uso que le vas a dar a su relé es sencillamente comunicar a arduino que pasa un objeto a una distancia < x
¿No valdría sencillamente un sensor de distancia por infrarrojos como por ejemplo éste?

Buenos días.La opción que comentas la estuve probando pero con un Sensor Ping de ultrasonidos pero tiene limitaciones en cuanto objetivo del proyecto se refiere: -El sensor de ultrasonidos Ping detecta dentro de un rango angular de valores y a mayor distancia de detección,mayor apertura de dicho rango lo cual falsea notablemente el conteo de objetos. -La distancia a la que opera el sensor que me comentas es inferior a la que precisa el prototipo en desarrollo(2-4 metros) además de detectar en un rango angular de valores. Se optó por seleccionar el sensor fotoeléctrico por detectar mediante un haz cuyo diametro suele variar unos 5cm en una distancia de 2.5m.Es cierto que su coste es mucho mayor pero espero que el rendimiento para el proyecto sea el esperado. Muchas gracias por tu sugerencia.

Saludos denuevo.Revisando algunas opciones respecto al sensor más apropiado para el proyecto en desarrollo y finalmente descartando aquellos cuya salida sea rele por lo comentado por un compañero respecto a su vida util,se ha propuesto un modelo cuyas caracteristicas de salida son: -Señal de salida: 2 salidas de contrafase, protegidas contra cortocircuitos, contra la inversión de la polaridad. -Tensión de conmutación: máx. 30 V CC -Corriente de conmutación: máx. 100 mA ,sin embargo observando estos datos la cuestion surge a la hora de plantearse su conexión con Arduino;¿seria para este caso viable si,como ya se comentó anteriormente,el objetivo es el conteo ininterrumpido de objetos durante un largo periodo de tiempo(dias)?. Un saludo.

En lo referente a la variable de conteo la de mas capacidad posible es unsigned long que te va a dar un rango de 0 a 4,294,967,295 si es esa la duda.

La verdad es que el código aún no lo he desarrollado pensando más en el hardware del proyecto.Considerando ese tipo de variable,me parece más viable (desde el punto de vista de código),dicho proyecto ya que es una gran cantidad de objetos a contar por el periodo largo en el que se encuadra el objetivo de dicho prototipo.La duda,debido a mis básicos conocimientos de electrónica,surge a la hora de realizar la conexión de señal de salida del sensor en cuestión y la placa Arduino.

si pones el datasheet o manual del modelo elegido seguro que alguien te echa un cable.

El modelo de fotocelula es: http://files.pepperl-fuchs.com/selector_files/navi/productInfo/edb/218711_eng.pdf y la placa Arduino es la Uno r3: http://arduino.cc/en/Main/arduinoBoardUno Gracias

Hola a todos!

Estoy intentando hacer justo lo mismo.

¿Finalmente conseguiste conectar el arduino con la fotocelula?

Muchas gracias, cualquier ayuda es bienvenida.

No viste un cartel en color rojo que te advertía que el mensaje tenia mas de 120 dias sin cambios? Pues la ultima vez que respondieron fue en Apr 29, 2014, 09:21 pm