Si je suis à court de broches sur un Arduino, à moins d'en acheter une deuxième ou d'obtenir une carte Mega, y a-t-il un moyen de me connecter davantage à une seule carte? Dois-je m'inquiéter de le surcharger?
Si je suis à court de broches sur un Arduino, à moins d'en acheter une deuxième ou d'obtenir une carte Mega, y a-t-il un moyen de me connecter davantage à une seule carte? Dois-je m'inquiéter de le surcharger?
Avez-vous également utilisé toutes vos broches analogiques? Ils peuvent également être utilisés comme entrée / sortie numérique en se référant simplement à eux comme les broches numériques broches 14 à 19.
Après les avoir toutes utilisées, vous pouvez envisager d'utiliser un IC de registre à décalage. Ces puces convertiront les données série en données parallèles. Les versions 8 bits prendront des données série sur trois broches et sortiront des données parallèles sur 8 broches, ce qui vous donnera 5 broches supplémentaires. Une très belle explication est faite par Dave Clausen de NYC Resistor.
Il y a en fait une possibilité de surcharger votre arduino. Pas en utilisant trop de broches, mais en tirant trop de courant des broches, en connectant trop de choses à vos broches. La fiche technique Atmega168 indique que les broches ont un courant maximal absolu de 40 mA. Cela équivaudrait à deux LED en parallèle. Tout ce qui contient plus d'une LED (20 mA) doit être commuté via un transistor ou un réseau de transistors. Ceci est également expliqué dans la vidéo mentionnée ci-dessus et par Tom Igoe.
Sparkfun vend un multiplexeur numérique / analogique qui permet de contrôler 16 broches par cinq sur l'Arduino. Il est bidirectionnel, vous pouvez donc également l'utiliser pour la saisie.
Il existe de nombreuses options pour augmenter le nombre d'entrées et de sorties disponibles. Pour une entrée analogique, il est courant d'utiliser des multiplexeurs analogiques (comme le 4051, disponible en tant que 74HC4051 et CD4051) qui vous permettent de basculer entre 8 sources analogiques en utilisant 3 lignes numériques et 1 entrée analogique.
Une option couramment utilisée pour les E / S numériques est d'ajouter des registres à décalage TTL (ou CMOS). Les registres à décalage sont disponibles en deux variétés principales, les "entrée série, sortie parallèle" (comme le 74HC595), qui sont utiles pour augmenter le nombre de sorties numériques de votre projet et "entrée parallèle, sortie série" ( comme le 74HC165) qui vous permet d'ajouter plus d'entrées numériques.
Tom Igeo a un joli article sur le Contrôle de nombreuses sorties à partir d'un microcontrôleur
Vous pouvez surcharger la sortie de l'Arduino en essayant de «fanout» trop loin. Chaque circuit intégré que vous connectez à une sortie tire du courant de cette sortie. Si vous chargez beaucoup de circuits intégrés sur la même sortie (ou ensemble de sorties), ils peuvent essayer de tirer plus que ce que les sorties de l'Arduino peuvent gérer. Pour remédier à ce problème, vous pouvez placer des puces tampons non inverseuses (comme le 74LS07) entre certains des CI.
J'ai joué avec l'utilisation de ceci ... http://www.neufeld.newton.ks.us/electronics/?p=241 Extension d'E / S Arduino utilisant I2C. Ça a l'air vraiment prometteur, je n'ai pas encore réussi à commander les puces. C'est aussi un très bon tutoriel sur l'utilisation d'I2C.
Si vous finissez par obtenir un autre microcontrôleur, j'aime le sanguino pour au moins quatre raisons:
L'Arduino Mega a plus de PWM broches - 14, mais je ne pense pas que vous les multiplexeriez.
-
* Sanguino semble aller pour 25 $, Arduino pour 30 $, même si vous aurez besoin un câble USB-TTL de 20 $ si vous devez utiliser un port USB pour le programmer, là où l'Arduino a USB intégré.
J'ai écrit une bibliothèque pour contrôler les commutateurs DS2406 1wire.
Avec l'un d'entre eux, vous pouvez utiliser une seule broche pour commuter un plus grand nombre de périphériques. Ce sera plus lent que de retourner la broche IO directement, bien sûr, et cela utilisera plus de mémoire puisque vous devez adresser les périphériques sur ce port (cela peut être échangé contre plus de vitesse si vous le souhaitez).
Si vous conduisez des LED, vous pourriez vous intéresser au charlieplexing.
Ce produit est un moyen simple et peu coûteux d'ajouter des broches à votre Arduino. Il existe une bibliothèque open source facile à utiliser pour accéder aux nouvelles broches: