J'utilise une Mega2560 et j'aimerais savoir s'il est possible de configurer facilement d'autres pins que celles données par Arduino (à savoir : 2, 3, 18, 19, 20, 21) pour gérer les interruptions.
Pour l'application, il s'agit de gérer les impulsions renvoyées par 4 codeurs différents incrustés dans des moteurs à courant continu.
Auparavant j'utilisais des moteurs dont la fréquence des impulsions des codeurs est de 5Hz, je n'avais donc pas besoin d'utiliser des interruptions pour gérer ces impulsions, il suffisait d'écouter le changement d'état d'une entrée digitale.
Je suis amené à changer de moteurs dont la fréquence de chaque codeur est de 400Hz !
Je me rends compte que le fait de procéder comme avant me fait louper certaines impulsions et je rate encore plus d'impulsions si je branche 2 codeurs à l'Arduino.
Je me dis qu'en utilisant des interruptions je pourrais résoudre mon problème (je l'espère).
Le soucis c'est que les pins d'interruptions proposées par Arduino sont déjà utilisées pour autre chose et je ne peux absolument pas y toucher !
D'où ma question à savoir s'il est possible de configurer simplement d'autres pins pour gérer des interruptions ?
Ou est-ce qu'il y a possibilité d'augmenter la fréquence d'horloge de l'Arduino ?
D'ailleurs comment est-ce qu'on peut vérifier les 16MHz annoncer ?
pepe:
La gestion de quatre moteurs et quatre codeurs à 400 Hz entre très largement dans les possibilités d'un Arduino Mega. Simplement, la puissance du microcontrôleur ne doit pas être gaspillée par une programmation inadaptée.
C'est à dire avec ou sans utilisation d'interruptions ?
Lorsque je ne prends en compte qu'un codeur, j'ai 148 impulsions par tour mais en prenant les 2 je tombe sur 48 impulsions par tour, je n'ai que 32% de mes impulsions ce qui fait une perte énorme d'informations.
Et pour l'instant il manque le reste du programme, parce que le but final c'est de piloter un système motorisé.