Hola, estoy realizando un proyecto en Arduino, casi todo pmi programa está completo y funcionando correctamente, sin embargo, quiero implementar unos switches y botones que hagan que se ejecute cierta acción u otra. Por ejemplo si un switch da una lectura high y también otro botón, entonces hará x funciones.
Traté poniendo:
if (digitalread(switch) == high)
y adentro todo el programa que quiero que se ejecute cuando esto sea verdadero
Pero no funciona, pero para ver si el resto funcionaba puse
if (digitalread(switch) == low)
y el resto del programa se ejecutaba con normalidad
Ya intenté poniendo resistencias pull up para evitar cortos en la arduino, pero no sé si algo más esté fallando.
Perdonen si es una pregunta muy estúpida pero no encuentro otro posible error debido a que soy un novato en arduino. Gracias de antemano por responder
Eso es más que todo cuestión de a dónde ese botón conecta al pin: voltaje o tierra. Si dices que funciona solo en estado LOW, es porque lo conecta a tierra.
Hola, gracias por sus respuestas, en mi circuito utilizo ambos, sé que el pulsador tiene un estado de reposo y el switch dos estados. El problemas es que cuando por ejemplo pongo mi switch en estado high o el boton en high, el programa no ejecuta lo que està dentro del if. Pero si uso if low sì, pero yo quiero que lo haga con High.
Obelix117: No te entendì muy bien, te refieres a algo asì?:
Sigues equivocado. Los 5v los sigue recibiendo el pin de entrada (mediante el pull-up). Un extremo del switch se conecta a tierra, y el otro a nada.
Obelix117:
Yo le estoy poniendo una resistencia (una resistencia que llaman pull up) porque leì que si no la pones puede provocar un corto en la arduino.
Ahí sí estás en lo correcto; aunque el corto circuito no lo sufriría el microcontrolador, sino más bien la fuente de poder.
Prescindir de ella no solo puede ocasionar corto circuito, también lecturas aleatorias cuando tampoco está conectado a tierra.
PD: en configuración “pull-up”, el estado activo es bajo (LOW); por lo tanto, no esperes que con HIGH se detecte una pulsación o cambio en el switch.