Mega 2560 - Entrées - sorties analogiques

Bonjour tout le monde,

Je suis en train d'essayer de faire une radiocommande sur base d'une Mega 2560.
Avec les 2 sticks, les trims et l'écran tactile qui prend 4 entrées analogiques j'arrive déjà au maximum des entrées analogiques.
Peut-être n'est ce pas une bonne idée d'utiliser un écran tactile?
Je voulais vous demander s'il était préférable d'ajouter un (dé)multiplexeur ou un commutateur multi-contacts pour les trims. On ne les utilise pas souvent donc pourquoi pas.
Avec le commutateur je récupèrerais 6 entrées analogiques.

Merci à vous.

BB

c'est juste, ça. avec deux axes et donc deux trims par stick, + les 4 de l'écran, si je compte bien, on arrive à 12 entrées nécessaires en tout, non ?

Avec ce type de stick je vois pas comment avoir moins de 4 entrées par stick (Avant-Arrière-Gauche-Droite).
Comme il y a 4 sticks ça donnerait 16 entrées.
J'espère que vous me contredirez mais j'ai déjà vu plusieurs schémas et tous reprenaient ça.

Merci.

BB

schema_radioDIY.jpg

mais avant-arrière, ou gauche droite, c'est le même potentiomètre, non ? avec le point milieu quand le stick est au centre.

Il est impossible d'avoir le stick à la fois en avant et en arrière ou à gauche et à droite, ou alors je visualise mal un truc...

une photo et/ou un schéma du matos, ça aiderait peut-être pour qu'on comprenne ? (celui que tu as mis est trop petit, c'est illisible)

pepe:
Bonsoir

Je ne comprends pas bien comment on peut arriver, avec seulement deux sticks, les trims associés et un écran tactile, à utiliser plus que les 16 entrées analogiques disponibles sur l'Arduino Mega.

bonsoir
+1
8)

Désolé pour la qualité de la photo précédente.
En voici une autre plus claire j'espère et où on voit 12 entrées analogiques utilisées pour les trims et sticks.
Sorry Bricofoy, en effet c'est pour les trims qu'on a besoin de 8 entrées.
Donc on a toujours 12 + 4 pour l'écran ça fait 16.
Mais comme les trims ne sont pas souvent utilisés je pensais utiliser un commutateur pour libérer ces entrées et leur confier d'autres tâches lors d'une utilisation normale de la RC.

Voilà et merci.

MEGA2560_sch.pdf (286 KB)

4 entrées analogiques pour l'écran ?

T'as une datasheet (ou un lien vers la datasheet) des sticks, trim et écran ?

Voilà ce que j'ai : Écran Pixnor tactile 2.8"
En cherchant son mode d'emploi je suis tombé sur différents posts disant qu'il était impossible de le faire fonctionner.
J'ai pu trouvé ce post qui j'espère donne la solution : Câblage Pixnor
Ça m'arrangerait car en insérant directement l'écran sur la Mega il resterait encore moins d'entrées analogiques.
Tu pourras voir que 4 entrées analogiques sont utilisées.
Les sticks sont les composants classique en RC 1 potentiomètre par axe (photo).
Les trims sont des commutateurs à 4 voies.

Merci.

BB.

Stick.jpg

Commutateur 4 voies SKQUAAA01.jpg

Question à Benebo : connaît tu bien la différence entre :

  1. Une entrée sortie digitale.
  2. Une entrée analogique.
    et
  3. Ce que l'équipe arduino appelle à tord une sortie analogique.

Pour une entrée analogique il faut un convertisseur analogique digital (ADC)
--> il y en a un dans le micro de la UNO et dans celui de la Mega.

Pour une sortie analogique il faut l'inverse c'est à dire un convertisseur digital analogique (DAC)
--> il n'y en a pas ni dans le micro de la UNO, ni dans celui de la Mega.

Une entrée analogique sur la UNO ou sur la Mega est à l’allumage du micro une entrée digitale.
Sur la Mega les entrées dîtes analogiques sont connectées d'une part aux ports numériques F et K et d'autre part au multiplexeur analogique.

Pour faire passer une entrée "dîte" analogique en mode Entrée analogique il faut faire un certain nombre de configuration de registres, c'est le rôle de la fonction analogRead(x).

Ce que l'équipe arduino appelle complètement à tord sortie analogique est en fait une sortie numérique qui délivre un signal de fréquence fixe et dont la largeur du "1" est modulable (PWM).
Sans filtrage énergique derrière cela reste un signal numérique.

Ça c'est pour être certain de se comprendre.


Maintenant j'ai la même réaction :

Alain46:
4 entrées analogiques pour l'écran ?
T'as une datasheet (ou un lien vers la datasheet) des sticks, trim et écran ?

Pourquoi la gestion d'un écran aurait besoin de faire des mesures analogiques ?
C'est peut-être possible mais ce serait plus que surprenant.

Je pense à autre chose.
Tu as trouvé une affectation des broches sur internet. Ce que je pense c'est que l'utilisation des I/O à capacité de mesure analogique arrangeait l'auteur mais qu'il s'en servait comme des entrées digitales classiques.

La confirmation, ou l'infirmation de ce que je viens d'exposer est facile à faire.
Tu ouvre les bibliothèques de gestion de cet écran dans l'éditeur de ton choix.
Tu utilise la fonction "Chercher" sur "analogRead" pour voir si cette fonction est utilisée.

Si elle n'est pas utilisée j'ai raison, si elle l'est alors j'ai tord et il faudrait voir à quoi peu bien servir la mesure analogique dans la gestion d'un écran..

Merci pour tes explications sur les entrées-sorties analogiques. C'est clair mais je verrai à l'usage au fur et à mesure de l'avancée de mon affaire.
J'ai encore fouillé sur le net et j'ai trouvé dans un forum anglophone ceci:

/// The control pins for the LCD can be assigned to any digital or
// analog pins...but we'll use the analog pins as this allows us to
// double up the pins with the touch screen (see the TFT paint example).
#define LCD_CS A3 // Chip Select goes to Analog 3
#define LCD_CD A2 // Command/Data goes to Analog 2
#define LCD_WR A1 // LCD Write goes to Analog 1
#define LCD_RD A0 // LCD Read goes to Analog

Donc ça ne serait pas vraiment obligatoire mais un plus.
Que ferais-tu dans ce cas-là car sinon j'en suis toujours à 16 entrées analogiques?
Sinon j'utilise un commutateur sur les 4 trims pour récupérer 8 entrées.

Merci.

attention, certains écrans utilisent des entrées analogiques pour lire l'écran tactile résistif. Ce n'est donc pas surprenant si il y en a besoin.
En revanche ce que tu décris donne l'impression qu'elles sont juste utilisée comme des broches digitales, là...

Ou alors (si je comprends bien le sens du commentaire en anglais) elles sont utilisées à la fois pour le pilotage de l'écran ET du tactile, une fois en E/S digitale, une fois en entrée analogique. Mais ça me semble quand même un peu étrange...

Dans son cas les pins sont utilisées en E/S digitales

#define LCD_CS A3 // Chip Select goes to Analog 3
#define LCD_CD A2 // Command/Data goes to Analog 2
#define LCD_WR A1 // LCD Write goes to Analog 1
#define LCD_RD A0 // LCD Read goes to Analog

A3 = CS(Chip Select)
A2 = CD (Command / Data)
A1 = WR (Write)
A0 = RD (Read)

Mais revenons aux E/S Analogiques
Il y a 2 joysticks (X1/Y1) et (X2/Y2)
Ce qui donne 4 entrées analogiques

Si on rajoute 4 trims (TX1, TY1, TX2, TY2) ça donne 4 entrées analogiques supplémentaires
Soit un total de 8 entrées analogiques

Role du trim dans une télécommande :
Les trims sont de petites manettes situés généralement de part et d’autre des manche de commande permettant d’ajuster en vol (ou en roulant) le neutre d’une commande afin de parfaire la trajectoire du modèle.
Surt certaines télécommandes, ces trims sont effectivement reliés à une entrée analogique du module émetteur.

Sur d'autres modèles, pas forcément bas de gamme, le potentiomètre du trim est cablé en série avec le potentiomètre de l'axe correspondant de la manette. On retrouve souvent un rapport de 10 entre la valeur du potentiomètre de l'axe de la manette et la valeur du potentiomètre du trim.
Par exemple, si la résistance du potentiomètre du l'axe est de 10K, la résistance du potentiomètre du trim est de 1K

Dans cette configration il ne faut que 4 entrées analogiques

Alain46:
Dans son cas les pins sont utilisées en E/S digitales

pas forcément uniquement, vu ce commentaire :

Benobo:

/// The control pins for the LCD can be assigned to any digital or

// analog pins...but we'll use the analog pins as this allows us to
// double up the pins with the touch screen
(see the TFT paint example).
#define LCD_CS A3 // Chip Select goes to Analog 3
#define LCD_CD A2 // Command/Data goes to Analog 2
#define LCD_WR A1 // LCD Write goes to Analog 1
#define LCD_RD A0 // LCD Read goes to Analog

Est-ce qu'il y a un appel a analogRead() dans le code oui ou non ?
Il me semble que c'est la première question à laquelle il faut répondre avant de se lancer dans des suppositions.

Si c'est oui il faut des entrées analogiques
Si c'est non n'importe quelles entrées digitales conviennent

Sauf..........si l'auteur pour des questions de rapidité a besoin de lire/écrire dans un port complet en une seule opération avec les registres.
Dans ce cas peut être qu'il n'avait plus de port complet de disponible autre que le F et le K..
D'où ma deuxième interrogation : est-ce que le choix des I/O correspond à une exigence de l'écran ou à un confort de câblage ?

Merci à tous.
Pour les entrées analogiques de l'écran il semble dire qu'on utilise les pins analogiques pour les doubler avec l'écran tactile.
Déjà ça je comprends pas trop qu'en les choisissant on les double.
Je n'ai peut-être pas choisi le bon écran mais comme déjà je dois me familiariser avec des applications simples tels qu'avec des relais, servos, etc, je reviendrai sur cet écran plus tard, je vais commander un "normal".

À 68jts, j'espère ne pas être amené à m'occuper des registres :slight_smile: C'est parce qu'au départ je ne trouve pas grand chose comme documentation sur cet écran et que le seul post que j'ai trouvé parle d'entrées analogiques. Si je respecte le schéma de la RC DIY et avec cet écran je ne pourrais même plus insérer un potentiomètre, c'est pourquoi je vous pose ces questions.

Pour répondre à Alain46 à propos des trims je suis d'accord avec toi, je pensais qu'on trimait simplement le neutre mais pourquoi ont-ils prévus 8 entrées analogiques alors? (cf le schéma) Ce n'est quand même pas pour les valeurs max des potentiomètres?

Merci encore.

je viens de regarder la librairie utilisee en #8 et je confirme : pour utiliser le tactile il faut des pins analogiques, mais seulement 2 sont obligatoires

si le tactile n'est pas utilisé, pas besoin de pins analogiques

Merci bricofoy, maintenant c'est plus clair.

@Benobo
Ne t'inquiète pas pour les registres, d'abord ce n'est compliqué qu'en apparence, ensuite je pensais à un travail réalisé dans la bibliothèque donc totalement transparent pour toi.

Question : compte tu te servir du tactile avec cet écran ?

Ben s'il offre cette possibilité autant l'utiliser non?
Tu penses que ce n'est pas nécessaire?

ben heu, comment dire ?... cette question là, c'est à toi d'y répondre, non ? c'est de ton projet qu'il s'agit !

Je pourrais retourner la question pourquoi m'as-tu demandé si je vais utiliser le tactile si c'est un écran tactile? :slight_smile:
Alors oui je vais l'utiliser :slight_smile: