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?
la source
Réponses:
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.
la source
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?
la source
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
la source