Arduino Forum

International => Français => Topic started by: Samanu on Sep 14, 2019, 11:55 am

Title: utilisation de deux "périphériques" avec un carte UNO
Post by: Samanu on Sep 14, 2019, 11:55 am
Bonjour,

Mon premier projet avec une carte UNO, consiste à :
    - Effectuer des mesures périodiques de courant triphasé avec 3 capteurs de courant ( transfo avec ferrites) reliés aux entrées analogiques ,
    - Visualiser les valeurs de courant  à l'aide d'un afficheur  LCD 20x4  ( Quimat, IIC/I2C/TWI Serial 2004) -   
    - Stocker ces  mêmes valeurs grâce à un module lecteur de carte SD.

En parcourant la littérature ces deux éléments devraient  être reliés comme suit :
     - L'Afficheur LCD 20x4 LCD ( Quimat, IIC/I2C/TWI Serial 2004 ) devrait utiliser les pins      
D2,D3,D4,D5
    -  le lecteur de carte SD  devrait utiliser 4 pins : pin D11 (MOSI ), pin D12 ( MISO), pin D13 (CLK), pin D4 ( SS ).

Ces deux périphériques devraient se partager la  pin D4 : est-ce possible ? sinon est-ce que l'utilisation d'une autre pin numérique est possible ( modification au niveau du code ) ?

Merci
Title: Re: utilisation de deux "périphériques" avec un carte UNO
Post by: jfs on Sep 14, 2019, 12:29 pm
Sujet déplacé dans la bonne partie du forum....
Title: Re: utilisation de deux "périphériques" avec un carte UNO
Post by: Samanu on Sep 14, 2019, 12:55 pm
Bonjour,
Désolé, mais dans quelle partie du forum trouver mon post ?
Merci
Title: Re: utilisation de deux "périphériques" avec un carte UNO
Post by: al1fch on Sep 14, 2019, 01:37 pm
Bonjour :

Quote
Désolé, mais dans quelle partie du forum trouver mon post ?
tout est expliqué dans la Règle du Forum qu'il est important de lire et suivre
'où poster ? comment  poster ? quelles informations founir ?.......
Title: Re: utilisation de deux "périphériques" avec un carte UNO
Post by: Samanu on Sep 14, 2019, 02:36 pm
Re bonjour,

Je ne dois pas être doué,  mais je ne comprend pas les remarques :
 j'ai lu les "règles" et ne vois toujours pas en quoi mon message ne les respecte pas. jfs me dit l'avoir déplacé mais je le retrouve, sauf erreur, au même endroit ( avec 27 lectures à ce stade) ?

Il me fallait mettre devant le titre de mon message [CONSEIL] ? je n'ai pas donné assez de renseignements ?
Title: Re: utilisation de deux "périphériques" avec un carte UNO
Post by: Leptro on Sep 14, 2019, 02:58 pm
Bonjour Samanu
Je n'ai pas vu ou était posté le post original..   les questions  de ce genre doivent être dans cette partie du forum.

Pour revenir à ta question.

Il me semble que ton afficheur soit à connecter en I2C . donc à connecter sur SDA (A4) et SCL (A5).


La carte Sd en SPi  D11,D12,D13 et D4 pour SS dans ce cas.


A noter en SPI les signaux Miso MOSI CLK sont communs à tout les périphériques du bus.
C'est le signal SS qui sélectionne le périphérique actif et donc chaque signal SS du périphérique doit être connecté à un Pin de l'Arduino.

Bonne bidouille.

Title: Re: utilisation de deux "périphériques" avec un carte UNO
Post by: Samanu on Sep 14, 2019, 04:59 pm
Merci de ta réponse Leptro, ta réponse me montre que je n'avais pas compris grand chose aux  interfaces entre UNO , un afficheur et un dispositif de stockage ( lecture trop rapide des infos Internet ! ).

Le petit schéma joint (hors alim) résume la configuration de branchement. Après avoir connecté mes 3 capteurs analogiques il me restera donc 1 entrée analogique de libre. Il ne me reste plus qu'a piocher sur Internet les codes appropriés pour faire un pas de plus avant les tests...

Merci encore

(http://Z:\CLAUDE\A_ARDUINO\A_Mesure TRI)
Title: Re: utilisation de deux "périphériques" avec un carte UNO
Post by: Samanu on Sep 14, 2019, 05:16 pm
J'essaie à nouveau de joindre mon croquis, suspense....
Title: Re: utilisation de deux "périphériques" avec un carte UNO
Post by: al1fch on Sep 14, 2019, 06:20 pm
le croquis pour que tout le monde le voie ...
(https://forum.arduino.cc/index.php?action=dlattach;topic=636051.0;attach=324436)
Title: Re: utilisation de deux "périphériques" avec un carte UNO
Post by: 68tjs on Sep 14, 2019, 07:16 pm
Quote
Visualiser les valeurs de courant  à l'aide d'un afficheur  LCD 20x4  ( Quimat, IIC/I2C/TWI Serial 2004)
Si l'afficheur est I2C il doit être connecté sur A4 A5.

Lien vers le matériel ?
Title: Re: utilisation de deux "périphériques" avec un carte UNO
Post by: Samanu on Sep 14, 2019, 10:51 pm
Bonsoir,

Concernant l'afficheur, le lien matériel qui figure sur mon croquis est bien A4, A5 ( comme Leptro me l'a indiqué pour un bus I2C ).
 Je ne comprend pas la remarque ?
Title: Re: utilisation de deux "périphériques" avec un carte UNO
Post by: J-M-L on Sep 15, 2019, 11:33 am
Le petit schéma joint (hors alim) résume la configuration de branchement. Après avoir connecté mes 3 capteurs analogiques il me restera donc 1 entrée analogique de libre. Il ne me reste plus qu'a piocher sur Internet les codes appropriés pour faire un pas de plus avant les tests...
ça semble cohérent maintenant - en supposant qu'il n'y a pas de problème sur les puissances pour les alimentations des différents sous systèmes car on dirait que vous alimentez le tout au travers de la carte Arduino.
Title: Re: utilisation de deux "périphériques" avec un carte UNO
Post by: jfs on Sep 15, 2019, 12:30 pm
Le sujet a été posté initialement dans les projets finis.... apparemment ce n'est que le début, donc je l'ai déplacé dans la partie générale du forum francophone.

Voili-voilou....
Title: Re: utilisation de deux "périphériques" avec un carte UNO
Post by: Samanu on Sep 15, 2019, 11:33 pm
Bonsoir,

- Désolé pour ne pas avoir posté au bon endroit, peut-être qu'inconsciemment je pensais le projet déjà achevé alors que c'est loin d'être le cas compte tenu de mon inexpérience...

- Merci pour la remarque concernant la puissance, je veillerais lors des premiers tests à conserver de la marge quitte à alimenter les s/systèmes indépendamment.

Merci encore
Title: Re: utilisation de deux "périphériques" avec un carte UNO
Post by: 68tjs on Sep 16, 2019, 11:40 am
Je ne comprend pas la remarque ?
Désolé j'ai confondu avec la carte SD.
Title: Re: utilisation de deux "périphériques" avec un carte UNO
Post by: dbrion06 on Sep 16, 2019, 12:24 pm
JE ne comprends pas ce que vous faites avec la carte SD.
Si vous choisissez de n'avoir qu'un periphérique SPI, vous avez tout interet à utiliser la patte D10 comme Slave Select(de toutes façons, cette patte est inutilsée dans votre schéma) au lieu de D4
Quote
The communication between the microcontroller and the SD card uses SPI, which takes place on digital pins 11, 12, and 13 (on most Arduino boards) or 50, 51, and 52 (Arduino Mega). Additionally, another pin must be used to select the SD card. This can be the hardware SS pin - pin 10 (on most Arduino boards) or pin 53 (on the Mega) - or another pin specified in the call to SD.begin(). Note that even if you don't use the hardware SS pin, it must be left as an output or the SD library won't work.
Ceci est un extrait de https://www.arduino.cc/en/Reference/SD (https://www.arduino.cc/en/Reference/SD)
(et une particularité des SPI materiels des avr: la patte prévue par le constructeur comme SS doit être utilisée effectivement comme SS ou laissée en sortie))
Title: Re: utilisation de deux "périphériques" avec un carte UNO
Post by: 68tjs on Sep 16, 2019, 10:26 pm
Quote
la patte prévue par le constructeur comme SS doit être utilisée effectivement comme SS ou laissée en sortie
Effectivement si elle est configurée en entrée, selon qu'elle reçoit un 1 ou un 0, le SPI sera maître ou esclave (ou esclave ou maître --> voir la datasheet).
Pour éviter de retrouver le SPI en mode esclave il faut la configurer en sortie, le plus simple est de l'utiliser pour sélectionner un esclave, ce pour quoi elle est prévue.
Title: Re: utilisation de deux "périphériques" avec un carte UNO
Post by: dbrion06 on Sep 17, 2019, 07:11 am
"le plus simple est de l'utiliser pour sélectionner un esclave,"
Comme la carte SD est le seul esclave de la liste... la solution la plus simple est triviale....
Title: Re: utilisation de deux "périphériques" avec un carte UNO
Post by: 68tjs on Sep 17, 2019, 09:01 am
Dans le cas où  il n'y a qu'un seul esclave le plus simple serait de positionner  en fixe la pin CS du module esclave.
Il restera sélectionné  en permanence ce qui ne sera pas gênant puisqu'il est seul sur le bus et la pin 10 serait disponible pour un autre usage..

C'est dans cette situation où  la pin 10 (uno) est disponible pour un autre usage qu'il faut qu'elle soit absolument configurée  en sortie si on veut éviter que le SPI du micro passe involontairement en mode esclave.

Quand il reste des pins disponibles autant ne pas jouer avec le feu et l'utiliser pour le SPI.
Title: Re: utilisation de deux "périphériques" avec un carte UNO
Post by: Samanu on Sep 18, 2019, 12:22 pm
Bonjour,

-Souhaitant fixer la configuration HW avant de m'attaquer au logiciel, j'ai sélectionné la patte 4 sur la base d'exemples existants ( donc sans réfléchir ! ), ayant noté que pour que la bibliothèque SD fonctionne il fallait impérativement déclarer la patte D10 en mode OUTPUT.

- Suite aux échange et au dernier post de 68tjs, je n'arrive pas à comprendre logiquement  pourquoi ne pas utiliser en fait D10 comme liaison SS.  Si j'ai bien compris:
       . C'est la liaison SS de base de la carte UNO ( et je n'aurais qu'un seul périphérique sur le bus SPI, donc un seul esclave).
       . En terme de disponibilité d'E/S  je perd D10 mais je libère D4. Dans le cas SS = D4, D10 ne peut plus être utilisée qu'en sortie, petite restriction ?
Title: Re: utilisation de deux "périphériques" avec un carte UNO
Post by: dbrion06 on Sep 18, 2019, 12:32 pm
"Suite aux échange et au dernier post de 68tjs, je n'arrive pas à comprendre logiquement  pourquoi ne pas utiliser en fait D10 comme liaison SS.  "
C'est ce que je conseille depuis des posts... et votre raisonnement (qui est le mien) est, pour moi, parfaitement valide.
a noter que mettre un arduino en esclave SPI est, si le logiciel ne le supporte pas (et ça n'a vraiment pas l'air de ce que vous voulez faire), extrêmement déroutant.
Title: Re: utilisation de deux "périphériques" avec un carte UNO
Post by: Samanu on Sep 18, 2019, 12:47 pm
Je ne vois pas dans quel type d'application un arduino peut-être esclave d'un périphérique ( à mettre sur le compte tenu de mon inexpérience), une autre carte arduino ou un périphérique "intelligent" ?
Title: Re: utilisation de deux "périphériques" avec un carte UNO
Post by: fdufnews on Sep 18, 2019, 01:00 pm
Je ne vois pas dans quel type d'application un arduino peut-être esclave d'un périphérique, une autre carte arduino ou un périphérique "intelligent" ?
On pourrait par exemple envisager un système exigeant un certain niveau de sécurité sur lequel il y aurait 2 maitres redondants qui pourraient prendre le contrôle du bus SPI. Lorsque l'un des 2 prend le contrôle du bus il faut que l'autre devienne esclave pour libérer le bus.
Title: Re: utilisation de deux "périphériques" avec un carte UNO
Post by: dbrion06 on Sep 18, 2019, 01:11 pm
* gammon (demandez à google ou a kwark "gammon arduino SPI" gammon.com.au/spi (http://gammon.com.au/spi)) fait un très beau cours sur les SPI et un exemple de cours avec 2 arduini.

* Si vous avez un RPi, (qui n'a pas de convertisseur analogique numérique -CAN- , mais deux SPI, une solution pour avoir un CAN à 6 voies est d'utiliser un Arduino et un esclave SPI (avec des fils pas trop longs -10, 20 cm)

* https://www.gotronic.fr/art-afficheur-7-segments-blancs-4-digits-20162.htm (https://www.gotronic.fr/art-afficheur-7-segments-blancs-4-digits-20162.htm) est un module commercial, qui est suivant la configuration esclave I2C ou SPI: c'est pratiquement un arduino (même processeur, même chargeur de démarrage) spécialisé... Il est assez populaire chez les amateurs de RPi, car très joli et servant à des tutoriels sur les bus..

Des myriades d'autres idées peuvent jaillir de cerveaux créateurs.
Title: Re: utilisation de deux "périphériques" avec un carte UNO
Post by: Samanu on Sep 18, 2019, 01:47 pm
- Merci a vous deux d'avoir éclairé ma lanterne, ainsi il est plus facile dans le monde informatique de trouver des exemples ou le maitre peut devenir esclave que dans le notre ...

- Le cours de Nick Gammon me semble très clair et bien illustré, je vais m'y coller.
Title: Re: utilisation de deux "périphériques" avec un carte UNO
Post by: 68tjs on Sep 18, 2019, 03:00 pm
Tu as exactement le même fonctionnement maître ou esclave avec l'I2C.
Dans les exemples de la bibliothèque "Wire"  tu as le cas où un microcontrôleur utilise l'I2C en mode maître pour  pilote un autre microcontrôleur dont l'I2C a été positionné en mode esclave.
Voir les exemples : master_reader, master_writer, slave_reader, slave_writer.

Pour déclarer en maître tu écris simplement Wire.begin()
Pour déclarer en esclave tu imposes une adresse I2C au microcontrôleur en écrivant Wire.begin(xx), xx étant l'adresse définie par le programmeur.