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 :

Connexions multiples sur MEGA 2560


Sujet :

Arduino

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2019
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2019
    Messages : 73
    Points : 35
    Points
    35
    Par défaut Connexions multiples sur MEGA 2560
    Nom : BOB_Interieur_web.jpg
Affichages : 267
Taille : 33,9 Ko

    Voilà à quoi ressemble le cerveau de mon robot. Un fouillis de câbles. Et il y en a autant en dessous.
    Au départ j'ai connecté directement sur la MEGA. Je me suis très vite aperçu que les broches avaient tendance à ne pas tenir les nombreuses manipulations effectuées. J'ai donc opté pour un module avec bornes (comme l'image le montre sur mon pc) Très bien au départ, mais la multitude de câbles donne ce fouillis inextricable et difficile d'accès à terme. A chaque ajout j'ai des soucis de pannes sur un autre élément.

    J'ai recherché sur le web une plus grande plaque avec des petite bornes similaire à mon module. Je n'ai rien trouvé, et les bornes électriques sont trop grosse.
    Et surtout je souhaite éviter les soudures.

    QUESTION : Auriez-vous une idée ?

    Merci

  2. #2
    Expert confirmé

    Homme Profil pro
    mad scientist :)
    Inscrit en
    Septembre 2019
    Messages
    2 711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2 711
    Points : 5 390
    Points
    5 390
    Par défaut
    les bornes électriques sont trop grosse
    les wagos ne sont pas si grosses (les transparents) et on en trouve de x2, x3, x4 etc pour les connexions multiples
    Nom : wagos.jpg
Affichages : 238
Taille : 68,5 Ko



    Et surtout je souhaite éviter les soudures.
    A moins de prévoir des cartes et des modules d'interfaçage, ça restera un mélange de câbles mais le wrapping a servi à envoyer des hommes sur la lune, il doit pouvoir servir pour votre robot

    Nom : wrap.jpeg
Affichages : 240
Taille : 1,37 Mo


  3. #3
    Membre émérite
    Avatar de jpbbricole
    Homme Profil pro
    Retraité des réseaux informatiques
    Inscrit en
    Février 2013
    Messages
    1 012
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Retraité des réseaux informatiques
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2013
    Messages : 1 012
    Points : 2 341
    Points
    2 341
    Par défaut
    Bonjour Babbone
    Citation Envoyé par Babbone Voir le message
    QUESTION : Auriez-vous une idée ?
    Surtout une question, que "transportent" tout ces fils?
    Si c'est du digital, pourquoi ne pas mettre un concentrateur genre MCP23017 par ci, par là, concentrateurs reliés entre eux et au Mega par un bus i2C ce qui fait "plus que" 4 fils. Les torches ne seraient plus que "locales".

    Cordialement
    jpbbricole
    L'expérience est la seule chose qu'il ne faut acheter que d'occasion!

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2019
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2019
    Messages : 73
    Points : 35
    Points
    35
    Par défaut
    Citation Envoyé par jpbbricole Voir le message
    Surtout une question, que "transportent" tout ces fils?
    Tous ces fils sont connectés à des capteurs ultrason HC-SR04. Dans la tête 1, dans le "col" 3, + 2 leds RGB ainsi qu'un capteur bluetooth pour télécommande et un servo pour la rotation de la tête connecté à un concentrateur servo PCA9685.
    Un capteur HC-SR04 au niveau du "nombril" et 4 capteurs au niveau plancher. Je vais rajouter 2 capteurs infrarouge dans les coins bas car le robot est plutôt myope pour la vision de près.
    Il y a bien sûr 2 moteurs connectés sur un L298Na

    Et ce n'est pas fini car je souhaite lui ajouter au moins un bras sinon 2.

    Votre idée je vais la creuser. Ces concentrateurs sont un peu comme le concentrateur servo PCA9685 ? Je suppose ?
    Donc il y aurait moins de fils qui arriveront sur la MEGA ?

    Merci à vous, cordialement.

  5. #5
    Expert confirmé

    Homme Profil pro
    mad scientist :)
    Inscrit en
    Septembre 2019
    Messages
    2 711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2 711
    Points : 5 390
    Points
    5 390
    Par défaut
    Une autre approche consisterait à avoir plusieurs processeurs dédiés aux différentes parties / fonctions et communicants entre eux sur un bus (I2C comme suggéré par exemple mais il y en a d'autres avec des options pour être moins sensible aux perturbations)

    ça nécessite bien sûr de penser le code différemment mais offre une modularité importante et réduit le risque de souci sur tous les fils.

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2019
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2019
    Messages : 73
    Points : 35
    Points
    35
    Par défaut
    Ok

    Donc, entre les modules d'interfaçage et avoir plusieurs processeurs dédiés quel est la meilleure solution.
    Je comprends pas bien le principe de fonctionnement, malgré mes recherches de codes.

    Admettons que :

    1. j'utilise un arduino mini pour y connecter les capteurs, les leds et le servo de la tête.
    2. j'utilise un autre arduino mini pour y connecter les capteurs et le module moteur de la base.

    a) Je dois programmer de façon indépendant les 2 arduino.
    b) Je dois relier les 2 arduino à mon arduino MEGA (que je dois reprogrammer entièrement. C'est pas un souci)

    Comment je relie les 2 arduino mini à mon MEGA ? et sur quel pin. Il me semblait comprendre qu'il fallait utiliser les pin SDA et SDL.
    Mais sur la MEGA il n'y a qu'un pin SDA et SDL ou peut-on les brancher ailleurs.

    Je ne sais pas si c'est bien clair, en tout cas pour l'instant c'est un peu flou.

    Un petit schema serait plus explicite, je n'ai rien trouver sur le web qui m'éclaire.

    Merci, cordialement

  7. #7
    Membre émérite
    Avatar de jpbbricole
    Homme Profil pro
    Retraité des réseaux informatiques
    Inscrit en
    Février 2013
    Messages
    1 012
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Retraité des réseaux informatiques
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2013
    Messages : 1 012
    Points : 2 341
    Points
    2 341
    Par défaut
    Bonsoir Babbone

    Au sujet de SDA et SCL, regardes Arduino bus i2C, il peut y avoir plusieurs périfériques connectés dessus. Le "Maitre" serait le Mega, les éventuels Arduino supplémentaires et le PCA9685 les "esclaves".
    Dans ce type d'architecture le Mega transmet ses ordres aux périfériques et peut leur demander des paramètres, c'est toujours le Mega qui prends l'initiative.

    Cordialement
    jpbbricole
    L'expérience est la seule chose qu'il ne faut acheter que d'occasion!

  8. #8
    Expert confirmé

    Homme Profil pro
    mad scientist :)
    Inscrit en
    Septembre 2019
    Messages
    2 711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2 711
    Points : 5 390
    Points
    5 390
    Par défaut
    Et si on veut une communication "simple" dans les 2 sens, on pourrait avoir des liens séries hors bus, la carte MEGA a 4 ports série matériels.

    A vous de définir un petit protocole de communication entre les modules

  9. #9
    Nouveau membre du Club
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2019
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2019
    Messages : 73
    Points : 35
    Points
    35
    Par défaut
    Ca y est maintenant j'ai compris. Au boulot.

    Nom : Tete_BOB.jpg
Affichages : 203
Taille : 8,8 Ko

    BOB vous remercie. Dommage que vous ne l'entendiez pas.

    Merci à vous deux. Je ne clos pas le poste car je vous confirmerais le résultat.

    Cordialement

  10. #10
    Membre émérite
    Avatar de jpbbricole
    Homme Profil pro
    Retraité des réseaux informatiques
    Inscrit en
    Février 2013
    Messages
    1 012
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Retraité des réseaux informatiques
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2013
    Messages : 1 012
    Points : 2 341
    Points
    2 341
    Par défaut
    Bonjour BOB

    Un dernier conseil à ton "patron", quelque soit la façon de transmettre, série ou i2C, étudies les structures, ça facilite grandement les transmissions de données.
    Ainsi, au lieu de transmettre ou recevoir une suite de variables, on transmet une structure constituée de ces variables.

    Transmet mes salutations à @Babbone et bonne continuation.

    Cordialement
    jpbbricole
    L'expérience est la seule chose qu'il ne faut acheter que d'occasion!

  11. #11
    Nouveau membre du Club
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2019
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2019
    Messages : 73
    Points : 35
    Points
    35
    Par défaut
    Bonjour,

    Tout d'abord une petite vidéo.



    Questions :

    Est-ce que le module ci-dessous est compatible avec mon projet, pour réduire la profusion de fils ?
    Celui-là je dois le commander

    Nom : MCP23017.jpg
Affichages : 192
Taille : 28,6 Ko

    Est-ce que le module ci-dessous est compatible avec mon projet (normalement prévu pour les Servos) ?
    Celui-là je l'ai en stock

    Nom : 16 canaux 12 bits PWM.jpg
Affichages : 189
Taille : 90,6 Ko

    J'ai encore beaucoup de questions. Fichiers H et CPP. Pour info, le code est proche de mille lignes.

    Cordialement

  12. #12
    Nouveau membre du Club
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2019
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2019
    Messages : 73
    Points : 35
    Points
    35
    Par défaut
    Bonjour à tous,

    Voilà, je me suis procuré 2 MCP23017 comme présenté précédemment.
    Je me suis penché sur les connexions et les codes pour utiliser ces modules.

    Après une cinquantaine de pages WEB consultées sur le sujet, je me suis arraché le peu de cheveux qu’il me restait.

    JE N’AI RIEN COMPRIS.

    Les connexions restent toujours un mystère. INTA INTB GPA0 0X00, etc…
    Les codes c’est pareil. Certains demandent des bibliothèques d’autres pas.

    J’ai téléchargé sur une MEGA successivement 2 codes très simples sans problème (ci-dessous).
    Pas d’anomalies ni d’erreurs.

    CODE 1 avec Bibliothèque MCP23X17

    Code : 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
     
    #include <Adafruit_MCP23X08.h>
    #include <Adafruit_MCP23X17.h>
    #include <Adafruit_MCP23XXX.h>
     
     
     
    #include "Adafruit_MCP23X17.h"
     
    //pin 1 and 0 are mcp pins not arduino IO pins
     
    Adafruit_MCP23X17 mcp;
     
    void setup() {  
    mcp.begin_I2C();      // use default address 0
     
    mcp.pinMode(0, INPUT);
    mcp.pinMode(1, OUTPUT);
    Serial.begin(9600);
     
    pinMode(13, OUTPUT);  // use the p13 LED as debugging
    }
     
    void loop() {
    // The LED will 'echo' the button
    digitalWrite(13, mcp.digitalRead(0)); //Writes pin 13 to the reading of pin    0
     
    mcp.digitalWrite(1, mcp.digitalRead(0)); //Writes pin 1 to the reading of 0
     
    if(mcp.digitalRead(1) == HIGH){ //if pin 1 == high serialprint led whent   high
     
    Serial.println("Led whent HIGH");
    }
    }

    CODE 2 sans Bibliothèque MCP23X17

    Code : 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
    39
    40
    41
     
    // pins 15~17 to GND, I2C bus address is 0x20
     
    #include "Wire.h"
     
    void setup()
    {
      Wire.begin(); // wake up I2C bus
     
      // setup addressing style
      Wire.beginTransmission(0x20);
      Wire.write(0x12);
      Wire.write(0x20); // use table 1.4 addressing
      Wire.endTransmission();
     
      // set I/O pins to outputs
      Wire.beginTransmission(0x20);
      Wire.write(0x00); // IODIRA register
      Wire.write(0x00); // set all of bank A to outputs
      Wire.write(0x00); // set all of bank B to outputs
      Wire.endTransmission();
    }
     
    void binaryCount()
    {
      for (byte a=0; a<256; a++)
      {
        Wire.beginTransmission(0x20);
        Wire.write(0x12); // GPIOA
        Wire.write(a);    // bank A
        Wire.write(a);    // bank B
        Wire.endTransmission();
        delay(100);
      }
    }
     
    void loop()
    {
      binaryCount();
      delay(500);
    }

    Mais je ne suis pas plus avancé et je ne sais pas quoi en faire. Je rajoute un petit schéma de tous les modules que je dois connecter.

    Nom : MCP20317-Connexion.jpg
Affichages : 177
Taille : 484,4 Ko


    S’il y a parmi vous une âme charitable qui voudrait bien m’expliquer CLAIREMENT, avec un petit bout de code de lecture de capteur ultrason et d'envoi d’instruction vers un servo, je le remercie d’avance.
    Cordialement

  13. #13
    Expert confirmé

    Homme Profil pro
    mad scientist :)
    Inscrit en
    Septembre 2019
    Messages
    2 711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2 711
    Points : 5 390
    Points
    5 390
    Par défaut
    Le MCP23017 es un périphérique I2C donc on utilise la bibliothèque Wire pour lui parler et il nécessite d'être connecté à votre arduino donc sur les port SCL et SDA (en plus de l'alimentation - entre 2.7 et 5.5V).

    Comme c'est un périphérique I2C, il a une adresse. Cette adresse est paramètrable en raccordant les broches ADDR0, ADDR1 et ADDR2 sur l'alimentation ou la masse, ce qui permet d'avoir 8 adresses uniques et donc de rajouter plusieurs MCP23017 sur le bus I2C sans conflit d'adresse.

    Le MCP23017 fournit 16 pins d'extension, chacune des 16 pins peut être configurée en entrée (INPUT), en sortie (OUTPUT), et pour les entrées on peut les avoir avec pullup (INPUT_PULLUP) ou en drain ouvert.

    Les 16 pins sont réparties en 2 groupes, A et B de 8 pins. Vous verrez donc parfois la notation GPA0...GPA7 pour les 8 pins du groupe A et GPB0...GPB7 pour les 8 pins du groupe B.

    Il est possible d'obtenir un signal d'interruption via une pin du composant lorsqu'une des broches configurée en entrée change d'état... Comme cela, il n'est pas nécessaire de continuellement vérifier l'état des entrées. Ce signal d'interruption fonctionne par groupe de pin, c'est pour cela que vous avez INTA (pour le groupe A) et INTB (pour le groupe B) (et il y a même un registre interne qui permet de configurer comment la broche d'interruption doit se comporter)

    voilà à haut niveau ce qu'il faut savoir. Ensuite le plus simple c'est de passer par une bibliothèque, par exemple https://github.com/adafruit/Adafruit...rduino-Library

    je crois que c'est @jpbricole qui avait suggéré l'usage de ce composant, je le laisse vous préciser comment l'utiliser avec le capteur ultrason par exemple

  14. #14
    Membre émérite
    Avatar de jpbbricole
    Homme Profil pro
    Retraité des réseaux informatiques
    Inscrit en
    Février 2013
    Messages
    1 012
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Retraité des réseaux informatiques
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2013
    Messages : 1 012
    Points : 2 341
    Points
    2 341
    Par défaut
    Bonjour Babbone

    Est-ce que tu peut communiquer avec le MCP23017?
    Tu peux le virifier avec un programme de scanner i2C

    Citation Envoyé par Jay M Voir le message
    je crois que c'est @jpbricole qui avait suggéré l'usage de ce composant, je le laisse vous préciser comment l'utiliser avec le capteur ultrason par exemple
    Oui, mais je ne connaissait pas encore la liste des périphériques, pour le HC-SR04, il faut que je fasse des essais.

    Cordialement
    jpbbricole
    L'expérience est la seule chose qu'il ne faut acheter que d'occasion!

  15. #15
    Expert confirmé

    Homme Profil pro
    mad scientist :)
    Inscrit en
    Septembre 2019
    Messages
    2 711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2 711
    Points : 5 390
    Points
    5 390
    Par défaut
    oui faudra bidouiller un peu parce que l'usage traditionnel c'est

    envoi d'un front:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
      digitalWrite(trigPin, HIGH);
      delayMicroseconds(10);
      digitalWrite(trigPin, LOW);
    ça c'est assez simple à faire avec la bibliothèque

    mais ensuite il faut mesurer la durée de la réponse

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    long measure = pulseIn(echoPin, HIGH, timeout);
    pulseIn() ne sait pas traiter les pins d'un MCP23017 donc il faudra sans doute écrire cette partie là "à la main" et comme il faut être précis dans la mesure du temps "HIGH" il faudra sans doute utiliser les interruptions (Je ne sais pas si le polling en I2C serait assez rapide pour ne pas fausser la mesure)

    c'est là que ça demande du boulot

  16. #16
    Membre émérite
    Avatar de jpbbricole
    Homme Profil pro
    Retraité des réseaux informatiques
    Inscrit en
    Février 2013
    Messages
    1 012
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Retraité des réseaux informatiques
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2013
    Messages : 1 012
    Points : 2 341
    Points
    2 341
    Par défaut
    Bonjour Jay M

    Je pense que, pour continuer, il faut avoir une liste des périphériques de Tête et de Moteur par exemple. Ainsi on mettrai un Nano dans Tête et un dans Moteur le tout sous "l'autorité" d'un Mega et connectés en i2C, par exemple, comme suggéré dans le post #6.
    Pour moi, c'est un projet "assez GROS" qui nécessite une certaine expérience, j'ai déjà fait à peu près la même chose.

    Cordialement
    jpbbricole
    L'expérience est la seule chose qu'il ne faut acheter que d'occasion!

  17. #17
    Nouveau membre du Club
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2019
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2019
    Messages : 73
    Points : 35
    Points
    35
    Par défaut
    Merci à vous deux.

    Pour l'instant je n'ai connecté que le VCC GND SDA SCL
    INTA et INTB sont libres.
    Aucun autres branchements.

    Et il me sors

    I2C Scanner
    Scanning...
    I2C device found at address 0x27 !
    done

    I2C Scanner
    Scanning...
    I2C device found at address 0x27 !
    done

    etc...

  18. #18
    Expert confirmé

    Homme Profil pro
    mad scientist :)
    Inscrit en
    Septembre 2019
    Messages
    2 711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2 711
    Points : 5 390
    Points
    5 390
    Par défaut
    Citation Envoyé par Babbone Voir le message
    I2C Scanner
    Scanning...
    I2C device found at address 0x27 !
    done
    ça veut dire qu'il est bien branchée vu à cette adresse par le scanner

    pour tester.

    - installer la bibliothèque Adafruit dont j'ai donné le lien ci dessous
    - prenez une résistance de 220 ohms et une LED rouge
    - connectez sur GPA0 la résistance à l'anode (la longue broche) de la LED (en série donc) puis de la cathode aller à GND

    chargez ce code sur votre Arduino

    Code : 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
    #include <Adafruit_MCP23X17.h>
    const byte ledPin = 0; // une led sur GPA0 du MCP23017
    Adafruit_MCP23X17 mcp;
     
    void setup() {
      Serial.begin(115200);
      if (!mcp.begin_I2C(0x27)) {
        Serial.println("Error.");
        while (true);
      }
      mcp.pinMode(ledPin, OUTPUT);
    }
     
    void loop() {
      mcp.digitalWrite(ledPin, HIGH);
      delay(500);
      mcp.digitalWrite(ledPin, LOW);
      delay(500);;
    }
    la LED devrait clignoter

  19. #19
    Nouveau membre du Club
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2019
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2019
    Messages : 73
    Points : 35
    Points
    35
    Par défaut
    YES !!! Ca clignote...

  20. #20
    Expert confirmé

    Homme Profil pro
    mad scientist :)
    Inscrit en
    Septembre 2019
    Messages
    2 711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2 711
    Points : 5 390
    Points
    5 390
    Par défaut
    donc vous voyez, une fois l'instance mcp initialisée correctement, on configure la broche en entrée ou sortie avec mcp.pinMode(); au lieu de juste pinMode(); et au lieu de faire un digitalWrite() vous faites mcp.digitalWrite(); et ça envoie la commande à la pin choisie du composant.

    idem pour le digitalRead() on fait un mcp.digitalRead()

    donc pour vos composants qui ne sont pilotés qu'avec ces fonctions, c'est assez simple. ça se complique quand on a besoin de plus de choses

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 3 123 DernièreDernière

Discussions similaires

  1. [Autre micro] Système Arduino MEGA 2560 sur afficheur NEXTION
    Par tophe44 dans le forum Embarqué
    Réponses: 6
    Dernier message: 03/02/2018, 21h39
  2. [QThread] Problème de gestion des threads après connexions multiples sur un serveur
    Par vince-29 dans le forum Multithreading
    Réponses: 5
    Dernier message: 23/11/2010, 21h28
  3. gerer la connexion multiple sur un intranet
    Par tortuegenie dans le forum ASP.NET
    Réponses: 5
    Dernier message: 16/10/2008, 17h48
  4. Connexions multiple sur base DB2 en serveur
    Par donnadieujulien dans le forum DB2
    Réponses: 2
    Dernier message: 13/06/2008, 10h53
  5. Utiliser des connexions multiples sur des listes
    Par MasterJul dans le forum SharePoint
    Réponses: 0
    Dernier message: 08/02/2008, 12h41

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