Bonjour
Je voudrais interfacer un arduino (qui n'a qu'un seul port série) avec un ecran OLED ou un servomoteur (AX12) doté d'un microcontroleur. Les 2 communiquent par port serie; Je voudrais pouvoir commander l'AX12 et ecrire alternativement un rapport sur mon ecran OLED.
Je compte utiliser un 74HCT126 (4 Buffers de bus à 3 etats pour autoriser les ports à transmettre). Je pense le commander par une seule sortie avec un inverseur pour adresser alternativement le port de l'OLED ou celui de l'AX12.
La question meta physique que je me pose est qu'est ce qui se passe et comment se passe les communications entre le PC et l'arduino lors de sa programmation :
-Dois je deconnecter l'AX12 et l'OLED lorsque je connecte l'arduino au PC pour le reprogrammer (et donc prévoir une alim externe) ?
-Comment savoir/faire en sorte que le FTDI de l'arduino n'interfere pas avec mes communications series ?
-Comment l'arduino sait que le PC veut le reprogrammer ?
-Faut il que je repense le pilotage et utiliser plutot 2 sorties pour commander le 74HCT126 (avec l'inconvénient qu'il y a un risque qu'elles ne soient plus exclusives) de manière a avoir un etat libre pour la communication avec le PC ?
-Quelles etapes suivent ceux qui veulent se connecter avec un peripherique serie pour programmer l'arduino puis le faire communiquer avec le peripherique serie puis le reprogrammer ?
Planchant actuellement sur le problème de liaison serie entre 2 arduinos, j'ai trouvé ça : http://arduiniana.org/libraries/newsoftserial/ qui a l'air d'être une version améliorée de software serial.
Pas encore décortiqué donc, pas encore testé...
A+
Excellent mais j'aurais voulu quand meme savoir s'il fallait debrancher les peripheriques avant de brancher l'arduino au PC. @Bidouille :
Comment comptes tu faire en pratique avec tes 2 arduinos vis a vis du PC ?
Pourquoi ne les relies tu pas directement avec les pin 0 et 1 ?
Pourquoi ne les relies tu pas directement avec les pin 0 et 1 ?
Les pins 0 et 1 sont reliées à la prise USB que j'utiliserais sans doute par la suite pour échanger des infos entre les 2 cartes Arduino et le PC. Dans l'immédiat, ça m'évitera simplement de ne pas perturber la 2ème carte si la première est en "mise à jour du soft" ( idem pour la 2 éme )
Comment comptes tu faire en pratique avec tes 2 arduinos vis a vis du PC ?
Brut de décoffrage : relier la ligne TX ( software ) de la carte N°1 avec la ligne RX ( software ) de la carte N°2 et relier la ligne RX ( software ) de la carte N°1 avec la ligne TX ( software ) de la carte N°2 + une masse commune.
Si ça marche sur une courte distance, j'envisage de "durcir" le reseau en RS485 avec des SN75176.
Pour en revenir à ton problème métaphysique
qu'est ce qui se passe et comment se passe les communications entre le PC et l'arduino lors de sa programmation :
:
J'ai l'impression que le proc ne va pas bien comprendre les infos provenant de l'USB si il y a dejà des infos en cours d'échange sur la ligne. La solution est peut être de faire un "reset" juste avant l'envoi de la transmission par le PC ce qui va sans doute arrêter le programme en cours d'execution pour executer une routine interne qui laisse peut être le temps de prendre la main par le PC ...
Les spécialistes "Hard" de l'ATMEGA pourront sans doute confirmer ou infirmer .