Go Down

Topic: Un sensor en dos arduinos nano (Read 157 times) previous topic - next topic

manu_ml

Hola buenas,
Soy nuevo en el foro y he tenido un problemilla. Tengo que conectar un aceptor de monedas a dos arduinos nano. El aceptor lo tengo conectado al pin de interrupcion 0 (pin 2 en la placa) de ambos arduinos, de manera que cuando llega un pulso suma 0.5 a una cuenta que llevan los dos arduinos por separado. 
Mi problema es que a veces uno de los arduinos parece no leer dichos pulsos mientras que el otro si y viceversa ,. Les he puesto en cada pin una resistencia en modo pull-up, y parece funcionar mejor, pero me sigue dando ese fallo a veces. Sé que el aceptor envía los pulsos correctamente, y creo que el problema está en la configuración que acabo de describir.
Alguien me podría echar una mano? Estaría muy agradecido

tauro0221

Hi,
Si el contacto del switche provee el ground para generar el pulso puede anadirle un condensador de ,1ufd en paralelo al switch. Esto reduce los brincos que se producden cuando abres/cierra un contacto.Puedes anadirle mas capacidad hasta que reduscas el ruido.Tambien depende de la distancia y el tipo de cable que estas usando para conectarlo a los arduinos.

surbyte

Es muy raro que dos entradas digitales no puedan compartir una misma entrada como la que nos comentas.
No estoy de acuerdo con el capacitor que sugiere @tauro0221.
La salida de un dispositivo se supone que esta debidamente diseñada para no generar cosas raras.

No pongas resistor pull-up en ambos porque los dos conforman un paralelo que no contribuye tampoco.
Deja solo 1.

Porque no posteas debidamente (usa etiquetas) el código utilizado?
Suponemos como bien dijo @tauro que compartes GND en ambos Arduinos junto con el Aceptor de monedas (lo de aceptor nunca lo había leído).

manu_ml

#3
Oct 20, 2020, 07:33 pm Last Edit: Oct 20, 2020, 07:34 pm by manu_ml
Buenas tardes,
Muchas gracias por las respuestas a ambos. el problema no son los brincos de la señal. Eso lo tengo solucionado en el código utilizando la función millis() para solo reconocer los pulsos que entren cada 20 ms evitando así las señales de rebote si las hubiera.
Ambas placas arduino comparten tierra con el aceptor.
Sabiendo ya que el problema no es de las entradas y que es posible que ambos arduinos me reconozcan la misma señal, intentaré hacer lo que me has comentado surbyte, y utilizaré solo una de las entradas con configuración pull-up y la otra no.
Subiría el código pero es bastante largo ya que el proyecto tiene más partes, así que intentaré hacer lo que me habéis comentado y si sigue sin funcionar lo subo, no quiero que os molestéis en repasarlo entero.
De nuevo muchas gracias por los consejos,
Un saludo

surbyte

@manu_ml por qué no intentas de manera mas simple.
Un código simple en ambos Arduinos, leyendo la entrada. Lo mas corto para quitarte dudas.

Algo como si leyeras un pulsador con dos Arduinos.
Conecta un pulsador a 5V y luego intenta leer su estado con ambos Arduinos.
Olvida el tema de los rebotes en esta etapa, insisto NO PUEDE haber rebotes en un dispositivo como el que mencionas, si lo hay es un mal dispositivo. Si quieres considera la librería Bounce2.h que lo hace de modo muy simple y le puedes indicar el tiempo de antirebote en el setup().

Cuando pruebes eso, y veas que no hay problema buscarás el inconveniente en otro lado. Y te vas a sorprender.

No veo porque dos Arduinos que leen una entrada digital no puedan leer lo mismo. Ni dos ni mas.


tauro0221

Hi,
Pregunta como alimentas los dos arduino por separado o ccon una misma fuente.

surbyte

Y cual sería la diferencia con fuentes separadas compartiendo GND o con única fuente?

Go Up