Audiyofan
Audiyofan




Poster un nouveau sujet Répondre au sujet  [ 6 messages ] 
Auteur Message
 Sujet du message: Mesurer des Hautes tensions avec son uController préféré
MessagePosté: Sam 14 Déc 2013, 12:26 
Hors ligne
Membre Assidu

Inscription: Lun 18 Juil 2011, 22:15
Messages: 266
Bonjour à tous,

Voici quelques schémas bien pratique pour mesurer des hautes tensions à partir de uC.

L'idée est de protéger au maximum le uC. les essais ont été fait avec un Arduino Léonarda. Je sais que vapkse à également beaucoup travailler sur le sujet.
Voici les schéma simple sur lesquels j'ai fait des tests.

Pont diviseur + buffer + Zener de protection
Fichier(s) joint(s):
Capture d’écran 2013-12-14 à 11.46.50.png
Capture d’écran 2013-12-14 à 11.46.50.png [ 10.5 Kio | Vu 5685 fois ]


Pont diviseur + isolation par opto-coupleur + Zener de protection de l'opto
Fichier(s) joint(s):
Capture d’écran 2013-12-14 à 11.47.57.png
Capture d’écran 2013-12-14 à 11.47.57.png [ 11.4 Kio | Vu 5685 fois ]


Je n'ai pas retenue le pont diviseur simple, avec zener de protection, car j'ai pu remarquer que l'impédance des PIN Analogique de l'Arduino n'est pas assez élevé. Du coup cela influe trop sur la mesure.

Le schéma le plus "sécur" pour uC reste bien évidemment est l'isolation par un opto-coupleur;

Le code pour la lecture Analogique est quand à lui très simple. Ensuite on applique le bon facteur pour obtenir le bon résultat.
l'ADC de l'Arduino permet une lecture sur 10 bit, soit 1024 valeurs. La référence de tension de celui-ci est de 5v par défaut, celle-ci pouvant être modifiée....
La précision ets donc de 0,0048*par le facteur de division.

Par exemple dans le cadre du buffer, le coefficient diviseur est de 103,95.

Code:
float g_mesure(){
  unsigned long int moyenne=0;
  int i=0;
  //on fait une moyenne de mesure sur 50 itération pour assurer une meilleur précision
  for(i=0;i<50;i++){
    moyenne+=analogRead(ANALOG_PIN);
  }
  moyenne=moyenne/50;
  return((moyenne * (5.00 / 1024))*103.95);
  // on peut également faire tension=moyene * 0,508
}


Dans le cas de l'opto-coupleur, le calcul est un peu plus complexe. De plus on a détourné l'utilisation classique de celui-ci, puisque l'on applique à la diode une HT et on mesure avec le photo-transistor!

0v donne une mesure de 5v sur le point de mesure
300v donne une mesure de 216,27mV sur le point de mesure (avec les composants donnés)
100v donne une mesure de 4,917v

il y a donc 2 paramètres variables :
- le taux de transfert de l'opto (définit dans la datasheet) exprimée en %
- les caractéristiques du photo-transistor

Voici quelques articles pour mieux comprendre le fonctionnement :
http://www.sonelec-musique.com/electron ... pleur.html
http://pelletier1.free.fr/electronique/ ... pleurs.pdf

Je fournirais le code Arduino dès que j'aurais finaliser.

Amicalement
Nicolas


Haut
 Profil  
 
 Sujet du message: Re: Mesurer des Hautes tensions avec son uController préféré
MessagePosté: Sam 14 Déc 2013, 15:50 
Hors ligne
Site Admin
Avatar de l’utilisateur

Inscription: Mer 01 Oct 2003, 22:47
Messages: 8920
Localisation: St Mathieu de Tréviers près de Montpellier
Hello bng

tub18 tub18 Bonne idée tub18 tub18

Ton travail me servira sûrement pour mon projet de lampemètre qui décante en ce moment

En passant ce que j'ai remarqué avec la Leonardo sur la mesure de HT ( dans mes essais préliminaires )
est une dérive ou rebond de certaines mesures :oops:

le Top AMHA serait d'intégrer à ta moyenne un "écrêtage" des valeurs hors "normes", soit sur une
50 aine de mesures les 5 plus basses et 5 plus hautes puis faire la moyenne sur les 40 restantes
histoire d'éliminer les écarts issu d'erreur de mesure, une sorte de "super moyenne pondérée"

A+

_________________
Ce qui est pris n'est plus a prendre


Haut
 Profil  
 
 Sujet du message: Re: Mesurer des Hautes tensions avec son uController préféré
MessagePosté: Dim 15 Déc 2013, 00:31 
Hors ligne
Membre Assidu

Inscription: Lun 18 Juil 2011, 22:15
Messages: 266
Bonsoir totof,

Je vais essayer, mais comme d'habitude, je manque de temps de coupler mes différents travaux autour du uC Arduino avec ceux de Vapkse qui également fait pas mal de chose, notamment son régulateur HT piloté par Arduino, son travail autour des vactrols.

Je vais essayer de faire une suite de mini tutoriel : électronique + code Arduino.
Je suis en train de finaliser le pilotage volume et switch relay avec une télécommande j'essaye de rendre générique le truc pour qu'il soit utilisable par tout le monde.

Amicalement


Haut
 Profil  
 
 Sujet du message: Re: Mesurer des Hautes tensions avec son uController préféré
MessagePosté: Dim 15 Déc 2013, 17:12 
Hors ligne
Membre Assidu
Avatar de l’utilisateur

Inscription: Mar 22 Aoû 2006, 16:47
Messages: 2665
Localisation: Suisse
Salut Nicolas

La solution avec l'optocoupleur est fausse. Une LED se commande en courant, or la tu la commande en tension. Ta 4.7K et ta zener ne servent à rien, de toute façon, si il y a 4.7V au bornes de ta LED, c'est qu'elle a cramé depuis longtemps. De plus le manque de linéarité des optocoupleurs, et le seuil de déclenchement de la LED, se prête bien à une mesure d'une limite ou une commutation digitale, ou une action dans une boucle de transfert régulée, mais n'est pas géniale en cas de mesure de précision.

Tant que tu mesures contre la masse, la solution de l'ampli op va très bien, le seul avantage de l'opto est de pouvoir mesurer ou actioner a un potentiel différentiel élevé, mais les cas sont rares.

Pour la mesure avec l'aop, tu peux enlever les 1K en entrés et sorties, et remplacer la Zener par deux diodes normales, une contre la masse, et une contre le plus d'alim de l'opto. Ça a l'avantage d'utiliser des diodes normales style 1N4148 plutôt qu'une Zener dont on n'a pas forcément la tension. Seul condition, être sur que la consommation de l'alim soit suffisante pour évacuer le courant éventuellement amené par la. De même si la HT après le pont diviseur ne peut aller au delà de la tension d'alim de l'aop, la protection devient inutile.

L’expression en bas de ton post, me rappelle quelqu'un :D

Serge

_________________
Tube Curve Tracer, Diagnostic,
Mon GIT


Haut
 Profil  
 
 Sujet du message: Re: Mesurer des Hautes tensions avec son uController préféré
MessagePosté: Dim 15 Déc 2013, 22:37 
Hors ligne
Membre Assidu

Inscription: Lun 18 Juil 2011, 22:15
Messages: 266
Bonsoir Serge,

Effectivement la linéarité de l'optocoupleur n'est pas idéal pour mesurer... pour controler un seuil cela est assez pratique. Mon objectif était d'isoler le uC des hautes tensions :)
Cela demande une fonction mathématique un peu complexe du style f(x)=1/x - z

la diode de l'opto se pilote en courant effectivement j'y ai donc introduit ce WE un 2N3904 pour piloter en courant et le tour est joué (je vais faire la simulation ce soir pour vérifier mes dires...)
D'après la datasheet des CNY74 ou PC817, la diode peut prendre une alimentation entre 1v et 6v.

Pour ce qui est du buffer, je met à jour le mini schéma avec les suggestions que tu apportes.

Si tu me le permets, je vais essayer de reprendre également ce que tu as fait, de rendre cela générique et de mettre sous forme de mini fonction pour Arduino et mini schéma les différentes fonctions dont on pourrait avoir besoin.

Amicalement
Nicolas

Pour finir le truc générique va être dur, mais je travaille dessus. je vais pouvoir avancer dessus entre 2 repas durant les fêtes

NB : j'ai regardé ton code Arduino, il me semble qu'il est préférable d'utiliser des const typé plutôt que des "Define". Le compilo arduino ne fait pas de C/C des valeurs comme avec le gcc classique, il attribue un espace mémoire non typé (j'ai pu lire cela dans 2 book sur Arduino...) du coup on perd en place en perf. Je me suis fait avoir aussi et j'ai réellement constaté une amélioration sur différents projets :)



Haut
 Profil  
 
 Sujet du message: Re: Mesurer des Hautes tensions avec son uController préféré
MessagePosté: Lun 16 Déc 2013, 00:01 
Hors ligne
Membre Assidu
Avatar de l’utilisateur

Inscription: Mar 22 Aoû 2006, 16:47
Messages: 2665
Localisation: Suisse
bng a écrit:
Effectivement la linéarité de l'optocoupleur n'est pas idéal pour mesurer... pour controler un seuil cela est assez pratique. Mon objectif était d'isoler le uC des hautes tensions :)

Avec la zener et l'aop, tu veux qu'il lui arrive quoi au uC? Et même, avec le pont diviseur sur la HT, il ne peut pas y avoir de HT sauf si la résistance contre la HT claque, ou celle de la masse se dé-soude :mrgreen:. Mais dans ce cas, l'opto claquerait, tout comme la zener et/ou l'aop. Mais le up ne prendra rien, ça m’étonnerait que ta HT passe l'aop. De mon côté, un tel claquage n'est jamais arrivé, et même dans le SRPP, je rentre directe dans l'Arduino. Et si un claquage dans les résistance se produisait, on aurait pleins de soucis dans les amplis à tube.

bng a écrit:
D'après la datasheet des CNY74 ou PC817, la diode peut prendre une alimentation entre 1v et 6v.

Je ne sais pas ou tu as vu ça, il faut regarder le forward voltage CNY74 = 1.3V typ qui est d'ailleurs en contradiction avec le graph.
http://www.vishay.com/docs/83526/83526.pdf

Regarde la figure 4, tu a la fonction de transfert en tension de la diode. A 25 degrés, entre 0.9 et 1.2V, le courant dans la diode varie entre 0.1 et 50mA. Après elle claque.
La figure 9 représente la fonction de transfert en courant. Entre 0 et 10mA, ça va, après ca part en vrille et varie en fonction de la température.

J'utilise des Vactrols pour commander mon régulateur du SRPP, qui est entre environ entre -500V et -560V depuis l'Arduino. Mais pour une mesure qui est déjà référencée au 0V, ça n'a pas beaucoup d’intérêt

La non-linéarité, je m'en fout dans ce cas, car il est dans la boucle de régulation, donc l'Arduino ajuste jusqu'à que la tension en entrée soit à la référence.

bng a écrit:
Si tu me le permets, je vais essayer de reprendre également ce que tu as fait, de rendre cela générique et de mettre sous forme de mini fonction pour Arduino et mini schéma les différentes fonctions dont on pourrait avoir besoin.

Ne te gêne pas, ca fait plaisir.

bng a écrit:
j'ai regardé ton code Arduino, il me semble qu'il est préférable d'utiliser des const typé plutôt que des "Define". Le compilo arduino ne fait pas de C/C des valeurs comme avec le gcc classique, il attribue un espace mémoire non typé (j'ai pu lire cela dans 2 book sur Arduino...) du coup on perd en place en perf. Je me suis fait avoir aussi et j'ai réellement constaté une amélioration sur différents projets :)

Merci de l'info, je prend note. Pour l'instant pas de soucis de perf, une régulation en 10s ne pose pas trop de soucis à un truc qui tourne en quelque ms, par contre dans le cas d'un testeur de tube, ça peut avoir son importance. Ce serait bien aussi que je 'unsigned' mes variables de somme, même si je n'ai pas de risques de passer en négatif.

Cool ton initiative. tub18 , l'étape suivante, c'est le régulateur HT entre 0 et 2KV commandé apr Arduino :mrgreen:

Serge

_________________
Tube Curve Tracer, Diagnostic,
Mon GIT


Haut
 Profil  
 
Afficher les messages postés depuis:  Trier par  
Poster un nouveau sujet Répondre au sujet  [ 6 messages ] 

Heures au format UTC + 1 heure


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité


Vous ne pouvez pas poster de nouveaux sujets
Vous ne pouvez pas répondre aux sujets
Vous ne pouvez pas éditer vos messages
Vous ne pouvez pas supprimer vos messages
Vous ne pouvez pas joindre des fichiers

Aller à:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Traduction par: phpBB-fr.com