Communiquer Variable entre deux 18M2+

pedro719

New Member
Bonjour à tous,
je suis nouveau sur ce forum et je commence avec ces merveilleux petits microcontrôleurs.
Mon problème est le suivant :
Je cherche à communiquer la valeur d'une variable depuis un 18M2+ vers un autre 18M2+. J'utilise donc les pins B.0 de chaque 18M2 avec les commande suivantes :

bintoascii varA, varTEMPBYTE1, varTEMPBYTE2, varTEMPBYTE3
serout B.0, N2400, (varTEMPBYTE1,varTEMPBYTE2,varTEMPBYTE3) (pour entremetteur)

serin B.0, N2400, varA (pour le 18M2 récepteur)

Cela ne fonctionne pas, le 18M2 de réception ne semble pas décoder ce que je lui envoie.
- les Pins B.0 ne sont elles pas adaptés ?
- je n'utilise pas correctement les outils serin et serout ?
- y a t'il une subtilités de câblage ?

J'ai essayé avec les commandes serrxd et sertxd sur les pins de programmation mais sans succès également.
J’espère être clair dans mon explication. Je ne suis pas très à l'aise avec les lignes de codes donc j'utilise les Flowcharts.

Pourriez-vous éclairer ma lanterne ? Merci beaucoup. :confused:
 

BESQUEUT

Senior Member
Bonsoir et bienvenue sur ce forum.


Merci de bien vouloir publier l'intégralité du code utilisé sur chaque Picaxe
Soit en utilisant les balises
Code:
 et [ /code]
soit en utilisant la fonction "copier pour le forum" de PE6.

Dans un premier temps, le bintoascii ne sert à rien : vous pouvez envoyer directement varA.
SI vraiment vous voulez communiquer en ASCII, utilisez # à l'émission [COLOR="#FF0000"][B]ET[/B][/COLOR] à la réception.

Au niveau câblage, à part qu'il faut une masse commune, il n'y a pas de subtilité.

Par contre, c'est probablement la structure du programme qui est en cause.

Cordialement,
 

pedro719

New Member
Bonjour,
Merci beaucoup effectivement le programme était bien en cause !
Le bintoascii était en cause. Dans la fonction serout, (en utilisant un Flowcharts) plutôt que de rentrer [A] (comme indiqué dans l'exemple) il faut simplement rentrer VarA.
Cordialement,
P.
 

alainav1

Senior Member
Bonjour,
quel est la distance maxi pour comminuquer entre 2 µp avec cette technique ?
est ce possible sur une dizaine de metre ?
cordialement
Alain
 

BESQUEUT

Senior Member
Bonjour,

C'est du RS232 standard, la distance dépend de la vitesse:
https://fr.wikipedia.org/wiki/RS-232
Euh... c'est du TTL, pas du RS232 standard...
Mais oui : 10m semble facilement atteignable aux vitesses habituellement pratiquées par un Picaxe (Par exemple 9600 bauds, ou moins évidement...)
Le câble doit être de bonne qualité, blindé et ne pas voisiner avec des sources de parasites.
 

MGU

Senior Member
Euh... c'est du TTL, pas du RS232 standard...
Mais oui : 10m semble facilement atteignable aux vitesses habituellement pratiquées par un Picaxe (Par exemple 9600 bauds, ou moins évidement...)
Le câble doit être de bonne qualité, blindé et ne pas voisiner avec des sources de parasites.

Oui, c'est ça, RS232 standard...TTL ;)

J'ai fait un essai avec 15 m de câble 4 fils téléphone sans problème. faudrait que je retrouve la vitesse...

MM
 

BESQUEUT

Senior Member
Oui, c'est ça, RS232 standard...TTL ;)
En RS232, la tension peut atteindre + ou - 25 V alors qu'en TTL on est limité à 0 ou 5V
Les distances sont données pour du RS232 standard. Elles sont certainement plus faibles en TTL.
Mais rien n'interdit d'utiliser des drivers (MAX232) pour améliorer les choses, spécialement si une vitesse élévée est recherchée et/ou si l'environnement est perturbé.
Pour aller plus loin et/ou plus vite, le RS485 est bien plus performant en raison des liaisons symétriques bien moins sensibles aux parasites.
 
Top