Combien de LEDS peut-on contrôler indépendamment l'un de l'autre avec un MCU qui n'a que 3 E/S comme par exemple le PIC10F200?
Si je vous dis 4 serez-vous sceptique?
J'ai eu un idée et j'ai décidé de la vérifier avec un PIC10F200. Il s'agit d'utiliser GP3 comme sortie pour contrôler un LED en utilisant le Weak Pullup et un transistor. Si on active la résistance Weak pullup sur une entrée, celle-ci est tirée à +5Volt. J'ai fait le test avec un transistor bi-jonction 2N3904 et un transistor MOSFET 2N7000. Dans le cas d'un transistor bi-jonction c'est le courant qui circule dans la base qui commute le transistor. D'après la feuille de spécification du PIC10F200 lorsqu'une entrée est mise à Vss le courant à travers le weak pullup est de 250µA. Si le transistor a un gain de 100 on obtient 25mA de courant au collecteur. En pratique à cause du voltage base-émetteur, le courant dans la base est moindre que ça. Je mesure 2,56 volt au bornes de la résistance de 200 ohm lorsque la LED est allumée ce qui donne 12,8mA. Si je remplace la résistance par 100 ohm, j'obtient 22mA. Le gain du transistor est probablement supérieur à 100.
Avec un transistor MOSFET 2N7000 l'impédance d'entrée de ce type de transistor est très élevée et c'est le voltage qui commute le transistor. Donc lorsqu'on active le pullup le transistor passe en conduction. Cependant il faut utiliser une résistance de 1M entre le gate et Vss pour que la LED s'éteigne lorsqu'on désactive le pullup. Avec ce transistor et la résistance de 100 ohm j'obtiens 23,7mA à travers le LED.
On a donc 4 sorties indépendantes pour contrôler 4 LEDS ou autre chose.
Aucun commentaire:
Publier un commentaire
Remarque : Seuls les membres de ce blogue sont autorisés à publier des commentaires.