Ampliar salidas arduino

74hc595 arduino

A veces, un proyecto necesita más E/S digitales que las disponibles en tu placa Arduino. Esto sucede a menudo cuando se conecta a los componentes que requieren una gran cantidad de pines para su interfaz, por ejemplo, algunas pantallas, o su proyecto utiliza muchos sensores discretos y / o actuadores.

Se espera una comprensión básica de la electrónica y la programación junto con cierta familiaridad con la plataforma Arduino. Si eres nuevo en Arduino, o simplemente quieres refrescar tus conocimientos, por favor, consulta nuestra sección Blink: Cómo hacer que un LED parpadee en un tutorial de Arduino Uno antes de continuar con éste. Además, este tutorial utilizará una protoboard sin soldadura para construir un circuito a partir de un diagrama esquemático. Las guías «Understanding Schematics» de All About Circuit, «How to Read a Schematic» de SparkFun, «How to Use Breadboards» de Core Electronics y «How to Use a Breadboard» de Science Buddies son buenos recursos para aprender a trasladar un esquema a una protoboard.

Si sólo necesitas salidas digitales adicionales para tu proyecto, el CI 74HC595 de la serie 7400, de bajo coste, es una buena opción para incorporar a tu diseño. Se trata de un registro de desplazamiento de 8 bits de entrada y salida en paralelo (SIPO) que proporciona la capacidad de cambiar los datos en serie en el chip y el bloqueo de los datos en salidas digitales paralelas separadas. Los datos pueden ser desplazados desde un Arduino hacia el registro de desplazamiento utilizando el bus serial SPI dedicado (implementación de hardware) o la función estándar Arduino shiftOut() (implementación de software) en un pin digital genérico. Elegí usar la función shiftOut() para este tutorial debido a su simplicidad junto con el ahorro de un pin digital de E/S cuando el bus SPI no es necesario para otras conexiones.

Registro de desplazamiento Arduino

74HC595Q0-Q7: Estos son los pines de salida en paralelo que se conectarán a los LEDsVcc : Este pin está conectado a 5VGND : Está conectado a una tierra común con el arduino.DS: Este pin recibe los 8 valores de bits secuenciales procedentes del arduino y lo utiliza para establecer el valor de las salidas en paralelo.STCP: Este pin es también conocido como el pin de latch o pin de reloj de registro. Cuando se pone de alto a bajo, cambia estos valores en serie a las salidas paralelas de una sola vez.SHCP: Cuando este pin pasa de alto a bajo, los valores en el registro de cambio se desplazan en 1 bit. Será pulsado ocho veces para tirar de todos los datos que usted está enviando en el pin de datos en serie.MR: Este pin es un pin activo bajo que cuando se tira de baja establece todos los bits de la salida paralela a 0. mantenerlo alto para el uso normal.OE: El pin de habilitación de salida permite la salida paralela cuando se tira a tierra y lo desactiva cuando se tira de altaConéctelo con la tierra de arduino.Para comprar piezas electrónicas comprarlas en UTSOURCE

Arduino aumentar las entradas

Hoy trabajaremos con un par de «bloques de construcción» electrónicos básicos, los registros de desplazamiento.    Estos prácticos dispositivos se utilizan para todo tipo de propósitos como la conversión de datos, el almacenamiento en búfer y el almacenamiento, pero hoy vamos a ver cómo se pueden utilizar para ampliar el número de puertos de E/S digitales en un Arduino u otros microcontroladores.

Los Arduinos ya tienen un número de puertos de E/S digitales, de hecho, el Arduino Mega 250 cuenta con 54 pines de E/S digitales más otras 16 entradas analógicas que pueden doblarse como pines de E/S digitales.    Así que con 70 pines de E/S potenciales no se suele necesitar más.

Hay muchas maneras de resolver estos problemas, incluyendo la ejecución de los LEDs en una matriz o el uso de un registro de desplazamiento. El registro de desplazamiento te permitirá dirigir un gran número de LEDs utilizando sólo unos pocos pines de E/S de Arduino.

Hay otras ocasiones en las que tienes un montón de sensores, pantallas u otros dispositivos de E/S y no puedes prescindir de muchos pines para los LEDs o los interruptores, pero necesitas una pantalla multi-LED o un pequeño teclado. De nuevo los registros de desplazamiento pueden venir al rescate.

Arduino más pines digitales

* updateShiftRegister() – Esta función pone el latchPin a bajo, luego llama a la función Arduino ‘shiftOut’ para desplazar el contenido de la variable ‘leds’ en el registro de desplazamiento antes de poner el ‘latchPin’ a alto de nuevo.

}Una vez que cargue el código en el Arduino, debería ver aparecer la salida de la siguiente manera:Si quisiera apagar uno de los LEDs en lugar de encenderlo, llamaría a una función Arduino similar bitClear() en la variable ‘leds’. Esto hará que ese bit en particular de ‘leds’ sea 0 y entonces sólo tendrías que llamar a updateShiftRegister() para actualizar los LEDs reales.Explicación del código:Lo primero que hacemos es definir los 3 pines de control, es decir, los pines de latch, de reloj y de datos del 74HC595, que vamos a conectar a los pines digitales del Arduino #5, #6 y #4 respectivamente.int latchPin = 5;

int dataPin = 4;A continuación, se define una variable llamada ‘leds’. Esta se utilizará para mantener el patrón de los LEDs que están actualmente encendidos o apagados. Los datos de tipo ‘byte’ representan números usando ocho bits. Cada bit puede estar encendido o apagado, por lo que es perfecto para llevar la cuenta de cuáles de nuestros ocho LEDs están encendidos o apagados.// Variable para mantener el patrón de qué LEDs están actualmente encendidos o apagados

Acerca del autor

admin

Ver todos los artículos