(set pageLanguageSource property) |
(update property name) |
||
(2 révisions intermédiaires par un autre utilisateur non affichées) | |||
Ligne 1 : | Ligne 1 : | ||
− | {{ | + | {{Tuto Details |
− | | | + | |Main_Picture=Utiliser_2_Arduinos_en_s_rie_Final.jpg |
− | | | + | |Licences=Attribution (CC BY) |
− | | | + | |Description=Allumer une LED connectée à un Arduino depuis un autre Arduino. |
+ | |Area=Electronics | ||
|Type=Technique | |Type=Technique | ||
− | |||
− | |||
− | |||
|Difficulty=Very easy | |Difficulty=Very easy | ||
+ | |Duration=1 | ||
+ | |Duration-type=hour(s) | ||
|Cost=20 | |Cost=20 | ||
|Currency=EUR (€) | |Currency=EUR (€) | ||
− | | | + | |Tags=Arduino, |
− | | | + | |SourceLanguage=none |
− | | | + | |Language=fr |
− | | | + | |IsTranslation=1 |
+ | }} | ||
+ | {{Introduction | ||
+ | |Introduction=Ce montage va utiliser le réseau I2C du Arduino. | ||
}} | }} | ||
− | {{ | + | {{Materials |
− | + | |Step_Picture_00=Utiliser_2_Arduinos_en_s_rie_composants1.jpg | |
|Material=* 2 Arduino | |Material=* 2 Arduino | ||
* 1 LED | * 1 LED | ||
Ligne 22 : | Ligne 25 : | ||
* Une Breadboard | * Une Breadboard | ||
* Des fils de connexion | * Des fils de connexion | ||
− | | | + | |Tools= |
}} | }} | ||
{{Separator}} | {{Separator}} | ||
− | {{ | + | {{Tuto Step |
− | |Step_Title= | + | |Step_Title=Schéma |
|Step_Content=Pour mettre en réseau les 2 Arduinos, nous allons utiliser l’interface I2C du Arduino. Le réseau I2C fonctionne sur le principe Maître / Esclave. Il peut y avoir un seul maître par réseau et plusieurs esclaves (chaque esclave a un identifiant). Cette interface nécessite 2 fils le SDA (Broche Analog A4) et SCL (Broche Analog A5). Grâce au réseau I2C, il est possible de connecter différentes cartes électroniques ou simple circuit intégré (« puce ») facilement comme le montre le schéma ci-contre. | |Step_Content=Pour mettre en réseau les 2 Arduinos, nous allons utiliser l’interface I2C du Arduino. Le réseau I2C fonctionne sur le principe Maître / Esclave. Il peut y avoir un seul maître par réseau et plusieurs esclaves (chaque esclave a un identifiant). Cette interface nécessite 2 fils le SDA (Broche Analog A4) et SCL (Broche Analog A5). Grâce au réseau I2C, il est possible de connecter différentes cartes électroniques ou simple circuit intégré (« puce ») facilement comme le montre le schéma ci-contre. | ||
− | {{Info| | + | {{Info|On voit sur ce schéma que pour fonctionner les éléments du réseau doit être alimenté par la même alimentation. Pour simplifier ceci, nous allons alimenter le Arduino donnant la commande (qui sera le maître) avec le Arduino allumant la LED (qui sera l’esclave).}} |
|Step_Picture_00=Utiliser_2_Arduinos_en_s_rie_schema-i2c.jpg | |Step_Picture_00=Utiliser_2_Arduinos_en_s_rie_schema-i2c.jpg | ||
}} | }} | ||
− | {{ | + | {{Tuto Step |
|Step_Title=Principe du montage | |Step_Title=Principe du montage | ||
|Step_Content=Le montage va cette fois-ci se décomposer en 2 parties : | |Step_Content=Le montage va cette fois-ci se décomposer en 2 parties : | ||
Ligne 39 : | Ligne 42 : | ||
* Le Arduino maître : Le Arduino maître reçoit son alimentation du Arduino esclave sur son entrée Vin. | * Le Arduino maître : Le Arduino maître reçoit son alimentation du Arduino esclave sur son entrée Vin. | ||
− | Pour terminer la bonne connexion de l’alimentation, il reste à connecter entre eux les GND des 2 | + | Pour terminer la bonne connexion de l’alimentation, il reste à connecter entre eux les GND des 2 Arduinos. |
Pour établir la connexion entre ces 2 Arduinos, il va être nécessaire de raccorder les signaux SDA/SCL: | Pour établir la connexion entre ces 2 Arduinos, il va être nécessaire de raccorder les signaux SDA/SCL: | ||
Ligne 47 : | Ligne 50 : | ||
|Step_Picture_00=Utiliser_2_Arduinos_en_s_rie_2-arduino-en-serie_sce_ma.jpg | |Step_Picture_00=Utiliser_2_Arduinos_en_s_rie_2-arduino-en-serie_sce_ma.jpg | ||
}} | }} | ||
− | {{ | + | {{Tuto Step |
|Step_Title=Réalisation du montage | |Step_Title=Réalisation du montage | ||
|Step_Content=Pour le Arduino esclave, ce montage est le même que le montage « Allumer une LED » | |Step_Content=Pour le Arduino esclave, ce montage est le même que le montage « Allumer une LED » | ||
Ligne 55 : | Ligne 58 : | ||
|Step_Picture_01=Utiliser_2_Arduinos_en_s_rie_Montage.jpg | |Step_Picture_01=Utiliser_2_Arduinos_en_s_rie_Montage.jpg | ||
}} | }} | ||
− | {{ | + | {{Tuto Step |
|Step_Title=Programmation du montage | |Step_Title=Programmation du montage | ||
|Step_Content=La programmation de ce montage s’appuie sur la librairie Wire. Comme c’est une librairie, pour utiliser ces fonctions, il faudra écrire «Wire.nomdelafonction » .Elle contient les fonctions suivantes : | |Step_Content=La programmation de ce montage s’appuie sur la librairie Wire. Comme c’est une librairie, pour utiliser ces fonctions, il faudra écrire «Wire.nomdelafonction » .Elle contient les fonctions suivantes : | ||
Ligne 73 : | Ligne 76 : | ||
{{Warning|ATTENTION : Il faut déconnecter les Arduinos durant la programmation !}} | {{Warning|ATTENTION : Il faut déconnecter les Arduinos durant la programmation !}} | ||
}} | }} | ||
− | {{ | + | {{Tuto Step |
|Step_Title=Programme du Arduino Esclave | |Step_Title=Programme du Arduino Esclave | ||
|Step_Content=Le Arduino esclave définit qu’il a une sortie sur digital 2. Il dit que son adresse est la numéro 4. Il va attendre de recevoir le chiffre 1 sur l’interface I2C pour allumer la LED. Quand il reçoit 0 il éteint la LED. | |Step_Content=Le Arduino esclave définit qu’il a une sortie sur digital 2. Il dit que son adresse est la numéro 4. Il va attendre de recevoir le chiffre 1 sur l’interface I2C pour allumer la LED. Quand il reçoit 0 il éteint la LED. | ||
Ligne 109 : | Ligne 112 : | ||
} | } | ||
}} | }} | ||
− | {{ | + | {{Tuto Step |
|Step_Title=Programme du Arduino Maître | |Step_Title=Programme du Arduino Maître | ||
|Step_Content=Le Arduino maître envoie un 1 sur l’interface I2C, attend 1 seconde, envoi un 0 sur l’interface I2C, attend 2 secondes et recommence à l’infini. | |Step_Content=Le Arduino maître envoie un 1 sur l’interface I2C, attend 1 seconde, envoi un 0 sur l’interface I2C, attend 2 secondes et recommence à l’infini. | ||
Ligne 133 : | Ligne 136 : | ||
} | } | ||
}} | }} | ||
− | {{ | + | {{Tuto Step |
|Step_Title=Fini ! | |Step_Title=Fini ! | ||
|Step_Content=Il reste à brancher le Arduino pour compiler le programme et le téléverser. | |Step_Content=Il reste à brancher le Arduino pour compiler le programme et le téléverser. | ||
Ligne 148 : | Ligne 151 : | ||
|Step_Picture_02=Utiliser_2_Arduinos_en_s_rie_se_rie.png | |Step_Picture_02=Utiliser_2_Arduinos_en_s_rie_se_rie.png | ||
}} | }} | ||
− | {{ | + | {{Notes |
− | {{ | + | |Notes= |
+ | }} | ||
+ | {{Tuto Status | ||
|Complete=Published | |Complete=Published | ||
}} | }} |
Auteur Letmeknow | Dernière modification 9/12/2019 par Clementflipo
Arduino Utiliser_2_Arduinos_en_s_rie_Final.jpg fr none Technique 1
Pour mettre en réseau les 2 Arduinos, nous allons utiliser l’interface I2C du Arduino. Le réseau I2C fonctionne sur le principe Maître / Esclave. Il peut y avoir un seul maître par réseau et plusieurs esclaves (chaque esclave a un identifiant). Cette interface nécessite 2 fils le SDA (Broche Analog A4) et SCL (Broche Analog A5). Grâce au réseau I2C, il est possible de connecter différentes cartes électroniques ou simple circuit intégré (« puce ») facilement comme le montre le schéma ci-contre.
Le montage va cette fois-ci se décomposer en 2 parties :
Pour terminer la bonne connexion de l’alimentation, il reste à connecter entre eux les GND des 2 Arduinos.
Pour établir la connexion entre ces 2 Arduinos, il va être nécessaire de raccorder les signaux SDA/SCL:
Pour le Arduino esclave, ce montage est le même que le montage « Allumer une LED »
Pour le Arduino maître, uniquement des connexions avec le Arduino esclave.
La programmation de ce montage s’appuie sur la librairie Wire. Comme c’est une librairie, pour utiliser ces fonctions, il faudra écrire «Wire.nomdelafonction » .Elle contient les fonctions suivantes :
Le programme va lui aussi être coupé en 2, un pour chaque Arduino.
Le Arduino esclave définit qu’il a une sortie sur digital 2. Il dit que son adresse est la numéro 4. Il va attendre de recevoir le chiffre 1 sur l’interface I2C pour allumer la LED. Quand il reçoit 0 il éteint la LED.
#include <Wire.h> // Librairie pour la communication I2C const int L1 = 2; // broche 2 du micro-contrôleur se nomme maintenant : L1 void setup() { Wire.begin(4); // Rejoindre le bus à l'adresse #4 Wire.onReceive(receiveEvent); // Preparer une fonction spécifique a la reception de donnee Serial.begin(9600); // Demarrer la liaison serie avec le PC pinMode(L1, OUTPUT); // L1 est une broche de sortie } void loop() { delay(100); } // Fonction qui s execute si quelque chose est present sur l interface void receiveEvent(int howMany) { int x = Wire.read(); // recevoir un chiffre Serial.println(x); // afficher ce chiffre sur l'interface serie if(x == 1) { digitalWrite(L1, HIGH); // allumer L1 } if(x == 0) { digitalWrite(L1, LOW); // eteindre L1 } }
Le Arduino maître envoie un 1 sur l’interface I2C, attend 1 seconde, envoi un 0 sur l’interface I2C, attend 2 secondes et recommence à l’infini.
#include <Wire.h> void setup() { Wire.begin(); // Rejoindre le bus I2C (Pas besoin d adresse pour le maitre) } void loop() { //contenu du programme Wire.beginTransmission(4); // Envoyer vers device #4 Wire.write(1); // Envoi un 1 Wire.endTransmission(); // Arreter la transmission delay(1000); // Attendre 1s Wire.beginTransmission(4); // Envoyer vers device #4 Wire.write(0); // Envoi un 0 Wire.endTransmission(); // Arreter la transmission delay(2000); // Attendre 2s }
Il reste à brancher le Arduino pour compiler le programme et le téléverser.
Une fois terminé cela nous donne :
Pour aller plus loin : Il est possible de rendre autonome le montage en lui ajoutant un coupleur de pile. Il est aussi possible de modifier les temps allumés et éteints. On peut remplacer les temps par un bouton poussoir ce qui ferait un système de bouton déporté.
Published
Vous avez entré un nom de page invalide, avec un ou plusieurs caractères suivants :
< > @ ~ : * € £ ` + = / \ | [ ] { } ; ? #