Paso 4: Escriba su bosquejo de la prueba
Ahora debe escribir un bosquejo en el Arduino para probar los botones. Desea obtener el código para escribir resultados de depuración en el puerto serie para mostrar que cada botón está funcionando como se esperaba. En esencia, para cada clavija de entrada simplemente debe configurar el pin para aceptar la entrada y ver el pin para ver cuando va de alto (+ 5v/Vcc) a bajo (0v/Gnd). ¿Hacer esto 12 veces y eres oro, derecha? Desafortunadamente la vida no es así de simple.
En primer lugar usted necesita para asegurarse de que cuando no se presiona el botón, el pin obtiene un 5v constante, y cuando se pulsa se pone a 0v. Esto requiere el uso de una resistencia de pull-up. Si eres nuevo en electrónica esto puede sonar un poco raro pero tiene sentido cuando se piensa en él. Más información sobre las resistencias de pull-up aquí: https://learn.sparkfun.com/tutorials/pull-up-resistors. Afortunadamente el Arduino Micro tiene la capacidad de permitir resistencias pull-up internas para que no tenga que hacerlo usted mismo. Para cada perno de la entrada, sistema del perno como tal en la función setup() void:
pinMode(2, INPUT_PULLUP); // The number represents the pin number
Así que en mi caso lazo a través de una amplia gama de pernos como sigue:
const int switchCount = 12; void setup() { for (int i=0; i <= (switchCount -1); i++) { // Make the pushButton pin an input pinMode(i, INPUT_PULLUP); } }
Ahora usted necesita leer el estado de los botones. En teoría este es un simple. Para leer el estado del pin 2 sólo usa la función digitalRead():
switch2State = digitalRead(2);
Sin embargo, cuando se pulsa un botón generalmente obtienes un poco de ruido por unas milisegundos y esto puede parecer como si se se presiona rápidamente el botón. Esto puede hacer la vida difícil decir lo menos. Lo que tienes que hacer es 'debounce' el botón. Esencialmente usted leer el estado del botón, si el estado ha cambiado entonces que espera un poco antes de leer otra vez. Este debe dar el estado actual del botón sin él agitando locamente. Consulte http://arduino.cc/en/Tutorial/Debounce para obtener más información.
Esto es un poco peludo para más que un par de botones así que hice uso de la Bounce2 biblioteca para simplificar las cosas. Ver http://playground.arduino.cc/Code/Bounce para más detalles. Todo lo que necesitas hacer es descargar el archivo Bounce2-master.zip desde el enlace anterior y colocar en la carpeta de Arduino bibliotecas antes de iniciar el IDE. Luego añadir esta línea al comienzo del boceto:
#include <Bounce2.h> // http://playground.arduino.cc/Code/Bounce
Entonces puede adjuntar un objeto de gorila a cada pin del lo debounce y obtener una lectura limpia cuando el botón es presionado o liberado.
// create a bouncer objectBounce tempBouncer = Bounce(); tempBouncer.attach(2); // Attach pin 2 to the Bouncer object tempBouncer.interval(10); // Set the DeBounce timeout in milliseconds
Ahora se puede leer nítidamente cada botón basta mantener una nota de su estado cada vez que lee el pin y hacer algo si los cambios de estado. El esbozo adjunto podrá leer 12 botones y es la salida de una línea de depuración cada vez que un botón es presionado o liberado. Sólo subir el boceto a la Junta y una vez que vea la prensa luz LED CMD + SHIFT + M (Mac) o CTRL + MAYÚS + M (Win) para abrir al Monitor serie. Hay un montón de comentarios en línea para hacerle saber lo que está sucediendo.