Go Down

Topic: Como leer dos pines de ARduino conectados entre si (Read 398 times) previous topic - next topic

ganimides2017

Dec 20, 2018, 01:04 am Last Edit: Dec 21, 2018, 04:54 pm by surbyte Reason: Visualizacion de imagen de acuerdo a las normas del foro
Me piden como trabajo de fin de curso hacer una especie de juego el cual tiene dos filas de 5 pulasadores cada fila:Cada pulsador tiuene asociada una clavija.Cada pulsador genera sonidos que son vinculantes ,es decir un pulador hace ruido de un auto y buscando encontras el ruido de una llave tuerca lo asocias mediante un calbe que conecta las dos clavijas.Si la combinacion que hiciste es correcta ,activa una electrovalvula.Lo que no tengo claro es como programar los dos pines que se unirian con el cable porque ¿eso no seria un corto??.Aca dejo el dibujo.Feliz año y disculpen las desprolijidades.

Adjunto una foto del sistema para que se entienda.

Saludos y feliz año!


surbyte

Lo que te piden es detectar que dos pines esten en contacto.
Entonces uno lo pones como salida y el otro como entrada y no hay corto posible.
Cuando detectes el estado indicado digamos ALTO y luego lo cambias a bajo para asegurarte que ese ese pin y en ambos casos se lee correctamente entonces tienes un contacto confirmado.

PeterKantTropus

Si no entiendo mal tu consulta, deberías tener dos circuitos separados: uno para la botonera y otro para el cable. Las botoneras son todos entradas y las de cable mitad entrada, mitad salidas. Otra alternativa, para el circuito de cableado, es utilizar las entradas analógicas, de un lado colocas resistencias para que den diferentes voltajes y del otro utilizas las entradas analógicas.
"Si no entra como tornillo, entra como clavo"

ganimides2017

Lo que te piden es detectar que dos pines esten en contacto.
Entonces uno lo pones como salida y el otro como entrada y no hay corto posible.
Cuando detectes el estado indicado digamos ALTO y luego lo cambias a bajo para asegurarte que ese ese pin y en ambos casos se lee correctamente entonces tienes un contacto confirmado.
Gracias por responder pero no es tan facil porque cada pin debe ser entrada y salida la mismo tiempo y el cable tendria que variar ese estado cuando se tocan entre los dos pines.Porque cada clavija corresponderia a un boton presionado que genero un sonido.Al moneto de tocar las clavijas cada pin del puerto tendria que estar como entra yen un nivel alto o bajo y el cable deberia cambiar ese estado y eso es justamente lo que no me queda claro como hacer.

ganimides2017

Si no entiendo mal tu consulta, deberías tener dos circuitos separados: uno para la botonera y otro para el cable. Las botoneras son todos entradas y las de cable mitad entrada, mitad salidas. Otra alternativa, para el circuito de cableado, es utilizar las entradas analógicas, de un lado colocas resistencias para que den diferentes voltajes y del otro utilizas las entradas analógicas.
Gracias por responder pero no es tan facil porque cada pin debe ser entrada y salida la mismo tiempo y el cable tendria que variar ese estado cuando se tocan entre los dos pines.Porque cada clavija corresponderia a un boton presionado que genero un sonido.Al moneto de tocar las clavijas cada pin del puerto tendria que estar como entra yen un nivel alto o bajo y el cable deberia cambiar ese estado y eso es justamente lo que no me queda claro como hacer.

surbyte

#5
Dec 21, 2018, 04:57 pm Last Edit: Dec 21, 2018, 05:12 pm by surbyte
Y como haces para que cada pin genere sonidos? Eso no me queda claro

No me respondas tone.. pregunto cada pin generando sonidos son muchos sonidos. Estoy tomando tu explicación como la leo e intentando entender la idea.



ganimides2017

Los sonidos los tengo pregrabados en formato WAV en una memoria SD clasificados por numero y los elijo por software depoendiendo que pulsador se presiono.

PeterKantTropus

Gracias por responder pero no es tan facil porque cada pin debe ser entrada y salida la mismo tiempo y el cable tendria que variar ese estado cuando se tocan entre los dos pines.Porque cada clavija corresponderia a un boton presionado que genero un sonido.Al moneto de tocar las clavijas cada pin del puerto tendria que estar como entra yen un nivel alto o bajo y el cable deberia cambiar ese estado y eso es justamente lo que no me queda claro como hacer.

Precisamente lo que te proponemos con surbyte es fijar los pines como salida o entrada y no cambiarlos. Tu idea de   cambiar el mismo pin de salida a entrada, aunque no es imposible, es de una complejidad enorme, que no se justifica.
"Si no entra como tornillo, entra como clavo"

IgnoranteAbsoluto

Voy a aportar mi granito de arena y lo que yo creo que se quiere que haga. Así que no descarto estar equivocado.

Entiendo que el juego consiste en asignar (tal vez aleatoriamente) un sonido diferente a los diez pulsadores de tal forma que el sonido de cada pulsador de una columna esté relacionado con el de un pulsador de la otra columna.

Junto a cada pulsador hay asociado un contacto, clavija o lo que sea. Y el juego consiste en conectar uno de los contactos de una columna con su correspondiente de la otra columna. La correspondencia correcta la indica los sonidos asociados. Una versión del juego de mesa conector.

Creo que lo que hay que hacer es tener quince entradas y cinco salidas (lo más fácil sería hacerlo con un MEGA). Diez de las entradas son para controlar los diez pulsadores (cinco para columna). Las cinco entradas restantes estarían en una de las columnas, "asociadas" a los pulsadores de esa columna. Las cinco salidas estarían en la otra columna asociadas a los otros pulsadores.

El Arduino tendría que hacer "un barrido" en los pines de salida y leer los pines de entrada para "averiguar" cuales son los que están conectados de una columna a otra.

Para realizar el barrido se ponen todas las salidas a nivel alto menos una. Si se activan las resistencias pull-up de los pines de entrada, estos tendrán un nivel alto si no están conectados a nada o si se han conectado a uno de los pines de salida que están a nivel alto. Mientras que el pin de entrada de pondrá a nivel bajo se está conectado al pin que hemos puesto a nivel bajo. De esta forma podemos averiguar qué pin de una columna se ha conectado al pin de la otra columna. Se hace el barrido con las cinco salidas poniendo a nivel bajo cada una de ellas mientras las otras cuatro permanecen a nivel alto y verificando si alguna entrada pasa a nivel bajo.

Si, cuando se pone a nivel bajo uno de los pines de salida, se detecta más de un pin de entrada a nivel bajo, un único pin que no es el correcto o ningún pin pasa a nivel bajo: eso significa que no está correctamente conectado. Ojo, se debería de completar "un barrido" con un al menos una conexión correcta y el resto detectar que no están conectados para dar por válida una conexión.

Nota: aconsejo activar la resistencia pull-up interna de los quince pines de entrada y conectar los pulsadores entre su respectivo pin y masa para detectar un nivel bajo cuando se pulse. Esto nos ahorra el tener que poner resistencias externas y nos evita el "ruido" que se produce en las entradas cuando están "al aire".

Go Up