Cree más entradas en su Arduino usando el CD4021 Shift IN Register Deja un comentario

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.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Enviar Whatsapp
Hola 👋
¿En qué podemos ayudarte?