J'utilise un arduino uno avec x-sim pour récupérer les données des jeux, afin de piloter un vrai compteur de voiture.
Le compte tour et l'indicateur de vitesse sont tout les 2 pilotés par des signaux de fréquence 0->230hz.
Au départ j'ai donc naturellement utilisé la fonction tone() inclue dans les librairies standard. Mais celle ci comporte 2 problèmes :
1 seul signal peut être généré à la fois alors qu'il m'en faut 2
impossible de générer un signal < 30 Hz, donc mon compte de vitesse ne démarrerai qu'à 30km/h, mais pas gênant pour le compte tour car c'est en dessous du régime moteur mini
En cherchant sur le forum j'ai trouvé l'ancienne librairie "tone.h" qui permet de produire plusieurs signaux, dont l'un avec une résolution de 16 bits, donc pouvant générer des signaux < 30hz.
J'ai donc utilisé cette librairie, le signal envoyé vers le compte tours codé utilisant le timer 8bits fonctionne parfaitement.
Cependant, celui codé sur 16 bits pour le compteur de vitesse marche sur toute la fréquence, mais à tendance à décrocher aléatoirement pendant 1/2s.
Quelqu'un à une idée?
A ok, j'ai déjà essayé cette méthode, mais l'arduino n'était pas assez rapide pour aller jusqu'en haut du compte tour, étant donné que mon programme est déja pas mal chargé ( écran LED, indicateur de rapport, et LEDs pour le RPM/RPMmax).
Par contre je viens de trouver la solution à mon problème : utiliser la fonction tone() pour le compte tours, et pour le compteur de vitesse la librairie NewTone qui utilise un timer différent du 1er et ne provoque pas de conflit, le tout avec la version d'arduino à jour.
Dans l'absolue je suis d'accord, mais il traite déjà un signal série à 115200 bauds en continu, donc seul des interruptions pouvaient fonctionner correctement. Enfin le principal est que ça marche.
Je te remercie pour ton aide.