Communication avec plusieurs Arduinos

Bonjour à tous,

J'explique mon idée, dans mes petits projets, je souhaite envoyer à un ou plusieurs arduino une variable de nombre.

Par exemple l'arduino maître envoie 123.12 à l'arduino esclave.

Je regarde du côté de i2c, spi, série, éventuellement Ethernet...

Bref, je sais pas quoi choisir ?

J'ai fait un test encouragent en i2c mais que me conseillez-vous ?

A bientôt,

Pierre

lapenduledargent: Bonjour à tous,

J'explique mon idée, dans mes petits projets, je souhaite envoyer à un ou plusieurs arduino une variable de nombre.

Par exemple l'arduino maître envoie 123.12 à l'arduino esclave.

Je regarde du côté de i2c, spi, série, éventuellement Ethernet...

Bref, je sais pas quoi choisir ?

J'ai fait un test encouragent en i2c mais que me conseillez-vous ?

A bientôt,

Pierre

bonsoir discussion dans un seul sens ? quel débit souhaite tu ? quelle distance max entre l’émetteur et les récepteurs

il y a quoi d'autre sur la machine? je veux dire en terme de composants spécifique, genre ana, pwm, RTC, LCD, ...? quelle carte arduino?

Bonjour à tous,

Je viens de faire un nouveau post , une copie de celui-ci. Je pensais qu'il n'était pas publié ????

Pour l'application c'est une question générale, je pense par exemple à un digicode avec un arduino mini-pro et un raspberry ou un méga ethernet.

Je pense également à un mini-pro qui commande un moteur pas à pas et un méga gère la machine avec lcd, les boutons, clavier... (petit projet d'une bobineuse)

Donc distance variable avec éventuellement communication dans les deux sens.

lapenduledargent: ...

Donc distance variable avec éventuellement communication dans les deux sens.

Bonjour ça c'est une réponse qu'un bon normand comme moi apprécie à sa juste valeur :grin:

le choix final d'une techno Vs les autres dépend de paramètres très divers :sunglasses:

La première approche consiste déjà à lister les contraintes non négociables

Bonjour à tous, bonjour Jean et Artouste,

C’est vrai que ma réponse de dimanche n’a pas fait avancé les choses :frowning:
Je vais essayer de décrire trois exemples d’utilisation :

Cas N°1 : Petite machine avec moteur pas à pas

Avec un mini-pro, je commande un driver style Leadschine (esclave).
Un mega (maître) gère les boutons d’arrêt, de marche fin de course et la vitesse du pas à pas via un afficheur LCD.

Dans ce cas la communication est uniquement dans un seul sens, la distance est de quelques centimètre entre les cartes

Cas N°2 : Digicode avec accès sql

Un mini-pro avec un clavier numérique et relais d’ouverture de porte, envoi le code fourni sur le clavier à un arduino mega avec connexion ethernet. Celui-ci vérifie dans un serveur web le code et renvoi une commande d’ouverture au mini-pro.
Sur le mega, d’autres arduino pourraient par le suite se connecter également.
Communication dans les deux sens. Distance 10 à 30m.

Cas N°3: Arduino et Gambas

Un arduino est relié à un pc ou micro-pc.
J’utilise Gambas (visual basic sous linux) comme interface
J’ai testé ce code avec succès : http://jsbsan.blogspot.be/2011/11/mi-primera-aplicacion-gambasarduino.html

Ici, c’est le port série qui est utilisé

Voilà quelques idées d’applications différentes.

D'un point de vue pratique il serait dommage et contre productif de développer plusieurs standards d'interfaces sauf nécessité impérieuse. Le SPI c'est rapide mais en ambiance industrielle (comprendre perturbée) ce n'est pas très robuste. L'I²C n'est pas mieux. L'Ethernet c'est bien mais c'est cher. Pourquoi ne pas partir sur une liaison série. Il y a un minimum de contrôle de la liaison au niveau matériel (parité) on peut choisir d'aller vite ou loin selon le besoin. Si la liaison est courte l'interface électrique reste la sortie TTL de la carte. Si on veut aller plus loin ou si l'environnement est bruité on peut mettre des driver RS422. Les librairies existent déjà il faut juste développer un peu de protocole autour pour gérer les échanges.

Ethernet cher ça dépend … c’est sûr que comparé à un i2c ou un SPI qui n’a besoin que de fils, c’est plus cher.
M’enfin si on prend la version luxe avec un W5100 ça fait 8€ :
http://www.dx.com/fr/p/ethernet-shield-with-wiznet-w5100-ethernet-chip-tf-slot-118061

Et la version du pauvre, l’ENC28J60, c’est moins de 4€ :

Après il y a également les ESP8266 qui ont le vent en poupe :slight_smile:

lapenduledargent: ... Je vais essayer de décrire trois exemples d'utilisation :

... Voilà quelques idées d'applications différentes.

bonsoir je suis un peu du meme avis que fdufnews si il n'y a pas de grosse contrainte de debit, autant privilegier la comm serie c'est facile à utiliser entre arduinos.

si ça coince il faut faire une petite au cas par cas en fonction des contraintes/imperatifs.

Bonjour à tour,

Pour mon contrôle d’accès c'est peut être plus simple d'utiliser la technologie ethernet. En passant, merci B@tto pour le lien, je ne connaissais pas ce fournisseur !

Pour les autres applications, ce sera du série.

Le port usb, spi ou i2c, c'est pas finalement du série ?

lapenduledargent: En passant, merci B@tto pour le lien, je ne connaissais pas ce fournisseur !

Va sur mon blog y'a une page "où acheter ?" en haut c'est bourré de bonnes adresses comme ça ;)

lapenduledargent: Le port usb, spi ou i2c, c'est pas finalement du série ?

Pas du tout :) Le seul qui pourrait avoir une sorte de lien c'est l'USB sur les Arduino puisqu'il y a une liaison série émulée par l'USB. Mais en soit l'USB c'est l'USB, le série c'est le série.

@B@tto Si l'USB, le SPI et l'I²C sont des liaisons série. Les données sont envoyées les unes à la suite des autres bit par bit. En ce sens se sont des liaisons série. Le SPI et l'I²C sont des liaisons série synchrone contrairement à l'UART que est une liaison asynchrone.

Lorsqu'on parle de liaison série, implicitement on parle de la liaison par l'UART du processeur.