Pourquoi est-il nécessaire
Récemment, j'ai écrit un article sur un ordinateur de vélo Bluetooth fait maison. Il y a eu une discussion animée. L'une des suggestions de modernisation était l'idée d'ajouter une indication ou un écran LCD. J'ai aimé l'idée. Et j'ai décidé de réfléchir à la façon de lui donner vie.
Étant donné que les ordinateurs de vélo avaient déjà été fabriqués, le boîtier était presque entièrement occupé, l'option avec un écran LCD est tombée. Nous avions besoin d'une taille de 40x30 mm, en tenant compte de tous les câbles et fils, et en épaisseur pas plus de 2-3 mm. Il y a aussi peu de conclusions gratuites. Divers indicateurs LED (trois chiffres, échelle) ne convenaient pas. Puis une très bonne idée m'est venue à l'esprit - faire un indicateur fait maison à partir de LED SMD. Prenez une fine textolite unilatérale, placez dessus le bon nombre de LED, dans le bon ordre et vous obtenez un excellent indicateur. Ayant imaginé que les fils devraient être conduits à toutes les LED, j'ai décidé qu'un microcontrôleur bon marché qui contrôlerait toutes les LED lui-même s'adapterait à la carte, et le MK principal de l'ordinateur de vélo contrôlerait l'indicateur via un seul fil.
Le résultat est un indicateur très compact (seulement 3 mm d'épaisseur). Gestion sur un fil, et 2 de plus sur la nourriture. Si vous avez des appareils prêts à l'emploi ou si vous prévoyez d'en fabriquer un et que vous avez besoin d'un indicateur, un indicateur fait maison est la meilleure option. Voyons de plus près comment cela fonctionne.
20 LED sur 10 broches - facile!
MK J'ai choisi le plus cher - SMT8S003, le même que dans le compteur de vélo. Il n'a que 20 jambes. Si vous supprimez les jambes du pouvoir et du contrôle, il reste 14 jambes. La première tâche qui devait être résolue était de contrôler ces jambes avec autant de LED que possible.
Il m'est immédiatement venu à l'esprit que 2 LED pouvaient être accrochées sur une jambe, avec une broche sur GND et l'autre sur VDD. Pour chaque LED, une résistance. Selon ce schéma.

C'est facile à gérer. Nous alimentons la broche 0, une LED est allumée, alimentation 1 - la deuxième LED est allumée. Nous traduisons dans le troisième état (entrée), pas un ne brûle. Il se révèle sur 14 conclusions que vous pouvez accrocher 28 LED. Pas mal.
Le fils a dessiné l'indicateur lui-même. Pour un ordinateur de vélo, le type d'indicateur le plus utile, après les chiffres, est une échelle. L'indicateur se compose de 2 échelles de 8 LED et de 4 LED d'état différentes. Total 20 LED. J'ai rapidement esquissé la carte, gravé, soudé et commencé les tests.
J'allume le MK, toutes les conclusions sont dans le troisième état, rien ne devrait brûler. Et ... les LED sont allumées. Bien sûr, ils ont suffisamment de tension de 5 volts pour briller faiblement. Ça ne marchera pas, on change le schéma ...
Plus de LED
Après une petite réflexion, une autre idée est venue. Connectez les LED non pas à l'alimentation et à la terre, mais à deux autres conclusions du MK. Ensuite, vous pouvez définitivement tout désactiver. Nous essayons, cela fonctionne très bien. En raison de l'indication dynamique, tout clignote magnifiquement. Vous pouvez contrôler chaque LED.
En conséquence, le schéma suivant s'est avéré pour l'avenir:

On distingue plusieurs conclusions de contrôle et travailleurs. Nous mettons les résistances uniquement sur la commande upr1 upr2. Ainsi, le circuit et la trace de la carte sont grandement simplifiés. Jusqu'à 96 LED peuvent être placées sur 14 broches. 6 gestionnaires et 8 travailleurs, plus 2 LED sur chacun. Plus que suffisant, le bras de soudure se fatiguera.
Il s'est avéré que vous pouvez faire plus. Charlie Allen est allé encore plus loin en plaçant plusieurs LED entre les broches de contrôle. Ainsi, jusqu'à 16 * 15 LED peuvent être placées sur 16 broches. Mais, dans son circuit, de nombreuses résistances sont ajoutées, et il faut aussi que toutes les LED soient de la même couleur, en général il y a de petits problèmes. Conclusion - 96 LED sont plus que suffisantes.
Nous contrôlons chaque LED individuellement
Pour contrôler chaque LED, la méthode d'indication dynamique est utilisée. À un moment donné, une LED peut être allumée par sortie de contrôle. Ensuite, vous devez trier toutes les paires, ce sont les états d'indication, etc. dans un cercle. Puisque la carte a déjà été faite, je l'ai refaite en une broche de contrôle et une résistance. Il s'est avéré 20 LED sur une sortie et 10 conclusions de travail. Total 20 États.

Pour réduire la consommation d'énergie, MK fonctionne à une fréquence de 2 MHz. Pour trier 20 états avec une fréquence d'au moins 50 Hz, vous avez besoin d'une minuterie avec une fréquence de 1000 Hz. De plus, je voulais également contrôler la luminosité. Mais il s'avère que pour l'abaisser d'un facteur 10, vous avez besoin d'une fréquence de minuterie de 10 000 Hz et de 100 fois les 100 000 Hz. Dans ce cas, dans le gestionnaire d'interruption, vous devez trier toutes les options et allumer la LED souhaitée. En général, MK ne pouvait pas faire face. J'ai dû passer à l'option avec modulation PWM.
Nous contrôlons la luminosité à l'aide d'une minuterie PWM
Le résultat est un programme simple. Nous utilisons une minuterie - TIM2, avec possibilité de génération PWM. Nous avons réglé la fréquence du minuteur sur 1000 Hz, et la valeur maximale du minuteur 125 est la largeur PWM, qui déterminera la gradation de la luminosité. Par conséquent, vous pouvez définir n'importe quelle valeur de luminosité de 0 à 125. Au moment de la deuxième interruption de la minuterie, par rapport au remplissage du PWM, éteignez toutes les LED.
Le résultat est un excellent indicateur. En raison du contrôle de la luminosité, la consommation dans la phase active est de 1 mA à 4 mA.
Nous connectons un ordinateur de vélo
L'indicateur lui-même est prêt, dans le cas du compteur de vélo, il ressemble à ceci:

Pour contrôler l'indicateur, j'ai choisi le protocole 1 fil. Je ne le décrirai pas. Je peux seulement dire que j'ai dû me tourmenter pour réussir à gérer l'interruption et à supporter les délais nécessaires, mais finalement cela a fonctionné. L'ordinateur de vélo est comme un maître et l'indicateur est comme un esclave. Pour le contrôle, 4 octets doivent être transmis. Le premier octet est la commande, la luminosité et un bit pour passer en mode veille, les 3 octets restants sont des LED, un peu par LED.
La première chose qui m'est venue à l'esprit sur l'indicateur était la vitesse et le personnel. Les LED de service doivent être laissées pour l'état Bluetooth, la violation du contrôle de la vitesse et de la cadence, et un autre - le contrôle de la distance.
Après les tests expérimentaux, j'ai ajouté la possibilité d'afficher la distance restante de l'ensemble ou les calories restantes de l'ensemble. Cela s'est avéré très pratique. Vous fixez un plan - pour passer 2000 Cal en promenade, vous allez voir tout de suite, il reste encore la moitié. Conclusion - une indication est une chose utile.
Mon fils a vraiment aimé, il a eu l'idée de faire un porte-clés - un indicateur avec une batterie en époxy. Je suis allé réfléchir.
Quels autres indicateurs peuvent être réalisés
Horloge - LED en deux cercles - heures et minutes.
Points cardinaux - pour la boussole électronique.
Échelle pour codeur rotatif incrémental.
Plusieurs échelles dans un indicateur.
Coeur pour une carte musicale.
Matrice 8x8 pour l'affichage des images.
Indicateur mince à sept segments pour un chiffre de 11 LED.
En général, il existe de nombreuses idées sur la façon de l'utiliser.
Sur github , comme d'habitude, une carte, programme, implémentation du protocole 1 fil et indication dynamique. Celui qui en a besoin, vous pouvez l'utiliser dans vos projets.