Tabla de contenido:

Cascada de registros de cambio 74HC595 controlados a través de Arduino y Ethernet: 3 pasos
Cascada de registros de cambio 74HC595 controlados a través de Arduino y Ethernet: 3 pasos

Video: Cascada de registros de cambio 74HC595 controlados a través de Arduino y Ethernet: 3 pasos

Video: Cascada de registros de cambio 74HC595 controlados a través de Arduino y Ethernet: 3 pasos
Video: Arduino y 74HC595 con LEDs | Registro de Desplazamiento | Sponsor LCSC 2024, Noviembre
Anonim
Cascada de registros de cambio 74HC595 controlados a través de Arduino y Ethernet
Cascada de registros de cambio 74HC595 controlados a través de Arduino y Ethernet

Hoy me gustaría presentarles un proyecto que he implementado en dos versiones. El proyecto utiliza 12 registros de turno 74HC595 y 96 LEDs, placa Arduino Uno con escudo Ethernet Wiznet W5100. 8 LED están conectados a cada registro de desplazamiento. Los números del 0 al 9 están representados por LED. Cada registro de desplazamiento está equipado con 8 terminales de salida.

Cada uno de los 4 registros de desplazamiento 74HC595 forma una unidad lógica: una pantalla para mostrar un número de 4 dígitos. En total, hay 3 visualizaciones lógicas en el proyecto que constan de 12 registros de turno.

Las implementaciones son compatibles para placas Arduino Nano, Mega, Uno y para escudos y módulos Ethernet de la familia Wiznet, específicamente modelos W5100 y W5500 (usando la biblioteca Ethernet2).

Suministros

  • Arduino Uno / Nano
  • Ethernet Wiznet W5100 / W5500
  • 4 hasta 12 registro de desplazamiento 74HC595
  • 32 hasta 96 diodos LED

Paso 1: Implementaciones implementadas en el proyecto con Arduino:

  • Servidor web: servidor HTTP que se ejecuta directamente en Arduino, permite interpretar el código HTML
  • WebClient: cliente capaz de realizar una solicitud HTTP a un servidor remoto, enviando / descargando datos

Servidor web:

  • Proporciona una página web HTML con un formulario que le permite ingresar 3 números de cuatro dígitos.
  • Después de enviar el formulario, los datos se procesan y almacenan en la memoria EEPROM, el usuario es informado sobre el procesamiento de datos por una subpágina separada.
  • Después de guardar los datos, se redirige al usuario al formulario.
  • La memoria EEPROM es independiente de la energía, se puede acceder a los datos incluso después de la recuperación de energía, pero también se reinicia la placa.
  • Luego, todos los números se representan en tres pantallas que constan de 12 registros de desplazamiento 74HC595.

WebClient:

  • La comunicación con el servidor web se realiza cada 5 segundos después del protocolo
  • El servidor web ejecuta una aplicación web PHP que le permite ingresar 3 números de cuatro dígitos a través del formulario HTML.
  • Los datos del formulario se almacenan en una base de datos MySQL.
  • Arduino solicita recuperar datos de esta base de datos a través de una consulta al servidor.
  • Los datos procesados son analizados por Arduino, luego trazados usando los registros de desplazamiento 74HC595.
  • Los datos también se almacenan en la memoria EEPROM del Arduino, se utilizan en caso de que falle la conexión al servidor web / cuando se reinician las placas Arduino, se utilizan para la representación inicial de los datos en los registros de desplazamiento.
  • Los datos se sobrescriben en la EEPROM solo cuando los datos cambian, las celdas EEPROM se guardan de una sobrescritura innecesaria.

Paso 2: cableado y captura de pantalla

Cableado y captura de pantalla
Cableado y captura de pantalla
Cableado y captura de pantalla
Cableado y captura de pantalla

Conexión en cascada para registros de turno 74HC595 (se puede extender x más) - Exportación desde TinkerCAD. La captura de pantalla está allí desde la interfaz del servidor web, cuando obtiene datos a través de un formulario HTML, los procesa y los guarda en la memoria EEPROM.

Paso 3: Códigos fuente 74HC595 +

En el diagrama se desprende claramente que solo se utilizan 3 cables de datos para controlar los registros de desplazamiento:

  • Salida de datos - (SER a 74HC595)
  • Salida de reloj - (SRCLK en 74HC595)
  • Salida del pestillo - (RCLK a 74HC595)

Los registros de desplazamiento se pueden combinar en cascada, mientras que otros periféricos también se pueden controlar mediante registros de desplazamiento, por ejemplo, relés para conmutar elementos de potencia. También es posible controlar 500 relés separados (con un número suficiente de registros de desplazamiento y fuente de alimentación) con una salida de datos.

Al controlar las salidas de los registros, también es posible modificar el orden de los bytes al bit más significativo - MSB FIRST, o al LSB - el bit menos significativo. Como resultado, invierte las salidas. En un caso, por ejemplo, se encienden 7 diodos, en el otro caso 1 diodo dependiendo de la entrada y el orden de los bytes.

Ambas implementaciones usan memoria EEPROM, que puede almacenar datos incluso después de un corte de energía o después de reiniciar la placa. El segundo uso de esta memoria es también la capacidad de representar los últimos datos conocidos en caso de que no sea posible comunicarse con el servidor web (error de conectividad, servidor).

La memoria está limitada a 10, 000 a 100, 000 transcripciones. Las implementaciones están diseñadas para la menor carga de memoria posible. Los datos no se sobrescribirán cuando se modifiquen. Si se leen los mismos datos desde el servidor / cliente web, no se sobrescriben en la memoria EEPROM.

La implementación del software (lado de Arduino) para WebClient se puede probar de forma gratuita en:

Arduino se comunica con una interfaz web en la que es posible modificar 3 números de cuatro dígitos:

Solicite el código para Arduino como servidor web en: [email protected] Done para obtener más instrucciones:

Recomendado: