Non classé

1 8 9 10 11 12 24

Dernière mise à jour le 29/09/16

Les interruptions PIC24/PIC32


La lecture qui va suivre permet de nous intéresser sur les interruptions issu d’un microcontrôleur et de prendre plusieurs exemples afin de voir et comprendre le fonctionnement des ces fameuses interruptions. Les interruptions d’un PIC de la famille 12F/16F/18F… est différents d’un PIC de la famille 24 ou 32 puisque ce dernier dispose de 5 timers qui peuvent être réglés soit sur 16 bits ou soit 32 bits. Pour comprendre en détails j’ai réalisés plusieurs exemples ci-dessous, ou je vais utiliser dans un 1er temps le PIC24FJ16GA002 de chez Microchip qui sera une simulation via Proteus, puis dans un 2ème temps je vais utiliser sur une platine d’essais sans soudure le PIC32MX534F064H de chez MikroElectronika vendu sous le nom de MINI-32.

Bon maintenant assez discuté et rentrons désormais dans le vif du sujet !!

Appel de la routine iv IVT_ADDR_TXINTERRUPT
Pour lancer une interruption il faut avant tout appeler la routine nommée« iv IVT_ADDR_TXINTERRUPT » (X à remplacer par le timer désiré).
Comme vous pouvez le constater, il faut utiliser une structure qui est bien différentes des PIC12F/16F/18F. La structure du programme sera de cette façon:


procedure TimerX; // procedure nommée Timer1
iv IVT_ADDR_TXINTERRUPT; // Appel de l’interruption du TimerX
// (X sera remplacé par le timer désiré)
begin
// Programme de l’interruption
end;
begin
while true do
begin
// programme principal
end;
end.

J’ai donné un nom pour la procédure « TimerX » mais rien ne vous empêche de l’appeler autrement. Sous ce nom s’enchaine immédiatement la routine iv IVT_ADDR_TXINTERRUPT qui fait appel à l’interruption du timerX. Ensuite entre « begin » le début du programme et « end » la fin du programme il faudra bien évidemment écrire une ligne de code qui s’exécutera uniquement lorsque l’interruption sera appelée.En ce qui concerne le programme principal, celui-ci est exécuté lorsque l’interruption a terminée mais nous verrons plus loin comme une interruption commence et se termine.

Remarque :
Pour faire appel à l’interruption d’un autre Timers (Timer2/Timer3/Timer4/Timer5)
grâce à la routine :
iv IVT_ADDR_TXINTERRUPT, il suffit de remplacer « X » par le numéro du timer désiré comme dis précédemment
Voilà en ce qui concerne l’appel de l’interruption pas compliqué n’est-ce pas ?

Configurations TimerX


Nous venons de voir comment appeler une procédure d’interruption ainsi que la structure du programme mais ce n’est pas pour autant que le PIC va fonctionner … Il faut pour que ce microcontrôleur fonctionne, le programmer et l’initialiser lors de sa première mise sous tension.

TXCON
Le bit TXCON permet de réaliser beaucoup de chose (à vous de consulter la datasheet). (X sera remplacé par le timer désiré). Le Quartz oscille à une fréquence de 10Mhz et que cette oscillation est présente sur les broches OSCI et OSCO, cette oscillation n’est plus la même une fois arrivée à «l’intérieur» du PIC. En effet l’oscillation en interne est divisée par 2 (Fosc/2) soit deux fois moins vite. Dans les exemples qui vont suivres le prescaler sera réglé à 1:64, il en résulte que la durée pour chaque coups d’horloge est d’environ de 840 ms ce qui proche de la seconde et largement suffisant pour observer le clignotements des leds.

IEC0.TXIE ou IEC1.TXIE
Ce bit quant à lui permet d’activer les interruptions du timerX (cas contraire rien ne fonctionnera)

IFS0.TXIF ou IFS1.TXIF
Tout d’abord le bit « IFS0.TXIF ou IFS1.TXIF » (X sera remplacé par le timer désiré) permet lorsque le timer à débordé c’est-à-dire une fois que le timer est arrivé au bout de son comptage (soit sur 16 bits soit sur 32 bits), une interruption sera déclenchée et, celle-ci permettra de faire passer le drapeau « Flag » à l’état logique « 1 ». Une fois ce drapeau à l’état logique « 1 » le programme principal est stoppé laissant place à l’interruption. Afin que le programme principal s’exécute correctement dès la mise sous tension du microcontroleur, il faut pour cela initialiser le bit IFS0.TXIF à l’état logique « 0 ».

TMRX
Ce bit permet de régler et d’affiner une valeur comprise entre 0 et 65535 pour un comptage sur 16 bits ou bien de 0 à 4294967295 pour un comptage sur 32 bits (X sera remplacé par le timer désiré). Le drapeau qui déclenche l’interruption, qu’il soit à l’état logique “1” ou l’état logique “0” n’aura aucune influence sur le comptage du ou des timers configurés.

Exemple Timer1


1er-exemple
Fonctionnement
Nous avons évoqué précédemment que les coups d’horloge étaient d’environ 840ms. Chaque fois que l’horloge arrivera à un temps de 840ms le drapeau via le bit IFS0.T1IF passera à l’état logique «1 » ce qui va interrompre la programme principal qui celui-ci ne fait que de scruter en permanence la procédure « Reset_LATA_timer1 » cette procédure ne fait que de désactiver la led. La subtilité d’une interruption fait que pendant 840ms le programme principal est scruté et à la fin des 840ms celui-ci est stoppé laissant place à l’interruption jusqu’à ce que le bit IFS0.T1IF soit remis à l’état logique “0” pour permettre au programme principal d’être de nouveau scruté. Je vous laisse réfléchir sur le code ci-dessous.


program Exemple_1_Timer1;
{ Declarations section }

procedure init;
begin
TRISA:=$0000;
LATA:=$0000;
AD1PCFG := $FFFF; // permet d’activer toutes les entrées en numérique
IFS0.T1IF := 0; // mise à zéro du bit T1IF
IEC0.T1IE := 1; // activation des interruptions du Timer1
T1CON :=%1000000000100000; // Timer1 ON, prescaler 1:64
TMR1:=$7FFF; // on commence à compterà parti de zéro
IPC0:=$7000;
IPC1:=$7000;
end;

procedure Timer1;
iv IVT_ADDR_T1INTERRUPT;
begin
if IFS0.T1IF = 1 then
begin
LATA.0:=1;
delay_ms(419);
IFS0.T1IF := 0; // remise à zéro du drapeau
end;
end;

procedure Reset_LATA_timer1;
begin
LATA.0:=0;
end;

// Programme principal
begin
init;
while true do
begin
Reset_LATA_timer1;
end;
end.

Exemple Timer1/Timer2


exemple_2

Passons maintenant à l’exemple suivant ou nous allons utiliser deux timers, (Timer1/Timer2). Avec l’aide des ces 2 timers le but est de faire clignoter alternativement les leds (D1 et D2). Au départ dans la procédure init du programme, Le Timer1 (TMR1) a été initialisé à $7FFF (Hex) soit 32767 (Dec). En ce qui concerne le Timer2 (TMR2) lui a été initialisé à $0000 (Hex) soit 0 (Dec). Le timer1 à donc une longueur d’avance sur le timer2 ?

TMR1/TMR2 comment ça fonctionne ?
Voilà un point important à élaborer qui consiste à comprendre le fonctionnement d’un timer. La configuration d’un timer via un PIC de la famille 24 ou 32 peut se faire soit sur 16 bits ou soit 32 bits, il en résulte que le timer à soit 65536 possibilité en 16 bits ou bien 4294967295 pour un 32 bits, hum !! Celà dit beaucoup de comptage pour le timer.
Prenons 16 bits afin de rester dans le contexte de l’exemple 2. Sur 16 bits le timer mathématiquement compte de 0 à 65536 (2^16=65536) soit 65536 possibilité puisque le zéro est compris. Imaginer le jeu de l’oie ou la case départ commence par zéro, au moment où vous allez avancer le pion cette case départ ne sera pas compter puisque vous allez commencer à compter à partir de la 1ere case… Et bien vous savez quoi ?!! Il en est de même pour le timer où il se verra de compter à partir de « 1 » soit 65535 possibilités (soit une case de moins). Lorsque le timer aura compté jusqu’à 65535 le drapeau « Flag » passera à l’état logique « 1 ».

Enfonçons un peu plus loin le clou!! et essayons de comprendre comment ce relais drapeau passe à l’état logique « 1 ». Imaginé une formule 1 qui aurait effectuée ces 65535 tours de pistes et arrive à tout vitesse sur la ligne d’arrivée ou à cet instant le drapeau se lève… Et bien encore une fois c’est le même principe pour le timer qui « enclenchera » ce relais drapeau lorsqu’il aura compté jusqu’à 65535 afin de stopper le programme principal.





Comment comparer 65535 avec un temps en ms ?
Comment calculer le temps en milliseconde à partir d’une valeur décimale ?
Nous avons évoqué dans le paragraphe « Configurations TimerX » que tout va dépendre du Quartz utilisé. Pour un Quartz de 10Mhz la cadence du PIC en interne sera deux fois moins rapide soit 5Mhz. Ensuite va venir des coefficients comme le prescaler (1:64) ainsi que le nombre de bits utilisés 16 bits soit 65535.

La temporisation obtenue en interne du Pic sera :
Tpic = (2/Fosc)*prescaler*nbrs de bits
Tpic = (2/10000000)*64*65535 = 0,838 sec soit 838ms

Pour un prescaler réglé à 1:64 et une configuration du PIC sur 16Bits avec un Quartz de 10Mhz la durée du comptage de 1 à 65535 est d’environ 838ms

Fonctionnement des 2 timers
Afin que les leds clignotent simultanément, et que nous puissions observer ces deux clignotements, il suffit de partager le temps en deux. Pendant qu’une led sera allumée l’autre sera éteinte et vice versa. La durée étant de 838ms ce qui donne pour deux clignotements 419ms.

Lorsque le timer1 aura compté jusqu’à 65535 la routine du timer1 s’exécutera suite au passage du drapeau à l’état logique « 1 ». Cela entraine l’allumage de la led et dans la foulé une temporisation de 418ms (petite parenthèse ce n’est pas une erreur oui!! il s’agit bien de 418ms soit 1ms de moins histoire de laisser un peu de temps pour que a procédure “Reset_LATA_…..” s’exécute bien ) afin de retarder le timer1 avant d’éteindre la led. Le fait de rajouter une temporisation n’aura aucun impact sur le comptage des timers. Cette temporisation permettra de voir le clignotement des leds une après l’autre.

Le programme en MikroPascal ci-dessous :


program Exemple_1_Timer1_Timer2;

{ Declarations section }

procedure init;
begin
TRISA:=$0000;
LATA:=$0000;
AD1PCFG := $FFFF; // permet d’activer toutes les entrées en numérique
IFS0.T1IF := 0; // mise à zéro du bit T1IF à l’initialisation
IFS0.T2IF := 0; // mise à zéro du bit T2IF à l’initialisation
IEC0.T1IE := 1; // activation des interruptions du Timer1
IEC0.T2IE := 1; // activation des interruptions du Timer2
T1CON :=%1000000000100000; // Timer1 activé, prescaler 1:64
T2CON :=%1000000000100000; // Timer2 activé, prescaler 1:64
TMR1:=$7FFF; // on commence à compter à parti de 32767
TMR2:=$0000; // on commence à compter à parti de 0
IPC0:=$7000;
IPC1:=$7000;
end;

procedure Timer1;
iv IVT_ADDR_T1INTERRUPT;
begin
if IFS0.T1IF = 1 then
begin
LATA.0:=1;
delay_ms(418); //(0,838 / 2 = 0,419) réglé à 418ms soit 1ms de moins
IFS0.T1IF := 0; // remise à zéro du drapeau du timer1
end;
end;

procedure Timer2;
iv IVT_ADDR_T2INTERRUPT;
begin
if IFS0.T2IF = 1 then
begin
LATA.1:=1;
delay_ms(418); //(0,838 / 2 = 0,419) réglé à 418ms soit 1ms de moins
IFS0.T2IF := 0; // remise à zéro du drapeau du Timer2
end;
end;

procedure Reset_LATA_timer1;
begin
LATA.0:=0; // on éteint la led D1
end;

procedure Reset_LATA_timer2;
begin
LATA.1:=0; // on éteint la led D2
end;

// Programme principal
begin
init;
while true do
begin
Reset_LATA_timer1;
Reset_LATA_timer2;
end;
end.

Exemples de code pour PIC32


Les exemples disponibles via les liens suivants ont été établis avec MikroPascal Pro for PIC32. Il existe une version de démonstration entièrement fonctionnelle mais limitée à 2 KO de code compilé sur le site Mikroe, que vous pouvez utiliser pour essayer ces exemples et même pour commencer vos projets personnel.
 
PIC32MX534F064H sur Mini-32
Présentation et réglages du Mini-32 (PIC32)

 
Captures/comparaison/PWM
Capture d’un signal en entrée (Input Capture) 

Sortie de comparaison (Output Compare) – PWM En cours….
 
Entrées/Sorties numériques ou analogiques
Configurations entrées/sorties (I/O)

Configurations entrées analogiques (A/N)
 
Les interruptions
Les interruptions

Les interruptions – Timer1
Les interruptions – Timer2/Timer3
 
Communications USBHID
Configuration port USB – VID/PID

Interface UsbHid – communication PC -> PIC
Interface USB – PIC32 – Sorties numériques

Dernière mise à jour le 25/09/16

Présentation


Ce présent article permet de programmer les entrées ainsi que les sorties d’un PIC24FJ64GA004. le programme qui va suivre permet lorsque nous appuyons sur un bouton poussoir, d’allumer une à une des leds par l’intermédiaire d’un bargraph. Chaque fois qu’une pression sur le bouton poussoir sera effectuée, les leds vont s’allumées les unes après les autres.


ATTENTION!!! Quartz non représenté sur le schéma électronique bien entendu celui-ci n’est pas optionnel 8Mhz ou 10Mhz fera largement l’affaire

Schéma


entrees_sorties
Le PIC24FJ64GA004 comporte deux PORTs (PORTA et PORTB). Le PORTA comporte uniquement 5 broches (RA0/RA1/../RA4), ces broches peuvent être utilisées pour différentes façon (analogique/numériques/tension de références/…) mais utilisons uniquement la broches RA0 pour l’exemple. En ce qui concerne le PORTB celui-ci comporte aux total 16 broches (RB0/RB1/.. /RB15). ont remarque très vite que la capacité d’un tel microcontrôleur sont plus importantes, et il en est de même pour le nombre d’entrées et sorties.





Config broches TRISA
La datasheet du PIC24FJ64GA004 nous informe que il y’a bien 16 bits (RA0/RA1/.. /RA15) à configurer mais attention la datasheet précise que les bits RA7/../R10 ne sont pas valides et que pour les autres bits formés par un “-” doivent être mis à l’état “0” logique. Il en résulte que tous les bits seront à l’état logique “0” sauf le bit RA0 qui sera à l’état logique “1” pour préciser qu’il s’agit d’une entrée. Le programme qui va suivre permet d’initialiser uniquement les entrées et les sorties du PIC24FJ64GA004


procedure init;
begin
TRISA:=$0001; // les broches RA0 et RA4 est à l’état 1
TRISB:=$0000; // les broches sont configurées en sorties
LATA:=$0000;
LATB:=$0000;// à l’état logique “0”
AD1PCFG := $FFFF; // permet d’activer toutes les entrées en numérique
end;

Le code complet le voici…


program Entrees_Sorties;
var
bStateBp1 : boolean;
i : byte;
procedure init;
begin
TRISA:=$0001; // les broches RA0 et RA4 est à l’état 1
TRISB:=$0000; // les broches sont configurées en sorties
LATA:=$0000;
LATB:=$0000;// à l’état logique “0”
AD1PCFG := $FFFF; // permet d’activer toutes les entrées en numérique
end;

procedure Bp1(i:byte);
begin
case i of
1 : LATB.0:=1;
2 : LATB.1:=1;
3 : LATB.2:=1;
4 : LATB.3:=1;
5 : LATB.4:=1;
6 : LATB.5:=1;
7 : LATB.6:=1;
8 : LATB.7:=1;
9 : LATB.8:=1;
10 : LATB.9:=1;
end;
end;

procedure ReadButton;
begin
begin
if ((PORTA.0=1) and (bStateBp1=false)) then
begin
bStateBp1:=true;
inc(i);
Bp1(i);
end;

begin
if (PORTA.0=0) and (bStateBp1=true) then bStateBp1:=false;
end;

// remise à zéro de la variable “i”…
begin
if i=11 then
begin
LATB:=$0000;
i:=0;
end;
end;
end;
end;

begin
init;
while true do
begin
ReadButton; // lecture en boucle du bouton
end;
end.

Dernière mise à jour le  01/05/16

Présentation


Implantation
Ce montage électronique est un temporisateur qui en fonction des valeurs de la résistance (Rx) et du condensateur (Cx) de modifier la largeur de l’impulsions. Ce montage électronique ne peut en aucun cas alimenter directement un relis par exemple, car le courant en sortie du CD4528 est de l’ordre de 8mA maxi. Il faudra ajouter à ce montage électronique un montage de puissance afin d’augmenter la capacité du courant en sortie du CD4528.

Schéma


Temporisateur_003

Alimentation
L’alimentation du montage électronique est réalisée via la diode de redressement et le condensateur C1.


Quelle valeur du condensateur C1

Le calcul du condensateur C1 dépend du courant d’alimentation qui est nécessaire pour faire fonctionner le montage électronique, j’ai décidé de façon arbitraire à ce que l’alimentation est capable de fournir un courant de 600mA pour une tension de 12V continue. L’alimentation qui alimente le circuit électronique (alimentation externe) est de 12V alternatif 50Hz, le transformateur que j’utilise délivre un courant de 3200mA donc suffisant pour assurer les 600mA.Afin d’obtenir une tension de 10V pour un courant de 600mA il faut faire des petits calculs pour déterminer la dimensionnement du condensateur C1.

Dimensionnement du condensateur C1
Prenons l’exemple suivant avec le montage ci-dessous:

Exemple 1

Afin d’obtenir une tension de 12V entre le + et le – de l’alimentation pour un courant de 600mA la charge devra avoir une résistance de 20 Ohms (R=U/I=12/0,6)=20 Ohms.
Avec les conditions respectées ci-dessus il faut maintenant trouver par calcul la valeur du condensateur C1. Pour cela nous allons commencer par exprimer le courant qui circule dans ce même condensateur grâce la célèbre formule Ic=c*(dU/dt) (dU qui veut dire delta et qui représente une petite variation de tension et dt représente aussi une petite variation mais par rapport au temps).
Le rôle de la diode D2 permet de redresser la 1er alternance, cette configuration permet de retrouver aux bornes du condensateur C1 une tension redressée mais de type simple alternance de fréquence 50Hz soit une période de 20ms.

Si nous mettons en place la charge de 20 Ohms directement en sortie du pont nous retrouvons un signal en sortie une allure comme représenté sur le graph ci-dessous.


charge_et_décharge


Sur le graph le temps t=5ms représente la valeur crête de la tension aux bornes du condensateur qui se calcul de cette façon :
Uc1=Uréseau-Ud2=12*1,414-0,8V=16V, la chute de tension aux bornes de la diode D2 dépend du courant qui la traverse. En l’occurrence dans notre exemple le courant est de 600mA, et pour un courant de 600mA la chute de tension aux bornes de D2 est environ proche des 0,8V


Bon et bien maintenant que nous avons déterminé la tension aux bornes du condensateur C1 il suffit de passer aux choses sérieuses. La charge du condensateur est faite sur la partie croissante de la courbe le but est de déterminer le de trouver son minimum. Pour ma part j’ai décidé d’avoir une tension moyenne aux bornes du condensateur de 11V, la tension minimum serais de 5,9V (Umoy=(16,1+5,9)/2=11V).A l’instant t1=4ms le minimum serait de 5,9V et à l’instant t=5ms la tension serait de 16,1V. Une formule va nous permettre de déduire le temps t1 en faisant :
t1= (ArcSin (Umin/Umax))/(100*3,14)= (ArcSin (5,9/16,1))/(100*3,14)=1,2ms
(de t1 à t : il s’agit de la charge du condensateur)


Lorsque le condensateur va se décharger il doit être capable sur un temps de 16,2ms (21,2ms-5ms=16,2ms) de fournir un courant de 600mA ce qui veut dire que la capacité du condensateur doit être égale à :
C=Ic*(dt/dU)=0,6*(0,0162/(16,1-5,9)=952µF (normalisé =1000µF)
il faut une charge qui consomme un courant de 600mA pour que la tension tombe à environ 10V ce qui ne sera pas le cas avec ce montage qui ne consomme que quelques milliampères !!
Réglage temporisation
Le réglage de la temporisation est effectué en modifiant les valeurs de Rx et Cx.


Temporisations comprise entre 5sec et 1min
Rx=100K et Cx=100uF pour environ 5sec
Rx=220k et Cx=100uF pour environ 8sec
Rx=1M et Cx=100uF pour environ 55sec
Rx=2M et Cx=100uF pour environ 1min40
Rx=10M et Cx=100uF pour environ >5min


Remarque :
Sur l’implantation des composants de la carte électronique les valeurs de Rx et Cx sont :
Rx représente R3/R4
Cx représente C2/C3

Prototype


Oui un petit prototype pour les différents essais de valeur Rx et Cx

Proto 1 Proto 2



Test de l’alimentation

Test 1

Les créneaux en sortie du montage ont une valeurs max de 10V crête, il en résulte que la diode zéner régule bien en sortie.

Oscillioscope

Circuit(s) imprimé(s)


Circuit imprimé

Typon au format PDF / Composants

Historiques


01/05/16
– Première mise à disposition.

Présentation


Je ne vais pas rentrer dans les détails puisqu’un exemple est évoqué ci-dessous:
Chute de tension


Ah oui!! j’avais oublié d’évoquer un règle à respecter. Si le pourcentage est supérieur aux valeurs indiquées ci-dessous il faudra augmenter la section du câbles, bien évidemment si la longueur est importante la chute de tension est aussi importante. Afin d’obtenir une faible chute de tension il faut donc “jouer” sur la section du câble ou bien de diminuer la longueur mais ça c’est à vous de voir…
Chute de tension_2

Présentation


Dans ce présent article nous allons aborder le calcul du courant de défaut, qui permet de régler le magnétique du disjoncteur voir Réglage disjoncteur

Protection contre les contacts indirects


Le courant de défaut entre phase et masse – ou entre un conducteur de phase et le conducteur de protection – doit être éliminé dans un temps compatible avec la sécurité des personnes.
Ce temps est déterminé par une courbe en fonction de la tension de contact présumée, basé sur les effets physiologiques du courant électrique sur le corps humain voir
Protection contre les risques du courant électrique


Temps de coupure

Application au schéma TN


Le courant de défaut If est égal à :

If=U0/Zd
U0 étant la tension nominale de l’installation entre phase et neutre,
Zs étant l’impédance de la boucle de défaut.


Protection par fusibles


Protection par fusible


La règle de protection consiste alors à s’assurer que le courant de défaut If provoque certainement la fusion du fusible dans le temps prescrit, en vérifiant que le point correspondant du graphique de fonctionnement des fusibles I(t) se trouve au-dessus de la caractéristique supérieure de la zone de fusion du fusible.
Le point A correspondant au temps t0 prescrit pour le courant de défaut If doit se trouver au-dessus de la limite supérieure de la zone de fonctionnement du fusible (FF). t1 est le temps réel de fusion du fusible résultant du courant de défaut If.


Protection par disjoncteurs

Protection par disjoncteur


Lorsque le dispositif de protection est un disjoncteur, il suffit de s’assurer que le courant de défaut If est au moins égal au plus petit courant Im assurant le fonctionnement instantané ou de court-retard du disjoncteur ; en effet, les temps de fonctionnement des disjoncteurs sont généralement inférieurs aux temps prescrits.

Si If est supérieur ou égal à Im, la protection est assurée.
Si If est inférieur à Im., il y a alors lieu, soit de diminuer le courant de fonctionnement instantané Im ou de court retard du disjoncteur (réglage du magnétique) si cela est possible, soit de réaliser des liaisons équipotentielles supplémentaires satisfaisant à la condition du paragraphe 415.2 de la NF C 15-100 telles que la résistance R entre toute masse et tout élément conducteur simultanément accessibles soit telle que :
R ≤ 50/Im
 

 
soit d’assurer une protection par des dispositifs à courant différentiel-résiduel de courant différentiel-résiduel assigné IΔn ≤ If.
Des disjoncteurs sélectifs peuvent être utilisés dans les circuits de distribution.

Si le courant de défaut If est supérieur au plus petit courant assurant le fonctionnement instantané du disjoncteur Im’ le temps de fonctionnement instantané ou de court-retard t1 du disjoncteur est nettement inférieur au temps t0 prescrit..

Méthodes de calcul



Courant de défaut

Présentation


Ce présent article à pour principe d’expliquer comment déterminer la section des conducteurs dans une installation électrique en industrie .

Pertes par effet joules


Les câbles électriques sont généralement en cuivre, un métal considéré comme un excellent conducteur. Ce constat est a priori vrai sur les courtes distances, mais dès que la longueur
devient importante, la perte par effet Joule (échauffement) n’est pas négligeable surtout pour de fortes intensités. Une installation électrique nécessite plusieurs types de conducteurs pour transporter le courant du tableau général aux différents points d’utilisation. Entre les uns et les autres, le choix est avant tout une question de normes.

Comment dimensionner un conducteur


La détermination de la section du conducteurs doit correspondre à un courant admissible au moins égal à :
I’z=k/f
I’z correspond aux courant fictif qui traverse le conducteur
k une constante qui dépend en fonction du type d’appareillages utilisé

  • Si Fusibles gG : I’z=(K3*In)/f
  • Si disjoncteur domestiques : I’z=In/f
  • Si disjoncteur industriels : I’z=Ir/f

f correspond à un coefficient qui dépend de (température/pose des conducteurs/méthode de référence/…)

Logiciel Ecodial


Nous allons utiliser le logiciel Ecodial pour simuler une installation électrique et verrons en détails comment celui-ci a fait ses calculs en utilisant la normes UTE C15-105. Il faut savoir que Ecodial ne prend pas tout les facteurs en comptes car beaucoup de paramètres peuvent exister, Ecodial (en mode automatique) va se contenter d’apporter un calcul simple afin d’avoir une approche sur la section du ou des conducteurs à mettre en place.




Calcul section de la Phase
Prenons un cas ou nous souhaitons installer un câble monophasé:

Type d’isolant : PR2 (2 car monophasé)

Type de conducteur : unipolaire

Longueur : Longueur du câble 100m

Température : 40°C – facteur de correction f1=0,85

Mode de pose : Câbles mono- ou multiconducteurs dans des conduits-profilés en montage apparent – méthode de référence B – facteur de correction f2=0,90

Neutre chargé : non (pas d’harmoniques)

Arrangement conducteurs (pose jointive): 7 circuits jointifs référence 1 facteur de correction f3=0,55

Nombres de couches : 3 facteur de correction f4=0,73


f=f1*f2*f3*f4=0,85*0,90*0,55*0,73=0,307


Pour un courant du disjoncteur réglé à Ir=0,7xIn=112A
I’z=Ir/f=1120,307=365A

Ainsi pour un courant fictif on trouve d’après le tableau une section de 150mm² pour la phase.

section câble

Calcul section du Neutre

Le conducteur neutre doit avoir une section supérieure à celle des conducteurs de phase dans le cas de circuits polyphasés constitués de câbles unipolaires et lorsque le taux d’harmoniques en courant de rang 3 et multiple de 3 dépasse 33 %. La section déterminante est celle du conducteur neutre calculée pour un courant d’emploi pris égal à 1,45 fois le courant d’emploi dans la phase. Le conducteur neutre est considéré comme chargé et un facteur de réduction du courant admissible de 0,84 doit être pris en compte.

Tableau de synthèse

Dans le cas de circuits triphasés avec neutre et lorsque le taux d’harmoniques en courant de rang 3 et multiple de 3 n’est défini ni par l’utilisateur ni par l’application, il est recommandé que le
concepteur applique au moins les règles suivantes :
• prévoir une section du conducteur neutre égale à celle de la phase (facteur 0,84) ;
• protéger le conducteur neutre contre les surintensités ;
• ne pas utiliser de conducteur PEN.

Dans notre exemple le neutre n’est pas chargé (aucune présence d’harmoniques), il en résulte que le conducteur neutre est égale au conducteur de phase c’est d’ailleurs ce que nous trouve Ecodial.


Conducteur neutre égale conducteur phase


Calcul section du PE (Protection Electrique)
Section PE

Rien de bien compliqué encore, il suffit de respecter les données du tableau ci-dessus.Dans notre exemple la section du conducteur de phase est bien supérieur à 35mm², et donc la section du conducteur PE est donc égale à Sph/2=150/2=75mm² (valeur normalisée 95mm²), c’est bien ce que Ecodial nous préconise!!

Présentation


Il est évident que les réglages du déclencheur d’un disjoncteur ne se font pas à la légère. En règle générale les réglages font l’objet de règles précises que je vais développer ci-après. Ces réglages sont le résultat de la note de calculs conformes à la NFC 15-100 et de ses guides pratiques dont le principal est le guide UTE C15-105. Afin d’interpréter correctement les réglages d’un disjoncteur, il est indispensable de connaître la NFC 15-100 et les textes satellites dans le cas contraire c’est un coup d’épée dans l’eau.

Conditions à respecter


Trois conditions sont à respecter pour qu’un dispositif de protection assure la protection d’une canalisation contre les surcharges :


* Condition 1) IB ≤ In
* Condition 2) In ≤ lz
* Condition 3) I2 ≤ 1,45.lz qui peut s’écrire k2.ln ≤ 1,45 lz ou k3.ln ≤ lz ou In ≤(Iz/k3)


IB Courant d’emploi,
In Courant assigné du dispositif de protection ; pour les dispositifs de protection réglables, In est le courant de réglage choisi (Ir),
I2 Courant de fonctionnement du dispositif de protection dans le temps conventionnel,
Iz Courant admissible dans la canalisation, compte tenu des facteurs de correction éventuels,
k2 Rapport du courant I2 assurant effectivement le fonctionnement du dispositif de protection à son courant nominal In,
k3 = k2/1,45.


Fusible
pour les fusibles, les deux conditions à respecter sont les suivantes :
Condition 1a) IB ≤ In
Condition 2) I2 ≤ 1,45.lz ou In ≤(Iz/K3) ou k3 In ≤ Iz


Le facteur k3 ayant les valeurs suivantes :
In < 16 A, k3 = 1,31
Fusibles gG
In ≥ 16 A, k3 = 1,10


Disjoncteur
Pour les disjoncteurs, les deux conditions à respecter sont les suivantes :
Condition 1a) IB ≤ In
Condition 1b) In ≤ lz

 Les caractéristiques fondamentales d’un disjoncteur on parlera de la taille du disjoncteur qui correspond au courant assigné (In) le plus élevé des déclencheurs qui peuvent l’équiper.

Réglages thermique


Comme évoqué ci-dessus, le réglage In est choisi en affinant avec Ir (courant de réglage), il en résulte que le choix du disjoncteur doit être au plus proche ou égale au courant d’emploi que consomme la charge en aval, il protège contre les surcharges.

Réglages magnétique


Réglage du magnétique
Le réglage du magnétique ce fera au plus prés du courant de défaut If . Il convient également de prendre en compte l’incertitude de +20% sur le déclenchement du magnétique

À l’aide du logiciel Ecodial (ancienne version), j’ai simulé une charge qui consomme un courant de 100A sous 230V, la longueur entre le transformateur et la charge est de 10m.
Sans titre
La charge consomme un courant de 100A Ib<=In => In=100A, le mode de pose du câble en prenant en compte toutes les contraintes donne un coeff  f= 1, il en résulte que  Iz=Ir(In)/f=100/1  Iz=100A.
La section de la phase est de 25mm² (tolérance 5%) et même chose pour le neutre.
Section PE < 25mm² ce qui donne un PE=16mm² Rpe=12mohms Xpe=0.8mohms

tableau-10

Pour trouver le courant de court circuit Ik1 entre phase et protection électrique à l’extrémité de la canalisation nous faisons:
racine ((Rtotal+Rpe)²+(Xtotal+Xpe)²)=racine ((16,48+12)²+(27,96+0,8)²)=40,475 mhoms
Icc=(V/Z)=230/40,475=5,68 kA (il faudra multiplier ces valeurs par des coefficient suivant le type de régime de neutre*m*Cmini).

 

 

Réglage du magnétique
Le réglage du magnétique ce fera au plus près du courant de défaut If (proche de 5,68kA). Il convient également de prendre en compte l’incertitude de +20% sur le déclenchement du magnétique
Im(Isd)=X*5,68*1,02

X: Correspond au nombre de fois le courant Ir le coefficient multiplicateur dépend de la technologie du disjoncteur (micrologic ou autres)

1,02: correspond à la tolérance de +20%.

Si par exemple nous avons une boucle de défaut (impédance de la boucle Zd=27miliOhms), et que nous trouvons par calcul un courant de 6000A!!!
il faudra régler le magnétique afin d’obtenir Im<=(If/1,2)=6000/1,2=5000 soit 5kA (le réglage du magnétique doit être inférieur à 5kA. (voir courbe du disjoncteur en bas).
Réglage magnétique
Avec fusible
Lorsqu’on utilise des fusibles, il faudra regarder la courbe sur la doc technique de celui-ci.

Exemple


Prenons un  exemple simple ou l’on considère que nous voulons alimenter une charge entre phase et neutre (230V 50Hz), et que cette charge consomme un courant de 500A sous un Cos Fi=0,85.
Avec ces éléments nous pouvons en calculer la puissance qui est: P=U*I*Cos Fi=230*500*0,85=97750W soit 97,86KW.

Thermique= réglage long retard (Protection contre les surcharges)

Afin de protéger cette charge nous devons mettre en place le disjoncteur de ligne qui devra être réglé au plus près du courant nominal de la charge Ir=500A. Si on respecte la norme UTE C15-105, celle-ci indique clairement que le courant de réglage du disjoncteur (Ir) Ir ≥ Ib (Ib correspond au courant nominal ou courant d’emploi qui circule dans la charge).Ir ≥ 500A,
il faudra donc trouver un disjoncteur supérieur ou égale à 500A. La gamme Compact de Scheider electric propose une large gamme de disjoncteur comme le NS630N qui admet un courant In=630A, l’appareil peux donc accepter et laisser passer un courant de 630A, mais aussi il est équipé d’une micrologie qui permet de régler Ir (Thermique) ainsi que Im (Magnétique)

NS630N compact

Le réglage du thermique se fera à 0,8xIn soit Ir=0,8×630=504A Ir ≥ Ib on respect bien la norme et nous somme proche des 500A!! (le faite de régler le thermique nous allons affiner pour être encore plus proche du courant Ib (courant nominal ou d’emploi de la charge))

Maintenant que le thermique est réglé il faut régler le magnétique qui celui-ci est réglé en fonction du courant de défaut (courant de court-circuit).

Magnétique = réglage court-retard (Protection contre les courts-circuits)
Le réglage du magnétique du disjoncteur est toujours effectué en prenant en compte d’une part le courant de défaut (If) (C’est en règle générale le cas le plus défavorable) et d’autre part l’incertitude sur le fonctionnement du magnétique (+20%), le magnétique protège contre les courts-circuits, il s’agit du courant de défaut simple (Schéma TT ou TN) ou de double défaut (Schéma IT) et le déclenchement au 1er défaut est obligatoire!! les dispositifs de protection contre les court-circuit doivent couper l’alimentation dans un temps inférieur à celui indiqué par les courbes de sécurité. Ensuite il suffit de connaître l’impédance de la boucle de défaut , pour cela revoir l’explication situé dans le paragraphe “Réglage du magnétique” d’ailleurs le réglage du magnétique est effectué grâce à cette formule Im<=(If/1,2)

Courbe du disjoncteur


Réglage
Le réglage du magnétique est bien inférieur à 5kA

Présentation


Toute protection quelle qu’elle soit protège le moteur uniquement lorsque celui-ci subit une action extérieure provoquant l’échauffement excessif des enroulements : moteur qui force exagérément, mauvaise ventilation, alimentation en tension anormale.Un amorçage entre enroulements fera déclencher la protection, mais n’empêchera absolument pas sa progression. En clair lorsque la protection aura sauté il est déjà trop tard pour les enroulements qui sont donc HS. Si on prend l’exemple d’un moteur qui a pris l’eau, si le différentiel ne déclenche pas immédiatement, la protection thermique ne déclenchera que lorsque le moteur aura « amorcé ».


Lorsqu’ un moteur a grillé malgré la protection c’est :
– Soit que cette protection n’était pas efficace, du à un mauvais réglage ou un avachissement de la languette de déclanchement
– Soit que ce soit un amorçage entre enroulements, mais dans tous les cas la protection doit être changée, que l’on remplace le moteur ou qu’on le fasse rebobiner.


La protection d’un moteur peut–être :
– Interne : protection thermique, sonde thermique, fusible thermique
– Externe : relai thermique, disjoncteur thermique

Protection par Thermique Interne


Le principe de fonctionnement est celui d’un bilame qui réagit en fonction de la température des enroulements, consignée par le fabricant du moteur. Celui-ci est isolé et placé à l’intérieur du moteur sur les enroulements. Cette protection est plutôt réservée aux moteurs ne dépassant pas 0,75Kw et uniquement pour les moteurs monophasés (pompes, tondeuses, etc.).
Le contact est un NF (Normalement fermé,et donc à froid laisse passer le courant). Le branchement est donc en série sur un fil secteur et le point commun des enroulements du moteur. Les contacts de cette protection thermique sont donc suffisamment dimensionnés pour laisser passer l’intensité que consomme le moteur. L’intérêt de ce montage est d’avoir une protection incorporée et de pouvoir brancher directement le moteur avec un simple interrupteur. L’inconvénient est que lorsqu’il y a surchauffe, le bilame ouvre le contact et le moteur s’arrête. Une fois le moteur refroidi le bilame se remet à sa position initiale et le moteur repart. Si l’utilisateur de l’appareil n’est pas présent (pompe par exemple) le cycle de marche/arrêt se poursuit indéfiniment jusqu’à l’avachissement ou soudage du bilame de la protection ou du claquage du moteur.
Si par chance c’est le bilame qui a claqué , il suffit de le court-circuiter et mettre une protection thermique extérieure (relai thermique ou disjoncteur).

Schéma


Exemple de câblage de protection thermique interne, le branchement des sorties de fils du stator à la plaque à bornes n’est pas standard et chaque fabricant utilise les bornes repérées suivant sa propre logique. Avant toute intervention il faut s’assurer du repérage des circuits avec un ohmmètre. Le dessin ci-dessous permet de distinguer clairement les différents circuits. L’exemple est le cas le plus courant du moteur monophasé à condensateur permanent à 3 ou 4 fils de sorties avec le sens de rotation pré configuré.

Moteur à 3 fils de sorties.
Protection thermique interne

Sur le schéma électrique suivant le moteur a 4 fils de sorties, L’intérêt est de pouvoir supprimer la protection en cas de défaillance, en n’oubliant pas toutefois de mettre une protection extérieure par disjoncteur/moteur calibré.

Moteur à 4 fils de sorties..
Protection thermique interne 2

Autre montage, si la protection est en bon état c’est de faire un montage dont la protection devient simplement une sonde thermique.

Moteur à 5 fils de sorties.


Protection avec sonde thermique

Principe de la sonde thermique (thermistance)


Protections thermiques incorporées
Les moteurs peuvent être équipés en option de sondes thermiques; ces sondes permettent de suivre l’évolution de la température aux “points chauds” afin de détecter la surcharge ou un mauvais refroidissement (ou à des points caractéristiques) pour la maintenance de l’installation.Il faut souligner qu’en aucun cas, ces sondes ne peuvent être utilisées pour réaliser une régulation directe des cycles d’utilisation des moteurs.

En contrôlant directement la température des enroulements statoriques, les relais à sondes protègent les moteurs contre les échauffements quelle qu’en soit l’origine (surcharge, élévation de la température ambiante, défaut du circuit de ventilation, fréquence de démarrage trop élevée,marche par à-coups, ……). Ce mode de protection ne peut être utilisé que si des sondes ont été incorporées aux enroulementslors de la fabrication du moteur (ou du rebobinage de celui-ci).Les relais à sondes peuvent également être utilisés pour surveiller les échauffements des organes mécaniques des moteurs ou d’autres matériels susceptibles de recevoir une sonde (paliers, circuits de graissage, radiateurs de semi-conducteurs, fluides de refroidissement, résistances de démarrage,…).
Ce système de protection contrôle la température réelle de l’élément à protéger.Il est composé:
– d’une ou plusieurs sondes à thermistances à coefficient de température positif (PTC) (composant statique dont la résistance augmente brutalement quand la température atteint un seuil prédéfini
nommé Température Nominale de Fonctionnement «TNF»). – d’un dispositif électronique qui mesure en permanence la résistance des sondes.


Un tableau ci-dessous permettant de montrer différentes sonde thermique incorporées dans le moteur

Protection thermique

(Clique pour agrandir)

Montage des différentes protections
– PTO ou PTF, dans les circuits de commande.
– CTP, avec relais associé, dans les circuits de commande.
– PT 100 ou Thermocouples, avec appareil de lecture associé (ou enregistreur), dans les tableaux de contrôle des installations pour suivi en continu.
Lorsque le moteur comporte des accessoires (protection thermique ou résistance de réchauffage), ceux-ci sont raccordés sur des dominos à vis ou des planchettes par des fils repérés

Fonctionnement de la sonde thermique


Ce sont des résistances dont la valeur ohmique varie avec la température. En principe, ces dispositifs ne sont pas utilisés seuls, ils doublent les relais utilisant le courant absorbé comme moyen de mesure, mais la surcharge due à l’échauffement d’un palier est, en principe, insuffisante pour être détectée par les relais de surcharge, d’Où la nécessité d’intégrer une sonde thermique.

Sonde thermique
Sonde thermique principe


L’appareillage est constitué d’un d’un boîtier conducteur (1) et d’un capuchon de contact qui est constitué d’acier (2), qui celui-ci est isolée du capuchon. Un contact intégré d’argent fixe (6) qui ferme le boîtier comme une pile bouton. Il reste le disque (3) qui forme l’élément de transfert de courant qui est le contact mobile (4)

Le fonctionnement est le suivant

lorsque la température augmente le disque bimétallique(5) va se déformer en exerçant une pression de contact constante, stable. Le disque bimétallique (5) est un contact mobile qui fait monter ou descendre (4) sans se coller et sans avoir à ce souder. En tant que tel, il peut toujours travailler et réagit seulement à la température ambiante dans l’appareil à protéger. Quand la température de commutation nominale est atteinte, le disque bimétallique (5) va se mette en sa position inversée et pousse le ressort d’encliquetage disque (3) vers le bas. Ainsi le contact est brusquement ouverte et la montée du dispositif de température est est perturbée. Si la température ambiante tombe, le disque bimétallique (5) retourne dans sa position de départ , et le contact est à nouveau fermé.

Dernière mise à jour le 16/04/16

Présentation


Le programme ci-dessous permet d’afficher toutes les 100ms la position du curseur de la souris. Le timer1 permet de scruter en boucle le positionnement de la souris et d’afficher ces valeurs dans une TextBox.

Programmation en C#


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Curseur_Souris
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            timer1.Enabled = true;
            timer1.Start(); //Active le timer1
        }

        private void button2_Click(object sender, EventArgs e)
        {
            timer1.Stop(); //Arrêt du timer1
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            // Toutes les 100ms le timer scrute en boucle la ligne de code ci-dessous 
            textBox1.Text = Convert.ToString( Cursor.Position.X );
            textBox2.Text = Convert.ToString( Cursor.Position.Y);
        }
        private void textBox1_TextChanged(object sender, EventArgs e)
        {
            //Affichage de l'axe des X
        }
        private void textBox2_TextChanged(object sender, EventArgs e)
        {
            //Affichage de l'axe des Y
        }

    }
}

 


Pour l’utiliser vous pouvez ouvrir le programme (.exe) situé sur ce lien Curseur souris

1 8 9 10 11 12 24