Bonsoir Bonjour,
comme j'aime bien trouver pour chaque projet des solutions avec les derniers produits, j'ai réalisé il y a quelques semaines un petit coffret de régulation par ballast de 6 kW comprenant juste un gradateur triphasé (courant environ 9 A mais j'ai pris un gradateur 50 A pour être tranquille
) piloté en 4-20 mA par un afficheur de fréquence disposant justement d'une sortie 4-20 mA paramétrable
2018-05-24-18h40m11.JPG
2018-05-24-18h40m32.JPG
Schéma coffret.png
Manque de pot (et la documentation ne mentionnait pas ce point), l'afficheur met plusieurs secondes pour mesurer la fréquence et actualiser la sortie 4-20 mA
Evidemment ça part en oscillation ...
J'ai donc réalisé un petit montage électronique qui mesure la fréquence du courant (entrée directe du 230 Vac sur un optocoupleur) et délivre rapidement (sous 20 ms) un signal 4-20 mA (*) lié à cette fréquence.
(*) en fait c'est un signal 1 à 5 V, mais comme l'impédance d'entrée du gradateur est de 250 Ohm cela donne bien du 4-20 mA
2018-06-10-21h52m26.JPG
2018-06-10-22h41m05.JPG
2018-06-10-22h41m17.JPG
2018-06-10-22h45m32.JPG
Schéma platine.png
L'ensemble est basé sur une petite platine
Arduino Micro, très facile à mettre en œuvre et à programmer (langage genre C), voici le Da Vinci code :
Code : Tout sélectionner
[code]
const int Eopto=7; // Affectation entrée optocoupleur signal secteur (broche 7)
const int PotPerMax=0; // Affectation entrée potentiomètre période maxi ou fréquence mini (broche A0)
const int PotPerMin=1; // Affectation entrée potentiomètre période mini ou fréquence maxi (broche A1)
const int PotPause=2; // Affectation entrée potentiomètre temps de pause (broche A2)
const int SPwm=13; // Affectation sortie signal PWM (broche 13)
unsigned int Pause; // Temps de pause (ms)
unsigned int PerMax; // Seuil de période maxi (µs)
unsigned int PerMin; // Seuil de période mini (µs)
unsigned int Pwm; // Sortie PMW (0 à 255)
unsigned long Calcul; // Variable temporaire
unsigned long Periode; // Période courante (µs)
unsigned long TEoptoBas; // Durée de l'état bas du signal optocoupleur (µs)
unsigned long TEoptoHaut; // Durée de l'état haut du signal optocoupleur (µs)
void setup()
{
pinMode(Eopto,INPUT); // Déclaration broche optocoupleur
pinMode(SPwm, OUTPUT); // Déclaration broche PWM
}
void loop()
{
TEoptoHaut = pulseIn(Eopto,HIGH); // Mesure temps à l'état haut
TEoptoBas = pulseIn(Eopto,LOW); // Mesure temps à l'état bas
Periode = TEoptoHaut + TEoptoBas; // Période = temps état haut + temps état bas
Periode = Periode * 2; // L'opto coupleur conduit à chaque demi-alternance (2 photodiodes tête bêche)
PerMin = 1023 - analogRead (PotPerMin);
PerMin = 19950 - (PerMin * 2); // Période mini de 19950 à (19950 - 1023 * 2) = 17954 µs soit Fmax = 50.1 à 55.8 Hz
PerMax = analogRead (PotPerMax);
PerMax = 20050 + (PerMax * 2); // Période maxi de 20050 à (20050 + 1023 * 2) = 22046 µs soit Fmin = 49.9 à 45.2 Hz
Periode = (Periode < 6700)? PerMax : Periode; // si la mesure ne se fait pas (Periode à 0) désactivation de la sortie
Periode = (Periode < PerMin)? PerMin : Periode; // si la période est inférieure au seuil mini on la rend égale au seuil mini
Periode = (Periode > PerMax)? PerMax : Periode; // si la période est supérieure au seuil maxi on la rend égale au seuil maxi
Calcul = 1023-(1023 * (Periode - PerMin) / (PerMax - PerMin)); // Calcul varie de 0 si Periode = PerMax à 1023 si Periode = PerMin
Pwm = Calcul / 4; // Pwm varie de 0 si Periode = PerMax à 255 si Periode = PerMin
Pause = analogRead (PotPause); // Pause varie de 0 à 1023 * 5 = 5115 ms soit 0 à 5.1 s
delay(Pause * 5);
analogWrite(SPwm, Pwm); // Ecriture de la sortie Pwm
}
[/code]
J'ai prévu 3 petits potentiomètres
- le 1er permet de régler la fréquence basse (sortie à 4 mA) de 45.2 à 49.9 Hz
- le 2nd permet de régler la fréquence haute (sortie à 20 mA) de 50.1 à 55.8 Hz
- et le 3ème permet de ralentir si besoin les variations du 4-20 mA de 0 à 5 s
Attention, cette petite carte fonctionne, mais n'est pas utilisable en l'état, je l'ai réalisée pour expérimentation avec des anciens composants tombés du tiroir
Les améliorations prévues dans les prochains jours (si temps disponible ...) sont :
- un petit régulateur de tension à découpage à la place du 7810 pour passer de 24 V à 7 V (et non plus 10 V) quasiment sans échauffement
- un optocoupleur simple alternance et une diode de protection inverse externe pour mieux "travailler" la sinusoïde
- un circuit RC au lieu de la résistance de 2 W en entrée d'optocoupleur, là aussi pour diminuer l'échauffement
- et un circuit imprimé propre ! Ici travail au déboucheur lavabo, reste de perchlorure de fer et carte présensibilisée datant de plus de 10 ans ...
Bonne soirée
dB-)