Feu de circulation miniature avec Raspberry Pi: Câblage de nombreuses LED

8

Contexte:

Je suis un ingénieur civil spécialisé dans les dispositifs de contrôle de la circulation et j'ai un petit projet de loisir pour construire un système de feux de circulation à l'échelle. Je peux gérer et contrôler la programmation du modèle de feux de circulation par moi-même à l'aide d'un Raspberry Pi (en plus, cela me donne la possibilité de mettre en œuvre un contrôle dynamique et programmé, et d'interfacer avec un schéma de contrôle du trafic sérieux et éventuellement des données de trafic réelles). J'ai juste besoin d'aide pour câbler de nombreuses LED côté matériel :)

J'ai suivi ce tutoriel http://www.raspberrypi-spy.co.uk/2012/06/control-led-using-gpio-output-pin/ très bien (y compris en utilisant une source d'alimentation externe au lieu de la broche 2), mais Je vais probablement rencontrer le problème de trop peu de connexions GPIO pour tous les feux de circulation.

Ensuite, j'ai essayé le multiplexage avec une matrice LED http://www.appelsiini.net/2011/how-does-led-matrix-work . Le multiplexage fonctionne, cependant, les lumières sont généralement plus faibles, je doute que cela évolue bien et cela a tendance à amplifier la complexité du contrôle.

Question centrale:

À moins d'avoir une carte d'extension sur le Raspberry Pi, y a-t-il d'autres astuces que je pourrais utiliser pour contrôler plusieurs LED avec moins de signaux 0/1?

Une chose à propos des feux de circulation est qu'ils viennent généralement par blocs de trois, dont un seul est toujours actif à la fois. Existe-t-il un circuit relativement simple qui me permettrait de «basculer» un bloc de LED en utilisant un seul signal 0/1?

SkyNT
la source
1
b = plafond (ln (N) / ln (2)) où N est le nombre de LED à contrôler et b est le nombre de bits requis pour implémenter le contrôle. Ainsi, une unité de feux de circulation, où seulement 1 LED sur 3 est active à la fois, nécessiterait 2 bits d'E / S pour le contrôle. Avec les E / S 8 bits, vous pouvez contrôler 32 unités de feux de signalisation: 2 bits pour les données (dont 1 sur 3 s'allume), 5 bits pour l'adresse (dont 1 sur 32 ou 2 ^ 5 unité dont vous parlez), et 1 bit pour le verrouillage. J'espère que quelqu'un pourra étendre cela à une réponse complète.
shimofuri
La réponse ci-dessous est bonne et ce que j'allais suggérer, mais comme quelque chose de simple n'a pas pu trouver un bon circuit de référence. Vous pouvez également utiliser un petit microcontrôleur 8 broches à 1 $ et lancer votre propre bus série pour des appareils pratiquement illimités, bien que cela soit un peu un projet en soi si vous ne les avez pas utilisés auparavant.
PeterJ
La recherche de "[multiplexage] [led]" trouvera des questions avec ces deux balises. Vous y trouverez peut-être des informations utiles.
Phil Frost
OP peut profiter de ce feu de circulation de Velleman
Chetan Bhargava le

Réponses:

11

Connaissez-vous des registres à décalage comme le 74HC595? Il nécessite 3 broches de votre RPI et vous pouvez contrôler 8 lignes de sortie. Vous pouvez facilement les mettre en cascade en contrôlant efficacement n × 8 lignes de sortie.

Les données sont synchronisées en série dans le registre à décalage et une fois les 8 bits de sortie transférés, vous verrouillez les bits sur les sorties.

J'étais sur le point d'ajouter la fiche technique ici, mais https://www.sparkfun.com/products/733 montre une belle vidéo et a un lien vers la fiche technique aussi.

jippie
la source
4

Les registres à décalage comme jippie suggère de bien fonctionner. Mais, le multiplexage peut également fonctionner pour plus de LED que vous ne le pensez. La solution à la luminosité réduite consiste à augmenter le courant de crête afin que le courant moyen reste le même. Vous pouvez le faire en augmentant la tension ou en réduisant la résistance de limitation de courant.

La raison pour laquelle un courant excessif endommage une LED est que la jonction surchauffe. Si on leur donne le temps de refroidir entre les impulsions, les impulsions peuvent être plus fortes. La fiche technique de votre LED doit spécifier à la fois un courant moyen maximum et un courant de crête maximum à ne pas dépasser. Si vous n'êtes pas trop préoccupé par la haute fiabilité (un projet de loisir, pas un vaisseau spatial) et que cela ne vous dérange pas de fumer quelques LED ou de modifier un peu les règles, vous pouvez toujours tester les limites par vous-même.

Aussi, regardez dans charlieplexing pour trouver un moyen de multiplexer plus de LED à partir d'un plus petit nombre de broches. La limite supérieure du nombre de LED pouvant être connectées avec cette méthode est généralement la luminosité réalisable avec le courant disponible à partir des broches GPIO, et non le nombre de broches.

Lectures complémentaires: L'impulsion d'une LED à un courant plus élevé donne-t-elle une plus grande luminosité apparente?

Phil Frost
la source
1
J'ai tendance à ne pas pousser les courants de pointe trop haut en l'absence de circulation, ce qui peut empêcher une rangée de rester trop longtemps. Tout lecteur de ligne basé sur un logiciel est presque garanti de tomber en panne de temps en temps, et un circuit bien conçu devrait être à l'abri des dommages causés par une telle occurrence.
supercat
-1

Utilisez USB ou Ethernet pour contrôler les lumières via une carte relais verrouillable comme celle-ci

http://www.robot-electronics.co.uk/acatalog/Relay_Modules.html

J'ai utilisé ces cartes pour d'autres applications et elles sont excellentes

Gareth
la source
2
Nous nous attendons à ce que les réponses soient largement indépendantes. Les liens pourrissent avec le temps et ne doivent pas être utilisés pour les informations principales. Énoncez votre réponse dans un paragraphe ou deux et utilisez des liens pour faire référence à des informations supplémentaires.
Olin Lathrop
C'est suffisant! La carte en question dont j'ai parlé de Robot Electronics est un pilote de relais contrôlé par USB ou Ethernet. Il est livré avec un jeu de commandes simple pour activer ou désactiver chacun des 8 ou 16 relais de la carte. Ces relais peuvent facilement être utilisés pour commuter la pile LED de vos feux de signalisation et permettre un contrôle via le port USB ou Ethernet du Raspberry PI
Gareth
@Gareth Alors mettez cette information dans la réponse pas ici.
Butzke