Paso 3: La teoría - varios botones en uno de los pines
Engañan! El secreto de esto está utilizando una clavija de entrada analógica, no digital.
Usted puede leer acerca de cómo la de entrada analógica funciona a través de este tutorial de Arduino. Esencialmente, lo que usted necesita saber pero es que cuando hay 0V en el pin analógico, analogRead() devuelve un valor de 0 y si hay 5V, analogRead devolverá un valor de 1023. Para cualquier tensión entre 0V y 5V, analogRead devolverá un número proporcional a la tensión.
Realmente no podemos cambiar la tensión que se suministra a la clavija (no es fácil en cualquier caso, y estoy perezoso, tan fácil es importante), pero si recuerdas en la ley de ohmios, V = IR. Se fija la corriente (I), que significa que sólo tenemos que añadir una resistencia entre la tensión de alimentación y la clavija analógica para cambiar el voltaje.
Para aquellos de ustedes que fueron recibiendo emocionada con todas las matemáticas que es necesaria calcular las tensiones, voy a tener que decepcionar a usted... Soy perezosa, así que no necesito matemáticas.
Vamos a entrar un poco más práctico, y te voy a mostrar por qué no nos importa acerca de las matemáticas. Sabemos que el pin analógico Lee voltajes y sabemos que podemos cambiar esas tensiones mediante la adición de un resistor entre ella y la tensión de alimentación. También sabemos que hemos pasado esto ahora porque queremos ser capaces de leer interruptores, por lo que probablemente deberíamos tirar algunos interruptores en demasiado.
Ahora, para aquellos que estén interesados, para diseñar esto, empezar con lo que sabes. Sé cómo conectar un interruptor individual para una sola entrada. Quería 5 botones, así que duplicar 5 veces. Simplifiqué entonces por tener una sola tire hacia abajo la resistencia conectada a todos los botones, simplemente poner resistencias entre los botones y la tensión de alimentación y atados a todas las entradas.
Si conectas cada botón a la tensión de alimentación a través de un resistor de valor diferente, dependiendo de cual boton, el valor devuelto por analogRead sería diferente, y se puede usar un montón de si declaraciones para ver qué botón se presionó. La razón que no necesita matemáticas es porque sólo conectamos todo, pulsar los botones e imprimir los valores devueltos para el puerto serie.