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 :

Mesure de puissance


Sujet :

Arduino

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2025
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2025
    Messages : 3
    Par défaut Mesure de puissance
    Bonjour,

    je ne parviens pas à faire marcher mon code pour effectuer la mesure de puissances en temps réel car je dois juste avec la tension sans avoir le courant voici le code ci-dessous. Pouvez vous m'aider?

    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
    int pinPuissanceDirecte = A5; // Entrée analogique pour la puissance directe
    int pinPuissanceReflechie = A4; // Entrée analogique pour la puissance réfléchie
    float maxPuissance = 0.0; // Puissance maximale en watts
    float maxTension = 5.0; // Tension maximale du signal analogique
    int resolution = 1023; // Résolution de l'ADC
    float somme_Puissance = 0.0;
    float Max = 0.9;
    float min = 0.1;
     
    // Variables
    float puissanceDirecte = 0.0; // Puissance directe mesurée
    float puissanceReflechie = 0.0; // Puissance réfléchie mesurée
     
    void setup()
    {
    lcd.init();
    lcd.backlight();
    lcd.clear ();
    }
     
    void loop()
    {
    if(entre_en_lecture == false|| entre_en_lecture == true) { // si Mode manuel ou Atuo
    // Lecture des valeurs analogiques
    int lectureDirecte = analogRead(pinPuissanceDirecte);
    int lectureReflechie = analogRead(pinPuissanceReflechie);
    puissanceDirecte = (lectureDirecte * maxTension / resolution) * (maxPuissance / maxTension)* Max;
    puissanceReflechie = (lectureReflechie * maxTension / resolution) * (maxPuissance / maxTension)*min;
    }}

  2. #2
    Membre chevronné
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2022
    Messages
    332
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 21
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2022
    Messages : 332
    Par défaut
    Bonjour,
    marcher mon code
    Moi le mien il cours super vite
    Un code d'erreur ? Une sortie bizarre ? Une erreur de calcul ?

    Pour transmettre du code :
    https://club.developpez.com/regles/#LIII-E



    Mistral me génère ca par exemple :
    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
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    #include <LiquidCrystal_I2C.h>
     
    // Initialisation de l'affichage LCD
    LiquidCrystal_I2C lcd(0x27, 16, 2);
     
    int pinPuissanceDirecte = A5; // Entrée analogique pour la puissance directe
    int pinPuissanceReflechie = A4; // Entrée analogique pour la puissance réfléchie
    float maxPuissance = 0.0; // Puissance maximale en watts
    float maxTension = 5.0; // Tension maximale du signal analogique
    int resolution = 1023; // Résolution de l'ADC
    float somme_Puissance = 0.0;
    float Max = 0.9;
    float min = 0.1;
     
    // Variables
    float puissanceDirecte = 0.0; // Puissance directe mesurée
    float puissanceReflechie = 0.0; // Puissance réfléchie mesurée
    bool entre_en_lecture = true; // Variable pour contrôler la lecture
     
    void setup()
    {
      lcd.init();
      lcd.backlight();
      lcd.clear();
      Serial.begin(9600); // Initialisation de la communication série pour le débogage
    }
     
    void loop()
    {
      if (entre_en_lecture) { // Si Mode manuel ou Auto
        // Lecture des valeurs analogiques
        int lectureDirecte = analogRead(pinPuissanceDirecte);
        int lectureReflechie = analogRead(pinPuissanceReflechie);
     
        // Calcul de la puissance directe et réfléchie
        puissanceDirecte = (lectureDirecte * maxTension / resolution) * (maxPuissance / maxTension) * Max;
        puissanceReflechie = (lectureReflechie * maxTension / resolution) * (maxPuissance / maxTension) * min;
     
        // Affichage des valeurs sur l'écran LCD
        lcd.clear();
        lcd.setCursor(0, 0);
        lcd.print("P Dir: ");
        lcd.print(puissanceDirecte);
        lcd.setCursor(0, 1);
        lcd.print("P Ref: ");
        lcd.print(puissanceReflechie);
     
        // Affichage des valeurs sur le moniteur série pour le débogage
        Serial.print("Puissance Directe: ");
        Serial.println(puissanceDirecte);
        Serial.print("Puissance Reflechie: ");
        Serial.println(puissanceReflechie);
      }
     
      delay(1000); // Attente d'une seconde avant la prochaine lecture
    }

  3. #3
    Membre chevronné
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2004
    Messages
    539
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2004
    Messages : 539
    Par défaut
    Plein de remarques:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int resolution = 1023; // Résolution de l'ADC
    Pas exactement, pour un ADC 10 bits, c'est 1024

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(entre_en_lecture == false|| entre_en_lecture == true){// si Mode manuel ou Atuo
    Je ne vois pas où est déclarée cette variable. Sinon, vu qu'il s'agit d'une variable ne pouvant prendre 2 valeurs, true et false, la condition "entre_en_lecture == false|| entre_en_lecture == true" sera toujours vraie, donc le if ne sert à rien puisque le code qui suit sera systématiquement exécuté.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    puissanceDirecte = (lectureDirecte * maxTension / resolution) * (maxPuissance / maxTension)* Max;
    Ca sert à quoi de multiplier et de diviser par maxTension?

  4. #4
    Membre Expert

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2013
    Messages
    1 632
    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 632
    Par défaut
    Bonjour jackk,

    Citation Envoyé par jackk Voir le message
    ...int resolution = 1023; // Résolution de l'ADC.
    Pas exactement, pour un ADC 10 bits, c'est 1024
    C'est exact si on n'écrit pas que la valeur Vmax (souvent Vcc) correspond à 1023, auquel cas il n'y aurait que 1023 niveaux 0..1022 pour couvrir [0..Vcc[ le niveau 1023 signifiant que Vcc est atteint et même vraisemblablement dépassé. Dans le cas de l'utilisation de 1024, 1023 correspond 1023/1024 Vref (plus précisément [1023/1024 Vref, Vref[ .

    Ceci étant, vu la précision des CAN des MPU et le fait que diviser par 1024 n'est qu'un décalage, le choix est vite fait

    Salut

  5. #5
    Membre chevronné
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2004
    Messages
    539
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2004
    Messages : 539
    Par défaut
    je ne comprends pas trop ce que tu veux dire. Tu penses qu'il faut laisser 1023?
    Même si au final, ça ne changera pas grand chose, autant utiliser des valeurs correctes et c'est à priori plutôt 1024.

    Dans le cas de l'utilisation de 1024, 1023 correspond 1023/1024 Vref (plus précisément [1023/1024 Vref, Vref[
    Tout à fait.
    et la valeur 0 correspond à l'intervalle [0, 1/1024 Vref[.
    Il y a donc bien 1024 valeurs différentes et le quantum égal à Vref / 1024.

    C'est d'ailleurs parfaitement confirmé par la doc de l'ATmega328 qui donne la valeur calculée par l'ADC comme étant égale à Vin x 1024 / Vref

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


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

    Le quantum (la résolution en Volt) est bien q = Vref / 1024.

    La formule qui donne N=f(Vin) ou Vin=g(N) est de toute façon une formule approchée de la fonction de transfert (avec la forme "en escalier").

  7. #7
    Modérateur

    Avatar de Vincent PETIT
    Homme Profil pro
    Consultant en Systèmes Embarqués
    Inscrit en
    Avril 2002
    Messages
    3 252
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant en Systèmes Embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 252
    Par défaut
    Bonjour,
    Il me semble qu'on avait déjà eu cette discussion 1024 vs 1023 ?

    Considérons : q = VREF/1024 (pour un ADC 10bits)

    Hors dans un registre de taille 10bits les données commencent à 0 et se terminent à 1023.

    0000000000b => 1111111111b

    La 1024eme fait repasser le registre à 0, ce qui veut dire qu'on ne peut atteindre que VREF-1LSB.

    Exemple : Si VREF = 5V et la tension d'entrée = 5V, la valeur du registre est 5V/(5V/1024) soit 1024, soit un 0 dans le registre.

  8. #8
    Membre chevronné
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2004
    Messages
    539
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2004
    Messages : 539
    Par défaut
    Citation Envoyé par Vincent PETIT Voir le message
    Bonjour,
    Il me semble qu'on avait déjà eu cette discussion 1024 vs 1023 ?
    C'est un sujet de discussion récurrent.
    Exemple : Si VREF = 5V et la tension d'entrée = 5V, la valeur du registre est 5V/(5V/1024) soit 1024, soit un 0 dans le registre.
    Tu veux dire que si on interroge un ADC sur lequel applique Vin = Vref, on va récupérer la valeur 0 ?

  9. #9
    Modérateur

    Avatar de Vincent PETIT
    Homme Profil pro
    Consultant en Systèmes Embarqués
    Inscrit en
    Avril 2002
    Messages
    3 252
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant en Systèmes Embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 252
    Par défaut
    Citation Envoyé par jackk Voir le message
    Tu veux dire que si on interroge un ADC sur lequel applique Vin = Vref, on va récupérer la valeur 0 ?
    Non, non, c'était juste pour l'explication de la formule VREF/2^N-1, elle resoud mathématiquement le problème de VREF/2^N qui divise l'intervalle de mesure entre 1 et 1024 alors que le registre dans le micro va de 0 à 1023.


    Pour cette histoire de débordement de registre, si le registre d'accueil était une variable de 16bits, dont seuls les 10 derniers étaient accessibles. Et qui s'incrementerait de +1 a chaque fois qu'on aurait +1 LSB sur la mesure alors on lirait 0 au moment où le 11eme bit (1024) passerait à 1 = 0b0000010000000000 dans la réalité on est en saturation dans l'électronique ce qui bloque tout à 1023.

    Après je sais qu'aux vus des imperfections de l'ADC ça n'a aucune importance.

  10. #10
    Membre chevronné
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2004
    Messages
    539
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2004
    Messages : 539
    Par défaut D
    Citation Envoyé par Vincent PETIT Voir le message
    Pour cette histoire de débordement de registre, si le registre d'accueil était une variable de 16bits, dont seuls les 10 derniers étaient accessibles. Et qui s'incrementerait de +1 a chaque fois qu'on aurait +1 LSB sur la mesure alors on lirait 0 au moment où le 11eme bit (1024) passerait à 1 = 0b0000010000000000 dans la réalité on est en saturation dans l'électronique ce qui bloque tout à 1023.
    Tu sais bien que le problème ne se pose pas ainsi car le registre n'est pas un compteur dans le cas de l'ADC de ce µContrôleur, mais le résultat obtenu à partir d'un SAR. Le nombre de cycles d'horloge étant parfaitement déterminé, il n'y aura jamais de débordement.

    Non, non, c'était juste pour l'explication de la formule VREF/2^N-1, elle resoud mathématiquement le problème de VREF/2^N qui divise l'intervalle de mesure entre 1 et 1024
    Mais où est le problème avec VREF/2^N ? C'est juste normal.

    Pour convaincre les indécis, je prends comme preuve le convertisseur élémentaire: l'ADC 1 bit qui n'est ni plus ni moins qu'un vulgaire comparateur en électronique. Si Vref est égal à 2V, on comprends aisément que la sortie du comparateur sera à '0' si son entrée est comprise entre 0 et 1V, et à '1' entre 1 et 2V. Le nombre de bits de cet ADC étant égal à 1, 2^1 = 2 et le quantum est bien égal à Vref / 2 = 1V.

    Concrètement, si Vin = 0,7V, l'ADC sortira '0' et si Vin = 1,1V, l'ADC sortira '1'. Je pense que personne ne s'étonnera ce ce résultat.
    Avec la formule VREF/2^N-1 = VREF/2^0 = VREF, on ne pourra obtenir qu'une seule valeur quelle que soit Vin.

    Pour ceux qui ne sont pas convaincus, faites la même chose avec un convertisseur 2 bits: quantum = VREF/2^N = VREF/2^2 = VREF/4 = 0,5V
    0 ->0,5V : 01
    0,5->1 V : 01
    1 ->1,5V : 10
    1,5->2 V : 11

  11. #11
    Modérateur

    Avatar de Vincent PETIT
    Homme Profil pro
    Consultant en Systèmes Embarqués
    Inscrit en
    Avril 2002
    Messages
    3 252
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant en Systèmes Embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 252
    Par défaut
    Citation Envoyé par jackk Voir le message
    Tu sais bien que le problème ne se pose pas ainsi car le registre n'est pas un compteur dans le cas de l'ADC de ce µContrôleur, mais le résultat obtenu à partir d'un SAR. Le nombre de cycles d'horloge étant parfaitement déterminé, il n'y aura jamais de débordement.
    Oui c'est vrai, j'ai essayé maladroitement de faire une analogie.

    Citation Envoyé par jackk Voir le message
    Mais où est le problème avec VREF/2^N ? C'est juste normal.
    Oui c'est normal mais à la fin dans le registre de donnée de convertion on ne peut pas atteindre une tension = VREF

    Citation Envoyé par jackk Voir le message
    Pour ceux qui ne sont pas convaincus, faites la même chose avec un convertisseur 2 bits: quantum = VREF/2^N = VREF/2^2 = VREF/4 = 0,5V
    0 ->0,5V : 00
    0,5->1 V : 01
    1 ->1,5V : 10
    1,5->2 V : 11
    Si j'ajoute les bornes ça donne ceci.

    Vin<0.5V : 00
    0.5V<=Vin<1V : 01
    1V<=Vin<1.5V : 10
    1.5V<=Vin : 11

    La valeur max du registre c'est 3, que si je réinjecte dans la formule VREF/2^N (avec N =2) ça donne 1.5V. 1.5V donnerait 11 tout comme 1.8V ou 2V. Même si on augmentait la résolution de l'ADC il y aurait toujours 1 LSB manquant à la fin.

    Je pense que c'est simplement ça qui explique l'apparition du VREF/2^N-1 car ça enève un LSB

  12. #12
    Membre chevronné
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2004
    Messages
    539
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2004
    Messages : 539
    Par défaut
    Je comprends que la valeur 0 en info n'ait pas la même signification qu'en mathématique mais bon, il faut bien la compter parmi les valeurs possible de l'ADC.
    Donc si la valeur max, c'est 3 , la valeur min c'est 0 et il y a bien 4 valeurs.
    Et 3 dans l'ADC correspond à l'intervalle [3.Vref/4, Vref/4[. Il manque un epsilon pour aller jusqu'à Vref? Cet epsilon n'est rien car comme tu dis, le résultat de la conversion correspond toujours à une valeur de la mesure à un quantum près.

    Pardon Vincent pour ces remarques qui visaient à éclairer le déroulement de ce fil, car je sais pertinemment que tu maitrises parfaitement le sujet.
    C'est juste que je ne comprends pas pourquoi on se complique la vie avec le 2^N - 1.

    Et au bout du compte, il suffit de lire la doc de l'ADC en question. Celui-ci est conventionnel, mais il doit bien y avoir moyen d'en trouver de plus exotiques

  13. #13
    Modérateur

    Avatar de Vincent PETIT
    Homme Profil pro
    Consultant en Systèmes Embarqués
    Inscrit en
    Avril 2002
    Messages
    3 252
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant en Systèmes Embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 252
    Par défaut
    Citation Envoyé par jackk Voir le message
    Pardon Vincent pour ces remarques qui visaient à éclairer le déroulement de ce fil
    Aucun problème c'est très intéressant comme discussion, aussi pour ceux qui nous lise, même si nous savons que comme l'ADC a des défauts INL, DSL, de gain, d'offset, au final le dernier quantum ou le premier on s'en moque un peu J'espère juste que dans mes écrits je n'ai pas laisser entendre une sorte d'insistance car ce n'était absolument pas mon intention.



    J'en finirai ici en donnant une image de ce qu'a dit Guesset
    Citation Envoyé par Guesset
    Ceci étant, vu la précision des CAN des MPU et le fait que diviser par 1024 n'est qu'un décalage, le choix est vite fait
    q = VREF/1024 dans un registre dont la valeur max est de 1023. La valeur 0 dans le registre correspond a 0 LSB mais le dernier quantum qui correspond à une tension Vin = Vref n'est pas accessible. Il manquera un 1 LSB.

    Nom : Capture026.PNG
Affichages : 149
Taille : 12,3 Ko

    q = VREF/1024 décalé de 1 vers la droite dans un registre dont la valeur max est de 1023. La valeur 0 du registre vaut 1 quantum, on ne peut pas lire 0V, il est inaccessible, on lira à minima 1 LSB. Par contre 1023 dans le registre correspondra à 1024 quantum donc à la pleine échelle.

    Nom : Capture027.PNG
Affichages : 151
Taille : 12,5 Ko

    q = VREF/2N-1, qui revient à dire qu'on va découper l'intervalle en 1023 valeur pour être grosso modo aligné sur le registre dont la valeur max est 1023. Ce n'est pas forcément déconnant, c'est arrangeant dans la pratique car on a une correspondance mais je ne peux qu'avouer, en te lisant jackk, que c'est physiquement faut.

    Nom : Capture028.PNG
Affichages : 155
Taille : 15,3 Ko


    Donc, divisez VREF par 2N

  14. #14
    Membre Expert

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2013
    Messages
    1 632
    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 632
    Par défaut
    Bonjour jackk,

    Citation Envoyé par jackk Voir le message
    ...C'est d'ailleurs parfaitement confirmé par la doc de l'ATmega328 qui donne la valeur calculée par l'ADC comme étant égale à Vin x 1024 / Vref
    Ce qui donne n = Vin x 1024 / Vref soit Vin = n x Vref / 1024. Or cette doc mentionne ailleurs que 1023 correspond à Vref, ce qui n'est pas très cohérent d'autant que l'habitude est de prendre la valeur de début de palier : 0V pour n=0 et non Vref /2048 (milieu de palier).

    J'utilise bien sûr 1024, plus par efficacité qu'autre chose (ces MPU n'ont pas de division et on peut travailler en entiers sans division pour peu que l'on soit en mV : Vm = Vin = n x (Vref x 125) / 128).

    Par exemple, en 5 V cela pourrait donner uint16_t Vm = 5*n - ((15*n) >> 7); Il y a des petits sauts de 1mV toutes les 9 valeurs environ mais la précision étant près de 5 mV il est possible de considérer être sous la portée du radar .

    Salut.

  15. #15
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2025
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2025
    Messages : 3
    Par défaut mesure de puissance
    Bonjour,

    Merci de vos réponses et suggestions, j'ai une autre question toujours concernant la mesure de puissance , j'aimerais savoir si relier une entrée analogique d'arduino Uno en faisant la liaison entre un petit simple fils et un connecteur BNC est possible et compatible pour mesurer par exemple une puissance? cela ne causera pas des dommages sur la carte Arduino?

  16. #16
    Membre Expert

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2013
    Messages
    1 632
    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 632
    Par défaut
    Bonjour,

    Le connecteur BNC m'inquiète un peu. Il suppose en général une bande de fréquences largement supérieures à ce que peut traiter un Arduino. Mais ce n'est pas létal.

    En revanche, les niveaux de tension et leur polarité (éventuellement variable, un câble coaxial est (très) rarement utilisé pour du continu) peuvent s'avérer problématique (0 <= Vin <= 5 V).

    Salutations

  17. #17
    Membre éprouvé
    Homme Profil pro
    Retraité de l'électronique analogique
    Inscrit en
    Avril 2021
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité de l'électronique analogique

    Informations forums :
    Inscription : Avril 2021
    Messages : 50
    Par défaut
    Un câble coaxial utilisé en continu ne pose aucune difficulté.
    Pour commencer, dire câble coaxial pour parler du câble à impédance constante est un raccourci usuel, mais impropre, mais bon tout le monde se comprend .

    L'impédance d'un "coax" 50 ohms ou 75 ohms est une impédance fréquentielle, elle est symbolisée par des inductances séries et des capacités paralléles.
    Ces inductances et capacités sont invisibles en continu.

    Un câble "coaxial" utilisé en continu est comme un câble blindé dont les deux extrémités seraient reliées à la masse.
    Ce qui normalement ne se fait pas car cela provoque la circulation de courants de masse, qui diminuent l'effet protectif du blindage.

    C'est ce qui se passe quand on utilise un "cordon BNC" avec des prises BNC à chaque extrémité.
    Si on est maître du câblage rien n'interdit de ne pas relier à la masse une des extrémités du blindage.

  18. #18
    Modérateur

    Avatar de Vincent PETIT
    Homme Profil pro
    Consultant en Systèmes Embarqués
    Inscrit en
    Avril 2002
    Messages
    3 252
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant en Systèmes Embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 252
    Par défaut
    Bonjour,
    Citation Envoyé par Bernard_68 Voir le message
    Ce qui normalement ne se fait pas car cela provoque la circulation de courants de masse, qui diminuent l'effet protectif du blindage.
    C'est vrai qu'en BF et en audio particulièrement cela permet de ne plus faire circuler de courant dans la masse et d'éviter une ronflette par courant induit mais le problème c'est qu'en contre partie on perd toute la protection HF.

    Je l'ai tellement vu de fois pendant des tests CEM (Chambre anéchoïque EN 61000-4-3 ou EFT EN 61000-4-4), par exemple dans la chambre anéchoïque en envoyant un champ électromagnétique sur l'appareil avec son câble, on créait un couplage champ à fil qui créait un courant HF de mode commun de surface sur la gaine, une fois que ce courant HF arrive au bout de la BNC non reliée à la masse de l'appareil il se passe 2 choses dont une très embêtante pour l'électronique :

    - le courant HF passe par les capa parasites en vert entre les blindages (ça c'est pas très grave)
    - le courant HF rejoint le conducteur centrale à l'endroit où il y a discontinuité de la masse par les capa parasites en rouge (ça c'est très embêtant car le courant de gaine entre dans l'électronique)

    Le modèle équivalent d'un blindage discontinue en HF c'est celui là (je n'ai pas représenté les BNC)

    Nom : Capture041.PNG
Affichages : 87
Taille : 20,4 Ko

    Avec un blindage des 2 côtés, le courant de surface de la gaine ne peut jamais entrer dans l'électronique.

  19. #19
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2025
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2025
    Messages : 3
    Par défaut
    Bonjour,

    Je vous remercie pour votre apport dans ma compréhension, le souci que j'ai c'est que depuis j'ai relié les fils simples connectés au entrées analogique de la carte Arduino aux connecteurs BNC qui reliés au wattmètre pour faire la mesure de puissance, en branchant les appareils pour le réaliser , il y a un court-circuit qui endommage la carte arduino et qui a fumé le microcontrôleur et depuis lors, je cherche les causes de ce court-circuit en vain et je me demande si ce n'est pas dû au fait que j'ai interconnecté des câbles qui n'on pas les caractéristiques ?
    Je ne voudrais pas remplacé une nouvelle carte pour qu'elle s'endommage de nouveau. Pouvez vous avoir des piste à me proposer pour exploiter en profondeur ce défaut?

  20. #20
    Membre Expert

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2013
    Messages
    1 632
    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 632
    Par défaut
    Bonjour Bernard_68,

    Citation Envoyé par Bernard_68 Voir le message
    Pour commencer, dire câble coaxial pour parler du câble à impédance constante est un raccourci usuel, mais impropre, mais bon tout le monde se comprend ...
    J'ai parlé de câble coaxial car la prise BNC est coaxiale et suppose un câble de même type. Je n'ai pas vu trace de référence à une impédance constante dans les différents échanges et pour cause, les fréquences en jeu ici sont basses voire nulles.

    Il n'y a manifestement pas d'adaptation d'impédance à prévoir ici. L'impédance caractéristique est l'impédance d'un câble infini donc sans réflexion, ce qui justifie que l'adaptation utilise cette même valeur de bouclage. Mais un morceau de câble non bouclé (par exemple terminé sur une haute impédance ou un court circuit) présente une impédance dépendant de la longueur donc non constante. Heureusement, ici les réflexions ne sont pas à craindre .

    Salut

Discussions similaires

  1. Réponses: 5
    Dernier message: 26/12/2023, 12h43
  2. Réponses: 0
    Dernier message: 22/03/2023, 01h34
  3. Réponses: 6
    Dernier message: 21/10/2020, 07h09
  4. Réponses: 4
    Dernier message: 18/07/2008, 14h19
  5. Besoin d'aide pour l'I.A. d'un puissance 4
    Par Anonymous dans le forum C
    Réponses: 2
    Dernier message: 25/04/2002, 17h05

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