[Arduino] Uno, port expander et écran LCD
Répondre à la discussion
Affichage des résultats 1 à 10 sur 10

[Arduino] Uno, port expander et écran LCD



  1. #1
    alan30

    [Arduino] Uno, port expander et écran LCD


    ------

    Bonsoir,

    Je suis tout nouveau sur le forum, et je me tourne vers vous car j'ai un problème depuis un petit moment et impossible de le résoudre. Mon objectif est de piloter un afficheur LCD 2*16 charactères via un port expander SPI de chez Microchip, le MCP23S17. J'ai décidé de procéder par étapes, en premier configurer la liaison SPI et contrôler le port expander.
    Pour cela j'utilise la bibliothèque disponible ici. Ce que je souhaite faire pour le moment c'est allumer des leds via le port expander pour prendre en main la bibliothèque.

    D'après ce que j'ai compris en lisant la bibliothèque et les exemples fournis ce code devrait me permettre d'allumer une led sur le pin 4 du port expander.

    Code:
    #include <SPI.h>
    #include <MCP23S17.h>
    
    MCP chip(0); // A0,A1,A2 => Ground
    
    void setup() {
      
      SPI.begin();
      chip.pinMode(4,OUTPUT);
      chip.digitalWrite(4,HIGH);
    }
    
    void loop() {
    
    }
    Ce que j'ai, la led ne s'allume pas, les broches 19 et 20 sont à l'état logique haut. Elles correspondent à des interruptions au niveau des Port A et Port B. Ce que je ne comprends pas c'est pourquoi ces interruptions sont-elles actives ? Et comment les acquitter ? A priori ce sont elles qui m'empêche d'écrire sur les ports.
    Si quelqu'un à déjà eu une expérience avec ce chip et qu'il veut bien m'aider je le remercie d'avance.

    -----

  2. #2
    Biname

    Re : [Arduino] Uno, port expander et écran LCD

    Hello,

    Arduino utilise ??probablement?? une librairie SPI software, SPI.h (SPI Hardware avec interruptions) ne me paraît pas nécessaire ????

    Biname

  3. #3
    alan30

    Re : [Arduino] Uno, port expander et écran LCD

    Je suis pas sur d'avoir compris. Mais la bibliothèque SPI.h est nécessaire pour ouvrir la connexion vers le port expander. Elle est également utilisée par les fonctions de la bibliothèque MCP23S17.h pour communiquer avec ce composant.

  4. #4
    Biname

    Re : [Arduino] Uno, port expander et écran LCD

    Hello,
    Citation Envoyé par Biname Voir le message
    Arduino utilise ??probablement?? une librairie SPI software, SPI.h (SPI Hardware avec interruptions) ne me paraît pas nécessaire ????
    Biname
    Non ! Désolé

    Je joue avec I2C vers PCF8574 vers LCD 2x16(module), comparable à ton cas ... j'affiche ... mais ...

    Biname

  5. A voir en vidéo sur Futura
  6. #5
    Biname

    Re : [Arduino] Uno, port expander et écran LCD

    Salut,
    Citation Envoyé par alan30 Voir le message
    Je suis pas sur d'avoir compris. Mais la bibliothèque SPI.h est nécessaire pour ouvrir la connexion vers le port expander. Elle est également utilisée par les fonctions de la bibliothèque MCP23S17.h pour communiquer avec ce composant.
    On trouve des implémentations SPI software (bit banging) ex : http://little-scale.blogspot.be/2007...i-by-hand.html dans ce cas SPI.h est inutile

    L'exemple du site Arduino n'inclus ni 'SPI.h' ni 'MCP23S17.h'

    Suffirait d'essayer ceci

    // #include <SPI.h>
    #include <MCP23S17.h> // ??? commenter ceci aussi auto avec MCP ???

    MCP chip(0); // A0,A1,A2 => Ground

    void setup() {

    // SPI.begin();
    chip.pinMode(4,OUTPUT);
    chip.digitalWrite(4,HIGH);
    }

    void loop() {

    }
    Hmmmm

    Biname

  7. #6
    Biname

    Re : [Arduino] Uno, port expander et écran LCD

    Citation Envoyé par Biname Voir le message
    Suffirait d'essayer ceci
    Hmmmm
    Re Non , MCP23S17.Cpp contient ceci

    #include <SPI.h> // Arduino IDE SPI library - uses AVR hardware SPI features
    #include "MCP23S17.h" // Header files for this class
    Il s'agit donc d'une implémentation SPI hardware !

    Biname

  8. #7
    alan30

    Re : [Arduino] Uno, port expander et écran LCD

    Bonjour,

    J'ai pu aller à ma fac et utiliser un oscilloscope pour vérifier que les trames SPI sont bien envoyées, ce qui est le cas. Donc les trames parviennent bien jusqu'au port expander mais ce derniers n'a pas l'air de réagir. Je ne comprends pas comment ça se fait. Je précise qu'avant que les pins d'interruptions se mettent au niveau haut je réussissait parfaitement à le piloter. J'ai tenté un reset hardware, rien a faire les interruptions sont toujours présentes

  9. #8
    Biname

    Re : [Arduino] Uno, port expander et écran LCD

    Salut,

    Une bêtise en plus ?

    Le MCP doit être mal initialisé ou mouru (il a fonctionné dis-tu) ???? Le PDF du MCP, un peu long, donne 20 octets de configuration, 10 par port.
    Voici un code C, assez court, qui n'utilise pas de librairie MCP23S17, seulement une librairie SPI, ce code initialise le chip et R/W les ports du MCP

    Description du projet
    http://www.spikenzielabs.com/Spikenz...roject_64.html
    et le code
    http://www.spikenzielabs.com/Spikenz...Button64v4.pde

    Biname

    (*) pas un code Arduino non plus

  10. #9
    alan30

    Re : [Arduino] Uno, port expander et écran LCD

    Bonjour, merci pour le code d'initialisation, je l'ai modifié pour l'adapter à mon cas. Mais rien à faire les broches d'interruptions restent à l'état haut et impossible de changer le niveau sur le port A ou le port B. Je pense que mon port expander est mort. Même si je ne vois pas ce que j'ai pu faire pour le griller car je n'ai rien branché de spécial dessus à part une led avec une résistance en série. Je me souviens que mon chip a cessé de fonctionner lorsque j'avais coupé l'alimentation de la carte. Peut-être une surtension à ce moment là ? Dans ce cas je risque pas de cramer n'importe quelle chip à chaque fois que je vais couper l'alimentation de mon arduino ?

  11. #10
    Biname

    Re : [Arduino] Uno, port expander et écran LCD

    Hello,
    Les composants modernes sont plutôt costauds, ils acceptent beaucoup de mauvaises manipulations mais parfois ...
    Funérailles, un an de deuil et tu recommences.
    Biname

Discussions similaires

  1. Alimentation Arduino + port série
    Par pouic92 dans le forum Électronique
    Réponses: 9
    Dernier message: 07/01/2015, 00h08
  2. Arduino et port serie
    Par Sgroink dans le forum Internet - Réseau - Sécurité générale
    Réponses: 2
    Dernier message: 11/01/2014, 13h14
  3. Arduino:port com 1 not found ...
    Par jeromina dans le forum Électronique
    Réponses: 3
    Dernier message: 27/01/2013, 16h22
  4. Arduino UNO detecté en port de communication bluetooth
    Par invite922f9b6e dans le forum Matériel - Hardware
    Réponses: 3
    Dernier message: 02/07/2012, 20h20
  5. MCP23S17 - I/O port expander -> Driver SPI
    Par jorg1n dans le forum Électronique
    Réponses: 8
    Dernier message: 08/08/2011, 17h32
Découvrez nos comparatifs produits sur l'informatique et les technologies.