Je cherche à venir détecter automatique le baud rate présent sur le port série 3 d'une carte Arduino Mega 2560. J'ai besoin d'adapter ce débit pour venir lire les trames d'un appareil qui peut transmettre à 9600 bauds ou 1200 bauds. Pour cela j'initialise dans la fonction void setup() de mon programme le baud rate avec la commande
Serial3.begin(9600) (ou 1200), le problème c'est que je dois retoucher cette valeur à chaque fois que le baud rate de la source change, et j'aimerais automatisé cette détection.
Ce que j'ai essayé pour l'instant suite à la lecture de plusieurs sujets similaire :
Utiliser la fonction pulseIn pour lire les durées de plusieurs pulsation (états haut et bas testés), déterminer la durée min, en déduire la vitesse de transmission :
J'ai également essayé d'initialiser au début de la fonction setup() à 9600, je viens lire le port Série, si je j'arrive à lire une trame, je reste à 9600 sinon je passe à 1200, cela ne fonctionne pas non plus.
il n'y pas de détection automatique sur ce mcu, donc il faut se débrouiller
la méthode de la mesure de durée de pulsation est délicate à mettre en oeuvre, sauf si on connaît le contenu de la trame qui sert pour la détection
essayer chaque vitesse me semble la bonne option, il faut reconnaître des trames valides, ou chasser le flag d'erreur de trame ; en variante la solution de lesept permet de connaître rapidement l'élu, et de ne pas perdre le début du message
ps : il n'y aucun commentaire dans ton code, on n'a pas l'assurance que tu sais ce que tu fais
Je cherche à venir détecter automatique le baud rate présent sur le port série 3 d'une carte Arduino Mega 2560. J'ai besoin d'adapter ce débit pour venir lire les trames d'un appareil qui peut transmettre à 9600 bauds ou 1200 bauds. Pour cela j'initialise dans la fonction void setup() de mon programme le baud rate avec la commande
Serial3.begin(9600) (ou 1200), le problème c'est que je dois retoucher cette valeur à chaque fois que le baud rate de la source change, et j'aimerais automatisé cette détection.
Bonjour
Il y a qq pistes concernant "l'autobauding " sur arduino basique
perso pas testé (pas eu besoin)