Alimentation par coupure de courant à l'aide d'Arduino

Essayez Notre Instrument Pour Éliminer Les Problèmes





Dans cet article, nous allons construire un éliminateur de batterie / alimentation DC variable qui coupera automatiquement l'alimentation, si le courant circulant à travers la charge dépasse le niveau de seuil prédéfini.

Par Girish Radhakrishanan



Principales caractéristiques techniques

Le circuit d'alimentation à coupure de surintensité proposé utilisant Arduino dispose d'un écran LCD 16 X 2, qui est utilisé pour montrer la tension, le courant, la consommation d'énergie et la limite de courant de seuil prédéfinie en temps réel.

Passionnés d'électronique, nous testons nos prototypes sur une alimentation à tension variable. La plupart d’entre nous possèdent une alimentation variable bon marché qui peut ne pas comporter de mesure de tension / mesure de courant ni de protection intégrée contre les courts-circuits ou les surintensités.



En effet, une alimentation avec ces fonctionnalités mentionnées peut bombarder votre portefeuille et sera surchargée pour un usage amateur.

Les courts-circuits et les surintensités sont un problème pour les débutants aux professionnels et les débutants y sont plus souvent sujets à cause de leur inexpérience, ils peuvent inverser la polarité de l'alimentation ou connecter les composants de manière incorrecte, etc.

Ces choses peuvent provoquer un flux de courant à travers le circuit inhabituellement élevé, ce qui entraîne un emballement thermique dans les composants semi-conducteurs et passifs qui entraîne la destruction de composants électroniques précieux. Dans ces cas, la loi d’Ohm se transforme en ennemi.

Si vous n'avez jamais fait de court-circuit ou de circuit frit, alors félicitations! Vous êtes l'une des rares personnes à être parfaites en électronique ou vous n'essayez jamais quelque chose de nouveau en électronique.

Le projet d'alimentation électrique proposé peut protéger les composants électroniques d'une telle destruction par friture, qui sera suffisamment bon marché pour un amateur d'électronique moyen et assez facile à construire pour qui est légèrement au-dessus du niveau débutant.

La conception

L'alimentation dispose de 3 potentiomètres: un pour régler le contraste de l'écran LCD, un pour régler la tension de sortie allant de 1,2 V à 15 V et le dernier potentiomètre est utilisé pour régler la limite de courant allant de 0 à 2000 mA ou 2 Ampères.

L'écran LCD vous mettra à jour avec quatre paramètres toutes les secondes: la tension, la consommation de courant, la limite de courant prédéfinie et la consommation d'énergie de la charge.

La consommation de courant via la charge sera affichée en milliampères, la limite de courant prédéfinie sera affichée en milliampères et la consommation d'énergie sera affichée en milli-watts.
Le circuit est divisé en 3 parties: l'électronique de puissance, la connexion de l'écran LCD et le circuit de mesure de puissance.

Ces 3 étapes peuvent aider les lecteurs à mieux comprendre le circuit. Voyons maintenant la section électronique de puissance qui contrôle la tension de sortie.

Diagramme schématique:

Alimentation par coupure de courant à l

Le transformateur 12v-0-12v / 3A sera utilisé pour abaisser la tension, les diodes 6A4 convertiront le courant alternatif en tension continue et le condensateur 2000uF lissera l'alimentation CC saccadée des diodes.

Le régulateur 9V fixe LM 7809 convertira le CC non régulé en une alimentation 9V CC régulée. L'alimentation 9V alimentera l'Arduino et le relais. Essayez d'utiliser une prise CC pour l'alimentation d'entrée de l'arduino.

Ne sautez pas ces condensateurs en céramique de 0,1 uF qui offrent une bonne stabilité pour la tension de sortie.

Le LM 317 fournit une tension de sortie variable pour la charge à connecter.

Vous pouvez régler la tension de sortie en tournant le potentiomètre 4,7K ohm.

Cela conclut la section puissance.

Voyons maintenant la connexion d'affichage:

Détails de connexion

Circuit d

Il n'y a rien à expliquer ici, il suffit de câbler l'écran Arduino et LCD selon le schéma de circuit. Ajustez le potentiomètre 10K pour un meilleur contraste de visualisation.

L'écran ci-dessus montre des exemples de lectures pour les quatre paramètres mentionnés.

Étape de mesure de puissance

Voyons maintenant le circuit de mesure de puissance en détail.

Le circuit de mesure de puissance comprend un voltmètre et un ampèremètre. L'Arduino peut mesurer la tension et le courant simultanément en connectant le réseau de résistances selon le schéma de circuit.

réseau de résistances pour l

Détails de connexion de relais pour la conception ci-dessus:

Détails de la connexion du relais Arduino

Les quatre résistances de 10 ohms en parallèle qui forment une résistance shunt de 2,5 ohms qui seront utilisées pour mesurer le flux de courant à travers la charge. Les résistances doivent être d'au moins 2 watts chacune.

Les résistances 10k ohms et 100k ohms aident l'Arduino à mesurer la tension à la charge. Ces résistances peuvent être une avec une puissance nominale normale.

Si vous voulez en savoir plus sur le fonctionnement de l'ampèremètre et du voltmètre basés sur Arduino, consultez ces deux liens:

Voltmètre: https://homemade-circuits.com/2016/09/how-to-make-dc-voltmeter-using-arduino.html

Ampèremètre: https://homemade-circuits.com/2017/08/arduino-dc-digital-ammeter.html

Le potentiomètre 10K ohms est prévu pour régler le niveau de courant maximum à la sortie. Si le courant traversant la charge dépasse le courant préréglé, l'alimentation de sortie sera déconnectée.
Vous pouvez voir le niveau préréglé à l'écran, il sera mentionné comme «LT» (Limite).

Dites par exemple: si vous définissez la limite sur 200, il émettra du courant jusqu'à 199 mA. Si la consommation de courant est égale ou supérieure à 200 mA, la sortie sera immédiatement coupée.

La sortie est activée et désactivée par la broche Arduino # 7. Lorsque cette broche est haute, le transistor alimente le relais qui relie les broches communes et normalement ouvertes, qui conduit l'alimentation positive de la charge.

La diode IN4007 absorbe l'EMF haute tension de retour de la bobine de relais tout en activant et désactivant le relais.

Code de programme:

//------------------Program Developed by R.GIRISH------------------//
#include
#define input_1 A0
#define input_2 A1
#define input_3 A2
#define pot A3
LiquidCrystal lcd(12, 11, 5, 4, 3, 2)
int Pout = 7
int AnalogValue = 0
int potValue = 0
int PeakVoltage = 0
int value = 0
int power = 0
float AverageVoltage = 0
float input_A0 = 0
float input_A1 = 0
float output = 0
float Resolution = 0.00488
float vout = 0.0
float vin = 0.0
float R1 = 100000
float R2 = 10000
unsigned long sample = 0
int threshold = 0
void setup()
{
lcd.begin(16,2)
Serial.begin(9600)
pinMode(input_3, INPUT)
pinMode(Pout, OUTPUT)
pinMode(pot, INPUT)
digitalWrite(Pout, HIGH)
}
void loop()
{
PeakVoltage = 0
value = analogRead(input_3)
vout = (value * 5.0) / 1024
vin = vout / (R2/(R1+R2))
if (vin <0.10)
{
vin = 0.0
}
for(sample = 0 sample <5000 sample ++)
{
AnalogValue = analogRead(input_1)
if(PeakVoltage {
PeakVoltage = AnalogValue
}
else
{
delayMicroseconds(10)
}
}
input_A0 = PeakVoltage * Resolution
PeakVoltage = 0
for(sample = 0 sample <5000 sample ++)
{
AnalogValue = analogRead(input_2)
if(PeakVoltage {
PeakVoltage = AnalogValue
}
else
{
delayMicroseconds(10)
}
}
potValue = analogRead(pot)
threshold = map(potValue, 0, 1023, 0, 2000)
input_A1 = PeakVoltage * Resolution
output = (input_A0 - input_A1) * 100
output = output * 4
power = output * vin
while(output >= threshold || analogRead(input_1) >= 1010)
{
digitalWrite(Pout, LOW)
while(true)
{
lcd.clear()
lcd.setCursor(0,0)
lcd.print('Power Supply is')
lcd.setCursor(0,1)
lcd.print('Disconnected.')
delay(1500)
lcd.clear()
lcd.setCursor(0,0)
lcd.print('Press Reset the')
lcd.setCursor(0,1)
lcd.print('Button.')
delay(1500)
}
}
while(output >= threshold || analogRead(input_2) >= 1010)
{
digitalWrite(Pout, LOW)
while(true)
{
lcd.clear()
lcd.setCursor(0,0)
lcd.print('Power Supply is')
lcd.setCursor(0,1)
lcd.print('Disconnected.')
delay(1500)
lcd.clear()
lcd.setCursor(0,0)
lcd.print('Press Reset the')
lcd.setCursor(0,1)
lcd.print('Button.')
delay(1500)
}
}
lcd.clear()
lcd.setCursor(0,0)
lcd.print('V=')
lcd.print(vin)
lcd.setCursor(9,0)
lcd.print('LT=')
lcd.print(threshold)
lcd.setCursor(0,1)
lcd.print('I=')
lcd.print(output)
lcd.setCursor(9,1)
lcd.print('P=')
lcd.print(power)
Serial.print('Volatge Level at A0 = ')
Serial.println(analogRead(input_1))
Serial.print('Volatge Level at A1 = ')
Serial.println(analogRead(input_2))
Serial.print('Voltage Level at A2 = ')
Serial.println(analogRead(input_3))
Serial.println('------------------------------')
}

//------------------Program Developed by R.GIRISH------------------//

À ce jour, vous auriez acquis suffisamment de connaissances pour construire une alimentation qui vous protège des composants et modules électroniques précieux.

Si vous avez des questions spécifiques concernant ce circuit d'alimentation à coupure de surintensité utilisant Arduino, n'hésitez pas à demander dans la section des commentaires, vous pouvez recevoir une réponse rapide.




Précédent: Créez cet ampèremètre numérique avancé à l'aide d'Arduino Suivant: Introduction à l'EEPROM dans Arduino