Réponse rapide

Si vous avez besoin de nombreuses sorties simples marche/arrêt et souhaitez le coût le plus bas par broche, utilisez un registre à décalage 74HC595. Si vous avez besoin de quelques sorties et souhaitez économiser des broches de microcontrôleur, utilisez un expanseur I2C comme le PCF8574. Le compromis se situe entre le nombre de broches, la simplicité du câblage et le courant de sortie.

Fonctionnement du registre à décalage 74HC595

Le 74HC595 est un registre à décalage série-parallèle de 8 bits. Vous envoyez les données bit par bit en utilisant trois broches du microcontrôleur : données, horloge et verrouillage. Une fois verrouillées, les huit sorties conservent leur état jusqu'à ce que vous les mettiez à jour à nouveau. Cela le rend idéal pour piloter des LED, des relais ou d'autres charges à faible courant. Comme il s'agit d'un registre à décalage, vous pouvez chaîner plusieurs puces pour ajouter 8, 16, 24 sorties ou plus tout en n'utilisant que trois broches du microcontrôleur. Le 74HC595 peut fournir ou absorber suffisamment de courant pour des LED standard, mais pour des charges plus puissantes, vous aurez besoin d'un driver comme un transistor ou un circuit intégré driver dédié. Le boîtier DIP-16 est adapté aux plaques d'essai, et notre 74HC595 8 bits Registre à Décalage Série (DIP 16) (Paquet de 5) vous donne cinq puces pour moins de $1.40, ce qui représente un coût très faible par sortie.

Comment fonctionnent les expanseurs de ports I²C

Les expanseurs de ports I²C comme le PCF communiquent via le bus I²C à deux fils (SDA et SCL). Chaque expanseur possède une adresse I²C unique, vous pouvez donc en connecter plusieurs sur le même bus sans utiliser de broches supplémentaires. Le PCF fournit des broches d'E/S quasi-bidirectionnelles, mais ce ne sont pas de véritables sorties push-pull ; elles peuvent absorber du courant mais en fournissent très peu. Cela les rend meilleures pour les entrées ou pour piloter des charges nécessitant un signal bas, comme tirer la base d'un transistor à l'état bas. Comme I²C est un bus, le câblage est plus simple : seulement deux fils pour les données plus l'alimentation et la masse. Cependant, le compromis est la vitesse et la capacité de courant. I²C est plus lent que l'interface série du registre à décalage, et le courant source limité signifie que vous avez souvent besoin de pilotes externes pour les LED ou les relais. De plus, chaque périphérique I²C nécessite une adresse unique, vous ne pouvez donc en avoir qu'un nombre limité sur un bus.

Différences clés : vitesse, courant et coût de la broche

Le 74HC595 l'emporte en vitesse et en capacité de courant. Il peut être mis à jour très rapidement, ce qui le rend adapté aux effets de multiplexage ou de type PWM si vous basculez rapidement le verrou. Ses sorties peuvent fournir ou absorber suffisamment de courant pour des LED standard directement. L'extenseur I2C est plus lent et a une sortie plus faible, mais il n'utilise que deux broches de microcontrôleur au total, quel que soit le nombre d'extenseurs que vous chaînez. Le registre à décalage utilise trois broches par chaîne, mais vous pouvez chaîner de nombreuses puces sans conflit d'adresses. Le coût par sortie est inférieur avec le 74HC595, surtout lorsque vous achetez des lots comme le lot de 5 que nous proposons. Pour les extenseurs I2C, le coût par broche est plus élevé, et vous pourriez avoir besoin de composants de pilotage supplémentaires pour les charges nécessitant plus de courant.

Considérations pratiques sur le câblage et le code

Le câblage d'un 74HC595 est simple : connectez VCC et GND, puis reliez SER (données) à une broche du microcontrôleur, SRCLK (horloge) à une autre et RCLK (latch) à une troisième. Vous pouvez les chaîner en connectant Q7' d'un registre à décalage à SER du suivant. Pour les expanseurs I2C, connectez SDA et SCL aux broches I2C de votre microcontrôleur et réglez les broches d'adresse pour éviter les conflits. Dans le code, le 74HC595 utilise shiftOut() ou SPI, tandis que le PCF8574 utilise les commandes de la bibliothèque Wire. Si vous devez lire des entrées, le PCF8574 peut le faire, mais le 74HC595 ne peut pas lire ; il est exclusivement dédié aux sorties. C'est une limitation clé : si votre projet nécessite à la fois des entrées et des sorties, vous aurez peut-être besoin d'un expanseur différent ou d'une combinaison.

Quand choisir chaque option

Choisissez le 74HC595 lorsque vous avez besoin de nombreuses sorties, de mises à jour rapides et d'un pilotage direct des LED. Il est parfait pour les matrices de LED, les afficheurs à 7 segments ou le pilotage de nombreux relais via un driver. Optez pour un expanseur I2C lorsque vous manquez de broches sur le microcontrôleur et n'avez besoin que de quelques sorties, ou lorsque vous souhaitez également ajouter des entrées. I2C est également préférable lorsque vous avez plusieurs périphériques sur le même bus et souhaitez minimiser le câblage. Si vous devez piloter des moteurs, envisagez un shield dédié comme le Motor Drive Shield L293D pour Arduino, qui gère le courant et offre une interface pratique. Pour de simples indicateurs d'état, quelques LED diffuses de 3 mm (blanches) pilotées directement depuis un 74HC595 ou via un transistor depuis un expanseur I2C peuvent faire l'affaire. Et si vous prototypiez avec des puces DIP, un support ZIF noir à 28 broches facilite l'échange des CI et réduit l'endommagement des broches.

Compromis en un coup d'œil

  • Coût vs simplicité de câblage : 74HC595 utilise 3 broches du microcontrôleur par chaîne mais peut ajouter de nombreuses sorties à moindre coût. Les expanseurs I2C n'utilisent que 2 broches au total mais coûtent plus par sortie et ont des limitations d'adressage. Choisissez un registre à décalage pour de nombreuses sorties ; choisissez I2C pour peu de sorties et un minimum de broches.
  • Courant de sortie et vitesse : 74HC595 peut fournir/absorber suffisamment de courant pour les LED et se met à jour rapidement. Les extensions I2C ont un courant de source faible et des taux de mise à jour plus lents. Pour un pilotage direct des LED ou des mises à jour rapides, utilisez 74HC595. Pour les signaux à faible courant ou les entrées, I2C convient.
  • Capacité d'entrée : 74HC595 est exclusivement en sortie. Les expanseurs I2C comme PCF8574 peuvent lire des entrées, mais avec des broches quasi-bidirectionnelles. Si vous avez besoin d'entrées, un expanseur I2C est plus flexible ; sinon, un registre à décalage est plus simple pour les sorties.

Informations produit

  • 74HC595 registre à décalage série 8 bits (DIP 16) (lot de 5): Contient 5 74HC595 8 bit de registres à décalage série (DIP 16) ICs. La fiche technique est disponible sur notre forum d'assistance ici. Veuillez noter que le fabricant de cette puce peut changer. Cinq registres à décalage vous offrent jusqu'à 40 sorties pour un coût très faible, et le boîtier DIP est facile à utiliser sur une plaque d'essai. La fiche technique vous aide à vérifier le brochage et le timing.
  • Shield de commande moteur L293D pour Arduino: Ce Shield de commande de moteur L293D pour Arduino est conçu pour vous aider à ajouter le contrôle de moteurs à vos projets. Il fournit deux interfaces pour 5V servos, connectées au temporisateur dédié haute résolution d'Arduino, permettant un fonctionnement précis du servo. Compatible avec les cartes Arduino Uno (carte non incluse). Comprend deux interfaces pour 5V servos pour les besoins de votre projet. Si votre projet nécessite de piloter des moteurs ou des servos, ce shield gère le courant et offre une interface propre, vous évitant ainsi de construire un pilote à partir de composants discrets.
  • 3mm LED Diffus (Blanc): LED blanc de haute qualité standard 3 mm dans un boîtier blanc diffus / givré. Convient pour les indicateurs d'alimentation et d'état, le rétroéclairage, les affichages de messages, les cubes 3D, etc. Le prix est basé sur une (1) LED. Plus vous achetez, plus le coût unitaire diminue. Ces LEDs sont idéales pour tester vos nouvelles sorties. Le boîtier diffus donne une lueur douce, et le prix baisse avec la quantité, vous pouvez donc en acheter assez pour un projet complet.
  • Noir, support ZIF à 28 broches: Ces supports ZIF (Zero Insertion Force) intègrent un levier qui actionne le mécanisme à force d'insertion nulle (ZIF) pour réduire les dommages aux composants. Ces supports DIP de 2.54 mm offrent une excellente interface de test et de burn-in pour les boîtiers dual in-line avec un pas de 2.54 mm et une largeur de corps de 0.3. Si vous échangez des puces 74HC595 ou d'autres CI DIP lors du prototypage, un support ZIF évite les broches pliées et facilite les tests.

Lequel utiliser ?

Idéal pour

  • Projets nécessitant de nombreuses sorties (LEDs, relais) avec un budget limité
  • Exigences de mise à jour rapide comme le multiplexage ou la PWM
  • Commande directe de charges à faible courant sans transistors supplémentaires

Ne convient pas pour

  • Projets nécessitant la lecture d'entrées (choisir un expandeur I2C)
  • Lorsque vous devez réduire les broches du microcontrôleur à seulement deux
  • Charges à courant élevé sans pilotes supplémentaires