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 :

Carte Arduino nano impossible de programmer une sortie analogique


Sujet :

Arduino

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Retraité
    Inscrit en
    Février 2025
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Février 2025
    Messages : 35
    Par défaut Carte Arduino nano impossible de programmer une sortie analogique
    Bonjour à tous,
    J'utilise une carte Ardino nano (chinoise) sur laquelle j'ai programmé les 3 bornes A0,A1,A2 en entrées analogiques et qui fonctionnent parfaitement. J'ai voulu programmer également la quatrième borne A3 en sortie analogique commandée par 2 boutons poussoirs up et down et qui incrément sur un afficheur des carrés. Pas de carrés = 5V et à chaque carré affiché, une diminution de 0.5V (10 carrés) pour arriver au bout des 10 carrés à 0V. sur ma sortie (A3), lors de la progression jusqu'au 5ème carré, ma tension reste à 5V et bascule à 0V au sixième carré jusqu'au dixième carré. Ce n'est donc pas un fonctionnement progressif mais par tout ou rien! J'ai essayé avec les bornes qui me restaient A6 et A7, mais le fonctionnement est identique à celui de A3.
    J'ai programmer ma sortie A3 de la sorte: pinMode(pinAnalogPowerLevel, OUTPUT); // Configurer A3 comme sortie
    Pouvez-vous m'aider svp.

  2. #2
    Membre Expert

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2013
    Messages
    1 582
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2013
    Messages : 1 582
    Par défaut
    Bonjour,

    Le code en défaut serait intéressant : sans cadavre pas de crime !

    A défaut prendre en compte :
    • PWM n'est pas vraiment de l'analogique mais une séquence d'états haut/bas selon une fréquence fixe mais un rapport cyclique variable. La moyenne (filtre passe-bas) est la valeur analogique recherchée.
    • ADC sur 10 bits donc 0 à 1023.
    • PWM sur 8 bit donc 0 à 255
    • La fonction iPWM = map(i10, 0, 10, 0, 255) donne facilement la correspondance : 0..10 -> 0..255. Mais ce n'est pas très efficace car elle passe par des calculs en flottant alors que le MPU n'a pas de FPU. Ecrire iPWM = (i10* 51 +1) >> 1 donnera le même résulta beaucoup plus rapidement. Remarque : de 0 à 10 il y a 11 valeurs.

    Salutations
    Ever tried. Ever failed. No matter. Try Again. Fail again. Fail better. (Samuel Beckett)

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


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    13 122
    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 122
    Billets dans le blog
    47
    Par défaut
    Bonjour,

    Citation Envoyé par steed66380 Voir le message
    [...] J'ai voulu programmer également la quatrième borne A3 en sortie analogique ...
    S'il y a bien un ADC (Analog-Digital Converter) intégré sur Aduino Nano, il n'y a pas de DAC (Digital-Analog Converter). Il faut donc un composant/module DAC dédié. Un DAC fabriqué avec un réseau de résistances R-2R peut suffire pour de faibles résolutions.

  4. #4
    Membre averti
    Homme Profil pro
    Retraité
    Inscrit en
    Février 2025
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Février 2025
    Messages : 35
    Par défaut
    Bonjour à tous,
    Je peux fournir le code, mais avez plus de 500 lignes de code, cela risque de faire beaucoup, à moins de n'en mettre qu'une partie celle concernée par le problème. Je pensais que, comme il n'y avait pas de difficulté pour programmer une entrée analogique, qu'il en allait de même pour une sortie. Cependant si Ardino nano ne supporte pas cette fonction, cela ne sert pas à grand chose. Pour faire simple, que me conseillez-vous de faire, sachant qu'il me reste encore un peut de place pour implanter un circuit sur mon circuit imprimé? Sur mon Ardino nano, je ne dispose plus que de 3 bornes A3,A6,A7 et il va être difficile de faire un réseau de résistances. Même avec un DAC, cela va être compliqué à raccorder!Je viens de lire que les véritables cartes Ardino nano avaient de vrais
    s sorties analogiques. Si c'est exact, c'est peut être ma solution?


    Cordialement.

  5. #5
    Membre Expert

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2013
    Messages
    1 582
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2013
    Messages : 1 582
    Par défaut
    Bonjour,

    Comme le dit f-leb, il n'y a pas de vrai sortie analogique sur le Nano (qu'il soit clone ou pas).

    Ce qui en tient lieu sont les sortie PWM qui n'ont que deux états mais les changent rapidement pour en faire un signal dont la valeur moyenne peut être variable sur 256 niveaux. Soit on met un filtre pour récupérer cette moyenne, soit on utilise les propriétés physiologiques (par exemple, la persistance rétinienne pour des LEDs modulées directement en PWM), ou l'inertie mécanique (par exemple, la commande de vitesse moteur) pour obtenir un effet limité à cette valeur moyenne.

    Pour les sources : 500 lignes restent rapidement lisibles.

    Salutations
    Ever tried. Ever failed. No matter. Try Again. Fail again. Fail better. (Samuel Beckett)

  6. #6
    Membre averti
    Homme Profil pro
    Retraité
    Inscrit en
    Février 2025
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Février 2025
    Messages : 35
    Par défaut
    Peut -on observer le signal concrètement avec un oscilloscope car si c'est sur la longueur de l'impulsion qu'on joue, on peut grâce à quelques composant exploiter cette variation de la largeur d'impulsion?

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


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    13 122
    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 122
    Billets dans le blog
    47
    Par défaut
    Oui, on peut les visualiser :
    Nom : pwm_20250409.jpg
Affichages : 69
Taille : 24,8 Ko

    On peut mettre un filtre passe-bas (filtre RC) en sortie du PWM pour avoir une tension stable (à peu près).

    Mais quel est ce composant en sortie que tu veux alimenter avec une tension variable ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 02/05/2024, 19h56
  2. Erreur de compilation pour la carte Arduino Nano
    Par TATSS dans le forum Arduino
    Réponses: 4
    Dernier message: 01/07/2022, 18h22
  3. Réponses: 2
    Dernier message: 02/02/2018, 17h06
  4. [X3-V5] Impossible de réaliser une sortie diverse
    Par vinh0u dans le forum SAGE
    Réponses: 5
    Dernier message: 21/11/2017, 17h17
  5. Carte Arduino nano et compteur
    Par Pierrelec dans le forum Arduino
    Réponses: 4
    Dernier message: 24/08/2017, 19h33

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