Contrôle de nombreuses LED avec peu de broches GPIO


12

J'ai terminé avec succès mon matériel "hello world" en utilisant ce guide:

http://www.raspberrypi-spy.co.uk/2012/06/control-led-using-gpio-output-pin/

Maintenant, je voudrais passer à des choses plus grandes et plus lumineuses, des LED plus contrôlées individuellement! Évidemment, la prochaine étape consiste à retirer la source de tension du Raspberry Pi et à ajouter plus de LED, mais finalement je vais manquer de broches GPIO, donc je suppose que ce dont j'ai besoin maintenant est de contrôler un circuit qui saura d'une manière ou d'une autre , sur la base des "signaux codés" GPIO, quelles LED allumer et éteindre. Quel type d'exemples de circuits dois-je rechercher? Et plus important vis-à-vis du Raspberry Pi, est-ce que rpi.gpio pourrait causer des problèmes, peut-être en ce qui concerne la synchronisation du signal?


Le muliplexage réduira radicalement le nombre de GPIO à utiliser, en conjonction avec Persitance of Vision en utilisant PWM pour réduire davantage le GPIO ou créer de grands tableaux avec un GPIO minimal. Cela a déjà été répondu ici.
Piotr Kula

Réponses:


13

Ce que vous recherchez dans ce cas est une matrice LED . Vous pouvez contrôler cette matrice à partir des broches GPIO, mais cela limite toujours la quantité de LED que vous pouvez connecter (la taille de la matrice) et il peut également commencer à tirer trop de courant si vous ne faites pas attention.

Une meilleure option consiste à connecter une matrice de LED au bus I2C, en utilisant un ou plusieurs prolongateurs d'E / S I2C. De cette façon, vous pouvez créer une matrice d'une taille énorme (64 LED par exemple peuvent être réalisées avec UN prolongateur d'E / S 16 bits). Une autre raison d'utiliser ces extenseurs d'E / S est qu'ils sont un peu plus robustes, peuvent fournir un peu plus de courant et garder votre processeur principal à l'abri des dangers.

Sur ce site, ces extensions d'E / S sont discutées plusieurs fois, vous devriez donc être en mesure de trouver des informations à ce sujet assez facilement. Ce lien fournit des informations sur ces extenseurs et une matrice (bien qu'utilisé pour l'entrée, mais en gros c'est la même idée mais vous n'utilisez pas la matrice pour numériser mais pour diriger les LED)

La seule exigence supplémentaire pour créer une matrice de travail fluide est que vous devez agrandir la matrice, puis le RPi est capable de mettre à jour chaque LED individuelle au moins 20 fois par seconde, sinon vous commencerez à voir le scintillement, mais cela est également expliqué dans le premier lien (paragraphe "Multiplexage et persistance de la vision").


C'est très intéressant. Merci pour la lecture! Je pourrais essayer cela à petite échelle en utilisant les broches GPIO avant d'être prêt à passer aux extensions. J'ai fait quelques tests avec les broches GPIO et jusqu'à présent, j'ai pu obtenir un multiplexage satisfaisant. Je ne suis pas trop inquiet du courant car je n'utiliserai le Pi que pour commuter un courant externe. Est-ce que cette échelle va bien? Probablement pas, mais je suis ici surtout pour la leçon de toute façon!
SkyNT

3

J'ai utilisé l' extenseur de port MCP23017 I²C pour faire ce genre de choses. Suivez ce lien pour trouver un exemple de code pour le raspberry pi. Vous pouvez piloter 16 LEDS par puce et 8 puces sans avoir besoin de faire de multiplexage.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.