Étape 1: Principe de fonctionnement
En supposant que la compréhension de cette toile de fond, voici le schéma en utilisant le brochage de la Radio Shack common cathode SSD partie 276-0075. Observer attentivement comment les connexions SSD LED douze (huit anodes chaque et les cathodes communes quatre) sont reliées aux lignes neuf sélectionnez (Sel). Par exemple, Notez que la cathode commune de SSD0 (les « principes » position de l’affichage à quatre chiffres) et les anodes de segment « a » de la trois autre SSD partage sélectionner ligne Sel0.
Ce que déclare les lignes de Sel doivent-ils être en provoque le chiffre « 1 » à apposer sur tout SSD0 ? Seuls segments « b » et « c » sont éclairées, donc Sel2 et Sel3 doivent être élevée (É) avec basse Sel1, Sel4, Sel5, Sel6, Sel7 et Sel8 (L). La cathode commune de SSD0 est connectée à Sel0, Sel0 doit donc aussi être L. Dans ces conditions, un « 1 » apparaît en effet sur SSD0.
Charlieplexing n’est pas sans complications. À ce stade, Notez que les cathodes de SSD2 et de SSD3 sont H parce qu’ils sont aussi connectés à Sel2 et Sel3 respectivement. Anodes le segment du « a » LED sont connectés à Sel0 qui est actuellement L. Ainsi, le segment « a » LEDs sont inversés-biaisé. Bien que cette condition ne provoque pas d’éclairer, il est important de comprendre que les LEDs sont soumis à (et doit être évalué pour) le maximum possible inverser la tension. Le H de l’Arduino est + 5V et c’est aussi la tension inverse maximale de note donnée pour le 276-0075.
Mais un problème demeure. Plutôt que d’être éteinte, SSD1 affiche également "1" ! Il s’agit d’une énigme. Sel1 doit être L pour garder le segment « a » éclairer mais, parce que Sel1 est également reliée à la cathode commune de SSD1, il faut H ou les SSD0 et SSD1 sera active.
Clairement un pin select ne peut pas être aussi bien L et H simultanément. Cependant, si nous déconnecter Sel1 nous obtenons le résultat souhaité. Une ligne déconnectée n’est ni H, ni L – c’est dans un État tiers « circuit ouvert », qui provoque tous les voyants attachés à être éteint. Un Sel1 déconnecté sans courant, pour le segment « a » anodes et fournit également sans voie de retour à la terre pour la cathode commune de SSD1. Formidable ! Alors, comment nous déconnectons sélectivement broches ?
Voici l’Arduino, où c’est facile. Chaque goupille de Arduino peut être programmé comme une sortie ou une entrée. Comme entrée, il peut ni source ni évier actuel. Nous n’utilisons pas le code pin pour ses propriétés d’entrée ; simplement pour le fait qu’une broche d’entrée n’est pas une tige de sortie et est donc « déconnecté » de la matrice de LED. Cette dépendance tristate broches est une caractéristique de charlieplexing. Donc les règles de programmation sont simples : définir les axes de sélection H pour les segments à afficher, définir le tronçon restant certains pins comme entrées et définir l’axe de sélection SSD L.