Page 1 sur 1

Multimetre numerique

Publié : 03 déc. 2006 3:45
par lguenhael
Bonjour,

j'aimerai réaliser un multimetre numerique (utilisant le(s) CAN d'un microcontroleur) me permetant de connaitre la puissance consommée par un apareil électrique (230Vac ; 1kW) avec une précision entre 0.1W et 0.5W

quel montage me conseillez vous pour ce projet?

Merci.

Publié : 03 déc. 2006 12:26
par Zera
Salut

Tout d'abord, parlons de la précision désirée. Je prend en exemple le CAN d'un Atmel atmega 128 : résolution 10 bits, précision 2xLSB.

Imaginons un câblage simple, avec diviseur d'impédance RC (type ceux qu'on mets sur les oscillos) pour la mesure de tension : 230 V alternatifs donnent un crête à environ 320 V. Ta mesure de tension peut avoir une précision de l'ordre du volt. Pour le courant, tout dépend du type de mesure. Pince ampèremétrique (active ou passive) ? Résistance en série avec le circuit ? Dans le second cas, le plus simple, on pourrait espérer une précision de l'ordre de quelques dizaines de mA.

La question de la sécurité entre aussi en compte à mon avis. Si une pince ampèremétrique isole la mesure du courant, pour la tension, ce n'est pas le cas. Personnellement j'opterai pour une partie de circuit dédiée à la mesure, avec un CAN type de ceux que commercialise Maxim-IC, connectée à un microcontrôleur via isolation galvanique réalisée par les opto-coupleurs, mais utiliser directement le micro n'est pas forcément beaucoup plus dangereux. Il faut faire attention aux masses, selon le mode d'alimentation.

Ce circuit de mesure est-il dédié à la charge donnée, ou doit-il être plus polyvalent ?

Publié : 03 déc. 2006 13:20
par vincevg
Sur mon site tu trouveras une carte à tout faire avec un exemple de voltmètre numérique (hard et soft). Tu peux t'en servir de base tout en tenant compte des remarque de zera sur les mesures de tensions et de courant. Bien sur tu peux prendre un µC moins gros et moins cher que l'atmega8535.

Publié : 04 déc. 2006 0:29
par lguenhael
Salut! et merci de m'avoir répondu si vite

Pour commencé, en ce qui concerne la précision d'un ATmega 128 pourquoi n'est-elle pas d'1LSB?
ceci dit le fait quelle soit d'une précision de 2LSB signifie donc une erreur 1/256 par rapport a la tension de référence c'est bien ça?
et donc pour une tension de référence pour le CAN (exemple 5V) correspondant par exemple à une tension d'origine de 240Vac j'obtiendrai une précision légèrement inférieur à 1 volt?

En ce qui concerne le diviseur d'impédence je ne connai pas, aurai-tu un pti schéma?

Pour le courant j'avai déja pensé à une résistance en série et en fesant kelke recherches je me suis aperçu que c'était une méthode courante. Cependant existet-il des résistance de précision directement utiliseable en série avec un apareil d'1kW? ou faut-il modifier un peut la configuration? oubien encore cumuler plusieur résistance en // le tout en série avec l'apareil?

Coté sécurité il y aura effectivement un microcontroleur dédié au calcul de puissance et j'ai quelques opto-coupleurs à dispo (c'était prévu). Mais qu'entend tu exactement par faire attention aux masse selon le mode d'alim?

Enfin ce circuit de mesure est (pour le moment) dédié à la charge donnée qui en réalité ne devrai pas exeder les 800W max et 500W en fonctionnement normal, mais si il peut être plus polyvalent (plus particulierement pour des puissance beaucoup plus faible) sans pour autant entrainé beaucoup de modification suplémentair et en respectant toujour une précision du même ordre alors cela serait idéal.

Pour vincevg :
Je n'ai pas trouvé l'exemple de volmetre numerique, j'ai sans doute encor été trop vite! peut tu joindre le racourci?

merci pour tout!

Publié : 04 déc. 2006 19:40
par Zera
lguenhael a écrit :Pour commencé, en ce qui concerne la précision d'un ATmega 128 pourquoi n'est-elle pas d'1LSB?
Il s'agit de précision absolue. Le CAN pourra détecter une faible variation (d'1 LSB), mais sa valeur pourra être incorrecte, d'où la précision absolue de 2 LSB.
lguenhael a écrit :ceci dit le fait quelle soit d'une précision de 2LSB signifie donc une erreur 1/256 par rapport a la tension de référence c'est bien ça?
CAN 10 bits : LSB = 1/1024. 2LSB = 1/512.
lguenhael a écrit :précision légèrement inférieur à 1 volt?
au mieux. Après, il faut aussi prendre ne compte la qualité de la tension que tu donneras en référence au CAN, la non linéarité de ce dernier, etc.
lguenhael a écrit :En ce qui concerne le diviseur d'impédence je ne connai pas, aurai-tu un pti schéma?
L'entrée d'un composant numérique peut généralement être schématisée par une résistance ainsi qu'une capacité en parallèle. Pour diviser la tension, il faut donc également utiliser une résistance et une capacité en parallèle. Il faudra vérifier les caractéristiques d'entrée du CAN du microcontrôleur.
lguenhael a écrit :Cependant existet-il des résistance de précision directement utiliseable en série avec un apareil d'1kW?
Il existe des résistance de puissance, de valeur inférieure à 1ohm et pouvant supporter une puissance relativement importante.
lguenhael a écrit :Mais qu'entend tu exactement par faire attention aux masse selon le mode d'alim?
Si tu utilises une alimentation à découpage pour ton montage, il se peut que la masse que tu obtiendras ne soit pas la même que celle du réseau électrique (du type TN). A vérifier selon le type d'alimentation ... personnellement je prendrai une pile, cela résout bien des problèmes.

Publié : 04 déc. 2006 19:52
par vincevg
/*AVRGCC********************************************
Projet :Voltmètre numérique
Commentaires :
Version : 1
Date : 17 mai 2006
Heure : 16h55
Auteur : Frank SAURET
Compagnie: Lycée Aristide BRIAND - St Nazaire -
Micro Contrôleur : ATMEGA8535
Matériel : Maquette ABriand V3
Entrée de la tension à mesurer sur PA0
Affichage sur afficheur LCD mode 4 bits Port C
*********************************************/
#include <avr/io.h> //Cette ligne est obligatoire. Elle permet de
// n'écrire qu'un programme pour tous les AVR.

#include <sup_avr/lcd.c>
#include <sup_avr/stdlib2.h>
#include <sup_avr/CanM8535.h>


// Variables globales
char *ChaineTension ="0,0000000000"; // Prototyper ici l'affichage de la tension Si le prototype ne correspond pas au ftoa ça ne marchera pas

int main(void)
{
// Configuration des ports
DDRA=0xFF; // Tout en sortie.
PORTA=0x00; // Pas de Pull-Up.
DDRB=0xFF; // Tout en sortie.
PORTB=0x00; // Pas de Pull-Up.
DDRC=0xFF; // Tout en sortie.
PORTC=0x00; // Pas de Pull-Up.
DDRD=0xFF; // Tout en sortie.

//Inactivation du clavier
DDRA|=_BV(PA7);
PORTA|=_BV(PA7);

// Afficheur LCD
lcd_init(LCD_DISP_ON); // Initialisation
lcd_ChargeAccentsFrancais();
lcd_EcrisAuCentre("Voltmètre",0); // Ecriture de Voltmètre 1ème colonne 1ème ligne
lcd_EcrisTexteLong("V",13,1,0,0);// Ecriture de V 7ème colonne 2ème ligne

InitCAN(AVcc,Div4,Libre,10);
while (1)
{
ftoa (ConvertirVoieVolt(0),10, ChaineTension); // convertir en chaine de caractères la tension de la voie 0
lcd_EcrisTexteLong(ChaineTension,0,1,0,0);
}
}