PIAXE 20X2 et PIAXE 14M2

PieM

Senior Member
Bonjour,

peu t'on faire passer des variable entre un (14M2 et un 20X2) ou un (20X2 et un 14M2) ?
Oui, bien sûr. Soit par une liaison serin/serout entre les deux, ou plus élégamment par une liaison I2C:

Le 20X2 doit être configuré en mode I2C Slave alors que 14M2 lui sera en Master. La zone d'échange sera alors le scratchpad du 20X2 qui permet de stocker 128 bytes je crois, chaque Picaxe pouvant lire ou écrire dans cette zone à tout instant.
Le gros intérêt est que l'échange se fait sans perturbation du fonctionnement du Slave. Pas besoin d'un timeout quelconque comme avec une liaison serin/serout
 
Last edited:

Anubis1985

Senior Member
ok. merci .je péfere la liaison serin/serout car je pévois de rajouter un circuit orloge séri (DS1307) et chaque microcontroleur doivent pouvoir envoiler et recevoir des variables.
et ce que pour le 14M2 ,je peut utilser (serin [10, raz], 2, N2400, b0) et pour le 20X2 utilser
(serin 2, N2400, b0) pour recevoir les variables.

pour envoiler les variables.pour les 2 microcontroleurs,j'utiliserais serout 0, N2400,(''ABC'',b0).

et ce que mes ligne de code son conforme ?
 
Last edited:

PieM

Senior Member
Bonjour,

Le DS1307 a une liaison série de type I2C.
Donc l'idéal est de profiter de cette liaison qui sera commune à tous les picaxes, chacun pouvant envoyer et recevoir des données, sans se compliquer la vie avec un autre type de liaison.
Utiliser serin avec un timeout, c'est risquer d'avoir à un instant donné, des valeurs différentes d'une même variable dans les deux picaxes.
Il faudrait en savoir un peu plus sur votre projet et votre programme ! Ce n'est pas parce que la ligne de code est correcte que le programme le sera... :)
NB:
Le code correct serin/serout serait:
serout 0, N2400, ("ABC", b0)
serin [10, RAZ], 2, N2400, ("ABC"), b0 ; si on attend un "ABC" en réception, il faut l'avoir envoyé ! :rolleyes:
 

Anubis1985

Senior Member
pour le 14 M2 j'utilise (serin [10, RAZ], 2, N2400,b0) car raz servira a couper l'alimentation du 20X2 ,du module (Vmusique2) ainsi que du module LCD (led042).
et permettera d'émmettre un bip avec un buzzer connecter au 14M2. cela et une sécuriter ci il surviendrais un probléme avec le
20X2 qui ne trensetteurais plus de variale.

ou et ce que l'on peut faire la méme chose avec une liaison I2C entre les microcontroleurs.
 

PieM

Senior Member
Je ne comprends pas trop: la liaison entre les deux picaxe ne servirait qu'à ça? couper l'alimentation en cas de problème sur le 20X2 ? si c'est ça il suffit d'envoyer un pulsout à intervalle régulier depuis le 20X2 et contrôler par un pulsin sur le 14M2.
 

Anubis1985

Senior Member
voici la desription du programme:

le 14M2 permet également de trensmettre au 20x2 la température (sonde DS18B20) de la battrie ainsi que son voltage compris entre 0 et 255.
le 20x2 peut envoyer une variable au 14m2 compris entre 0 et 1 qui fera biper le buzzer au démarage du 20x2.
quand le 20X2 commancera son programme, une led rouge passera au vert.cette led et commander
par le 14M2.
le 14M2 se chargera aussi de couper la charge de la battrie quand son voltage aura attind 254. et envera 1 au 20x2 pour dire que la battrie et plaine.

donc on peut les relier en I2C et également prévoir une autre liaison (pulsout,pulsin).
Commant envoyer ton une liaison pulsout et recevoir une liaison pulsin ?
 
Last edited:

Anubis1985

Senior Member
les 2 mirocontroleurs n'on pas les méme alimentation stabiliser 5v mais les alimentation stabiliser son alimenter avec la méme battrie.
donc entre les 2 microcontroleurs on peut ce retrouver avec une differance de tension entre 0.1v et 0.2v . et ce que sa pose
un probléme pour la liaison I2C ?
 
Top