VISIÓN DE CONJUNTO
Algunas veces, mientras construyes un proyecto, te quedas sin entradas en tu Arduino para conectar múltiples interruptores.
Por ejemplo, DigiSpark es ideal para recintos pequeños, pero no ofrece muchas formas de entradas …
Al usar un simple Registro de cambios como el CD4021, puede agregar hasta 8 entradas adicionales, usando solo 3 pines en su Arduino.
Incluso puede conectar varios de estos Shift Register juntos para tener más entradas si es necesario mientras sigue utilizando solo 3 pins.
En este tutorial utilizaremos un DigiSpark con un Registro de cambios CD4021 y leeremos 4 interruptores táctiles.
Dependiendo del interruptor presionado, el DigiSpark enviará algunos golpes de teclado a la PC.
Haciendo una especie de Button Box, donde podemos asignar cada combinación de golpes táctiles de teclado.
CONEXIONES
Aquí están las conexiones necesarias para este tutorial:
El GND y 5V (out) del DigiSpark están conectados a los rieles de potencia de la placa de prueba.
El pin 0-1-2 del DigiSpark está conectado al pin 3-10-9 del CD4021.
Una pata de los interruptores táctiles está conectada al riel de 5V.
La otra pata de los interruptores táctiles están conectados al pin 4-5-6-7 del CD4021.
Los pines 4-5-6-7 también tienen algunas resistencias de 10K conectadas a tierra para interruptores de interruptor.
EL CÓDIGO
Para que el DigiSpark actúe como un teclado, utilizaremos una biblioteca llamada “DigiKeyboard” creada por DigiStump.
Puede encontrar más información sobre la función ShiftIn utilizada para leer información del CD4021 aquí:
https://www.arduino.cc/en/Reference/ShiftIn
Como siempre, no olvides mirar nuestro video Tutorial para más información.
#include "DigiKeyboard.h" // Incluye biblioteca para emulación de teclado // Definir pines En t dataPin = 0 ; // Alfiler 0 de DigiSpark conectado a Pin 3 de CD4021 En t clockPin = 1 ; // Alfiler 1 de DigiSpark conectado a Pin 10 de CD4021 En t pestillo = 2 ; // Alfiler 2 de DigiSpark conectado a Pin 9 de CD4021 // Definir variable byte RegisterValue = 0 ; // Se usa para guardar datos de DC4021 void setup () { // definir los pines utilizados para conectarse al Registro de Turno CD4021 pinMode (dataPin, INPUT); pinMode (latchPin, OUTPUT); pinMode (clockPin, OUTPUT); } void loop () { // Establecer el pasador de cierre 1 para obtener datos recientes en el CD4021 digitalWrite (latchPin, 1 ); delayMicroseconds ( 20 ); // Establecer el pasador de cierre 0 para obtener datos de el CD4021 digitalWrite (latchPin, 0 ); // Obtener datos de registro de CD4021 en variable de bytes RegisterValue = shiftIn (dataPin, clockPin, MSBFIRST); Si (RegisterValue == B1000) { DigiKeyboard . impresión ( "Botón 1 presionado ->" ); DigiKeyboard . println (RegisterValue, BIN); } Si (RegisterValue == B100) { DigiKeyboard . impresión ( "Botón 2 presionado ->" ); DigiKeyboard . println (RegisterValue, BIN); } Si (RegisterValue == B10) { DigiKeyboard . impresión ( "Botón 3 presionado ->" ); DigiKeyboard . println (RegisterValue, BIN); } Si (RegisterValue == B10000) { DigiKeyboard . impresión ( "Botón 4 presionado ->" ); DigiKeyboard . println (RegisterValue, BIN); } retrasar( 250 ); }
DESCARGAR
Copie el código de Sketch anterior en su software Arduino IDE para programar su Arduino.
Bibliotecas usadas:
Descargar The DigiKeyboard Library
creado por DigiStump aquí:
https://github.com/digistump/DigisparkArduinoIntegration/tree/master/libraries/DigisparkKeyboard
Una vez descargado, simplemente extrae el contenido de los archivos zip dentro de tu ” arduino / en la carpeta “libraries”, y asegúrese de reiniciar el software Arduino IDE (Cerrar y volver a abrir) para que detecte esta biblioteca recién instalada.