Hola,
Necesito utilizar varios botones para que haga una parte del código depeniendo de cual pulses. Pensaba que era sencillo de acer pero no estoy segura de la conexion que tengo que hacer porque suelen poner resistencias (¿que valor?)y no se si en mi caso hace falta ya que no es que tenga que activar un led. Tiene que activar un trozo de código(el proyecto es un robot) en vez de hacer un switch case por teclado.
Alguien me saca de dudas? Gracias
Puedes usar un botón por entrada.
para las ejecuciones, puede usar varios IF
ejemplo. 3 botones cada uno en las entradas 3, 4 y 5.
if (digitalRead (3)==HIGH){
haz cosa del boton en entrada 3}
if (digitalRead (4)==HIGH){
haz cosa del boton en entrada 4}
if (digitalRead (5)==HIGH){
haz cosa del boton en entrada 5}
No sé, es una idea...
vale yo estaba pensando en eso. Y no necesito ninguna resistencia verdad¿?
y de interrupciones sabéis algo porque mi codigo está hecho apra que cuando se escoja una opcion no pare y no se como hacer que esté leyendo siempre la entrada digital ....
Saludos
Puedes usar esas instrucciones pero necesitas una de las dos siguientes acciones.
a.- Colocar resistencias PULL_DOWN externas
b.- Activar las PULL_DOWN internas.
Sino el código es inútil, ya que nunca podrá diferenciar cuando presionas un botón y cuando no. ahora desde que tengo el arduino he usado muy poco botones de esta manera, uso el sistema de entradas análogas como el que usa el keypad, así solo utilizas un solo pin analógico para 5 teclas, en lugar de usar 5 entradas digitales mas configuración de resistencias..
Hola,
Para conectar un pulsador puedes hacerlo con una resistencia de puldown como se ve en la foto:

De esta manera la entrada siempre está conectada a tierra cuando el pulsador está abierto y es inmune al ruido.
Un saludo
¿Pero como se consigue que pulsando una sola vez (porque vuelva a su posicion ) pueda seguir ejecutando el código que quieras.?=
Porque ahora solo consigo que se me mueva un servo por ejemplo cuando lo mantengo pulsado.
Y ademas para mover el servo lo tengo en una funcion aparte infinita y no se como hacer para que vaya leyendo todos los botones
Usando variables de estado. Ejemplo:
if (digitalRead (3)==HIGH || statusA==HIGH) {
statusA=HIGH;
statusB=LOW;
statusC=LOW;
//aqui el codigo de la accio A}
if (digitalRead (4)==HIGH || statusB==HIGH){
statusB=HIGH;
statusA=LOW;
statusC=LOW;
//aqui el codigo de la accion B}
if(digitalRead (5)==HIGH || statusC==HIGH){
statusC=HIGH;
statusA=LOW;
statusB=LOW;
//aqui el codigo de la accion C}
Por cierto, yo suelo declarar las entradas de pulsadores con el pullup interno, de forma que habria que cambiar los digitalRead de los if a LOW.
Las resistencias pull internas son siempre pullup, no pulldown.