IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Arduino Discussion :

I2C mega(maitre) uno(esclave) + IR


Sujet :

Arduino

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Janvier 2018
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2018
    Messages : 1
    Par défaut I2C mega(maitre) uno(esclave) + IR
    Bonjour,

    J'ai un petit pb de compréhension.

    J'utilise deux arduino en liaison serie.
    ARDUINO MEGA (maitre)

    Code C : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     #include <Wire.h>
     
    #include <IRremote.h>
    int RECV_PIN = 2; // pin de communication IR
    IRrecv irrecv(RECV_PIN);
    decode_results results;
     
    void setup()
    {
    Wire.begin(); // Rejoindre le bus I2C (Pas besoin d adresse pour le maitre)
    }
     
    void loop()
    {
    Wire.beginTransmission(9); // Envoyer vers device #9
    Wire.write(1); // Envoi un 1
    Wire.endTransmission(); // Arreter la transmission
    delay(1000); // Attendre 1s
     
    Wire.beginTransmission(9); // Envoyer vers device #9
    Wire.write(0); // Envoi un 0
    Wire.endTransmission(); // Arreter la transmission
    delay(5000); // Attendre 2s
    }

    et ARDUINO UNO (esclave)


    Code C : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    #include <Wire.h>                                   // BUS I2C
    const int Monter = 2;                               // Pin 2: pilote pour monter TV
    const int Descendre = 3;                            // Pin 3: pilote pour descendre TV
     
    void setup()
    {
    Wire.begin(9);                                      // Bus de l'eclave 1 (adresse 9)
    Wire.onReceive(receiveEvent);                       // Preparer une fonction spécifique a la reception de donnee
    Serial.begin(9600);                                 // Demarrer la liaison serie avec le PC
    pinMode(Monter,OUTPUT);                             // la sortie pin 2 pour monter
    pinMode(Descendre,OUTPUT);                          // la sortie pin 3 pour descendre
    }
     
    void loop()
    {
      delay(100);
    }
     
    void receiveEvent(int howMany)                      // Fonction qui s execute si quelque chose est present sur l interface
     
    {
      int x = Wire.read();                              // recevoir un chiffre
      Serial.println(x);                                // afficher ce chiffre sur l'interface serie
     
      if(x == 1)                                        // si x est equivalent a la donnée recu, c'est a dire 1
     
          {
              digitalWrite(Monter,HIGH);                // allumer L1
              digitalWrite(Descendre,LOW);              // allumer L1
          }
     
      if(x == 0)                                        //si x est equivalent a la donnée recu, c'est a dire 0
     
          {
              digitalWrite(Monter,LOW);                 // eteindre L1
              digitalWrite(Descendre,HIGH);             // eteindre L1
          }
    }
    dont voila les programmes.
    Je veux utiliser une telecommande IR avec son recepteur et tout ca est connecté sur la mega (maitre) afin de piloté a travers la liaison serie la UNO.
    j'ai les code de chaque touche de la telecommande mais je ne sais pas comment faire pour dire:
    appui touche 1 = envoie wire.write(1);
    appui touche 2 = envoie wire.write(0);
    ainsi de suite...

    merci pour votre aide
    Cordialement

  2. #2
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    13 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 13 197
    Billets dans le blog
    47
    Par défaut
    Bonsoir,

    Avec un branchement conditionnel, voir http://laboratory-manual-arduino.dev...itionnelles#LV

Discussions similaires

  1. Problème I2C avec 2 arduino (maitre-esclave)
    Par patou41000 dans le forum Arduino
    Réponses: 2
    Dernier message: 17/02/2016, 10h23
  2. Affichage d'image (Document maitre/document esclave)
    Par viktoriosk8 dans le forum Tableaux - Graphiques - Images - Flottants
    Réponses: 5
    Dernier message: 10/12/2014, 21h43
  3. Disque dur maitre ou esclave ?
    Par davidc dans le forum Composants
    Réponses: 5
    Dernier message: 19/03/2008, 18h25
  4. Package Dans un schema maitre executé par un schema Esclave
    Par argoet dans le forum Administration
    Réponses: 18
    Dernier message: 29/09/2004, 16h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo