Sommario:

Cascata di registri a scorrimento 74HC595 controllati tramite Arduino ed Ethernet: 3 passaggi
Cascata di registri a scorrimento 74HC595 controllati tramite Arduino ed Ethernet: 3 passaggi

Video: Cascata di registri a scorrimento 74HC595 controllati tramite Arduino ed Ethernet: 3 passaggi

Video: Cascata di registri a scorrimento 74HC595 controllati tramite Arduino ed Ethernet: 3 passaggi
Video: Elettronica digitale facile facile 11: I registri a scorrimento 2024, Settembre
Anonim
Cascata di registri a scorrimento 74HC595 controllati tramite Arduino ed Ethernet
Cascata di registri a scorrimento 74HC595 controllati tramite Arduino ed Ethernet

Oggi vi presento un progetto che ho realizzato in due versioni. Il progetto utilizza 12 registri a scorrimento 74HC595 e 96 LED, scheda Arduino Uno con shield Ethernet Wiznet W5100. 8 LED sono collegati a ciascun registro a scorrimento. I numeri 0-9 sono rappresentati da LED. Ciascun registro a scorrimento è dotato di 8 terminali di uscita.

Ciascuno dei 4 registri a scorrimento 74HC595 forma un'unità logica: un display per l'elenco di un numero a 4 cifre. In totale, ci sono 3 display logici nel progetto composti da 12 registri a scorrimento.

Le implementazioni sono compatibili per le schede Arduino Nano, Mega, Uno e per gli shield e i moduli Ethernet della famiglia Wiznet, nello specifico i modelli W5100 e W5500 (utilizzando la libreria Ethernet2).

Forniture

  • Arduino Uno / Nano
  • Wiznet Ethernet W5100 / W5500
  • Registro a scorrimento da 4 a 12 74HC595
  • 32 fino a 96 diodi LED

Passaggio 1: implementazioni implementate nel progetto con Arduino:

  • Webserver - Server HTTP in esecuzione direttamente su Arduino, consente di interpretare il codice HTML
  • WebClient - Client in grado di effettuare una richiesta HTTP a un server remoto, inviando/scaricando dati

Server web:

  • Fornisce una pagina Web HTML con un modulo che consente di inserire 3 numeri a quattro cifre.
  • Dopo l'invio del modulo, i dati vengono elaborati e archiviati nella memoria EEPROM, l'utente viene informato dell'elaborazione dei dati da una sottopagina separata.
  • Dopo aver salvato i dati, l'utente viene reindirizzato al modulo.
  • La memoria EEPROM è indipendente dall'energia, i dati sono accessibili anche dopo il ripristino dell'alimentazione, ma anche al riavvio della scheda.
  • Tutti i numeri vengono quindi rappresentati su tre display costituiti da 12 registri a scorrimento 74HC595.

Cliente Web:

  • La comunicazione con il server web avviene ogni 5 secondi dopo il protocollo
  • Il server web esegue un'applicazione web PHP che consente di inserire 3 numeri a quattro cifre tramite il modulo HTML.
  • I dati del modulo sono archiviati in un database MySQL.
  • Arduino richiede di recuperare i dati da questo database tramite una query al server.
  • I dati elaborati vengono analizzati da Arduino, quindi tracciati utilizzando i registri a scorrimento 74HC595.
  • I dati vengono inoltre archiviati nella memoria EEPROM dell'Arduino, servono in caso di interruzione della connessione al web server / al riavvio delle schede Arduino, servono per il rendering iniziale dei dati sugli shift register.
  • I dati vengono sovrascritti nella EEPROM solo quando i dati cambiano, le celle EEPROM vengono salvate da sovrascritture non necessarie.

Passaggio 2: cablaggio e screenshot

Cablaggio e screenshot
Cablaggio e screenshot
Cablaggio e screenshot
Cablaggio e screenshot

Connessione in cascata per i registri a scorrimento 74HC595 (può essere esteso di x più) - Esporta da TinkerCAD. Screenshot è presente dall'interfaccia del server web, quando ottiene i dati tramite modulo HTML, li elabora e li salva nella memoria EEPROM.

Passaggio 3: 74HC595 + codici sorgente

È chiaro dallo schema che vengono utilizzati solo 3 fili dati per controllare i registri a scorrimento:

  • Uscita dati - (da SER a 74HC595)
  • Uscita orologio - (SRCLK su 74HC595)
  • Uscita chiavistello - (RCLK a 74HC595)

I registri a scorrimento possono essere combinati in cascata, mentre altre periferiche possono anche essere controllate da registri a scorrimento, ad esempio relè per la commutazione di elementi di potenza. È anche possibile controllare 500 relè separati (con un numero sufficiente di registri a scorrimento e alimentazione) con un'uscita dati.

Quando si controllano le uscite dei registri, è anche possibile modificare l'ordine dei byte al bit più significativo - MSB FIRST, oa LSB - il bit meno significativo. Di conseguenza, inverte le uscite. In un caso, ad esempio, sono accesi 7 diodi, nell'altro 1 diodo a seconda dell'ingresso e dell'ordine dei byte.

Entrambe le implementazioni utilizzano la memoria EEPROM, che può memorizzare i dati anche dopo un'interruzione di corrente o dopo un riavvio della scheda. Il secondo utilizzo di questa memoria è anche la capacità di rappresentare gli ultimi dati conosciuti nel caso non sia possibile comunicare con il web server (errore di connettività, server).

La memoria è limitata a 10.000-100.000 trascrizioni. Le implementazioni sono progettate per il minor carico di memoria possibile. I dati non verranno sovrascritti quando vengono modificati. Se gli stessi dati vengono letti dal web server/client, non vengono sovrascritti nella memoria EEPROM.

L'implementazione del software (lato Arduino) per WebClient può essere provata gratuitamente su:

Arduino comunica con un'interfaccia web in cui è possibile modificare 3 numeri a quattro cifre:

Richiedi il codice per Arduino come server web a: [email protected] Dona per ulteriori istruzioni:

Consigliato: