Table des matières:

Cascade de registres à décalage 74HC595 contrôlés via Arduino et Ethernet : 3 étapes
Cascade de registres à décalage 74HC595 contrôlés via Arduino et Ethernet : 3 étapes

Vidéo: Cascade de registres à décalage 74HC595 contrôlés via Arduino et Ethernet : 3 étapes

Vidéo: Cascade de registres à décalage 74HC595 contrôlés via Arduino et Ethernet : 3 étapes
Vidéo: How to cascade 74hc595 shift register 2024, Juillet
Anonim
Cascade de registres à décalage 74HC595 contrôlé via Arduino et Ethernet
Cascade de registres à décalage 74HC595 contrôlé via Arduino et Ethernet

Aujourd'hui, je voudrais présenter un projet que j'ai mis en œuvre en deux versions. Le projet utilise 12 registres à décalage 74HC595 et 96 LED, une carte Arduino Uno avec blindage Ethernet Wiznet W5100. 8 LED sont connectées à chaque registre à décalage. Les nombres 0-9 sont représentés par des LED. Chaque registre à décalage est équipé de 8 bornes de sortie.

Chacun des 4 registres à décalage 74HC595 forme une unité logique - un affichage pour lister un nombre à 4 chiffres. Au total, il y a 3 affichages logiques dans le projet constitués de 12 registres à décalage.

Les implémentations sont compatibles pour les cartes Arduino Nano, Mega, Uno et pour les shields et modules Ethernet de la famille Wiznet, en particulier les modèles W5100 et W5500 (utilisant la bibliothèque Ethernet2).

Fournitures

  • Arduino Uno/Nano
  • Ethernet Wiznet W5100 / W5500
  • 4 à 12 registres à décalage 74HC595
  • 32 à 96 diodes LED

Étape 1: Implémentations implémentées dans le projet avec Arduino:

  • Serveur Web - Serveur HTTP fonctionnant directement sur Arduino, permet d'interpréter le code HTML
  • WebClient - Client capable de faire une requête HTTP vers un serveur distant, envoyant/téléchargeant des données

Serveur Web:

  • Fournit une page Web HTML avec un formulaire qui vous permet d'entrer 3 nombres à quatre chiffres.
  • Après l'envoi du formulaire, les données sont traitées et stockées dans la mémoire EEPROM, l'utilisateur est informé du traitement des données par une sous-page séparée.
  • Après avoir enregistré les données, l'utilisateur est redirigé vers le formulaire.
  • La mémoire EEPROM est indépendante de l'énergie, les données sont accessibles même après la reprise de l'alimentation, mais aussi le redémarrage de la carte.
  • Tous les nombres sont ensuite représentés sur trois affichages composés de 12 registres à décalage 74HC595.

WebClient:

  • La communication avec le serveur Web a lieu toutes les 5 secondes après le protocole
  • Le serveur Web exécute une application Web PHP qui vous permet de saisir 3 nombres à quatre chiffres via le formulaire HTML.
  • Les données du formulaire sont stockées dans une base de données MySQL.
  • Arduino demande à récupérer les données de cette base de données via une requête au serveur.
  • Les données traitées sont analysées par Arduino, puis tracées à l'aide des registres à décalage 74HC595.
  • Les données sont également stockées dans la mémoire EEPROM de l'Arduino, elles sont utilisées en cas d'échec de la connexion au serveur web / lorsque les cartes Arduino sont redémarrées, elles sont utilisées pour le rendu initial des données sur les registres à décalage.
  • Les données sont écrasées dans l'EEPROM uniquement lorsque les données changent, les cellules EEPROM sont sauvegardées contre l'écrasement inutile.

Étape 2: Câblage et capture d'écran

Câblage et capture d'écran
Câblage et capture d'écran
Câblage et capture d'écran
Câblage et capture d'écran

Connexion en cascade pour les registres à décalage 74HC595 (peut être étendue de x plus) - L'exportation depuis TinkerCAD. La capture d'écran est là depuis l'interface du serveur Web, lorsqu'elle obtient des données via un formulaire HTML, les traite et les enregistre dans la mémoire EEPROM.

Étape 3: 74HC595 + codes sources

Il ressort du schéma que seuls 3 fils de données sont utilisés pour contrôler les registres à décalage:

  • Prise de données - (SER à 74HC595)
  • Sortie horloge - (SRCLK sur 74HC595)
  • Prise de verrouillage - (RCLK à 74HC595)

Les registres à décalage peuvent être combinés en cascade, tandis que d'autres périphériques peuvent également être contrôlés par des registres à décalage - par exemple, des relais pour la commutation d'éléments de puissance. Il est également possible de contrôler 500 relais séparés (avec un nombre suffisant de registres à décalage et d'alimentation) avec une seule sortie de données.

Lors du contrôle des sorties des registres, il est également possible de modifier l'ordre des octets au bit le plus significatif - MSB FIRST, ou au LSB - le bit le moins significatif. En conséquence, il inverse les sorties. Dans un cas, par exemple, 7 diodes sont allumées, dans l'autre cas 1 diode selon l'entrée et l'ordre des octets.

Les deux implémentations utilisent la mémoire EEPROM, qui peut stocker des données même après une panne de courant ou après un redémarrage de la carte. La deuxième utilisation de cette mémoire est aussi la possibilité de représenter les dernières données connues au cas où il ne serait pas possible de communiquer avec le serveur web (erreur de connectivité, serveur).

La mémoire est limitée à 10 000 à 100 000 transcriptions. Les implémentations sont conçues pour une charge mémoire minimale. Les données ne seront pas écrasées lorsqu'elles seront modifiées. Si les mêmes données sont lues depuis le serveur Web/client, elles ne sont pas écrasées dans la mémoire EEPROM.

L'implémentation logicielle (côté Arduino) pour WebClient peut être essayée gratuitement à l'adresse:

Arduino communique avec une interface web dans laquelle il est possible de modifier 3 nombres à quatre chiffres:

Demandez le code pour Arduino en tant que serveur Web à l'adresse: [email protected] pour plus d'instructions:

Conseillé: