Allegro ACS758 capteur de courant avec écran LCD et protection contre les surintensités pour Arduino

Allegro ACS758 capteur de courant avec écran LCD et protection contre les surintensités pour Arduino

Dans ce tutoriel, nous apprendrons comment utiliser le capteur de courant Allegro ACS758 avec un écran LCD pour afficher les relevés de courant et mettre en œuvre une protection contre les surintensités. Cette configuration permet de surveiller le courant et de déconnecter la charge automatiquement si celui-ci dépasse une limite prédéfinie. Le projet combine matériel et logiciel pour créer un système de surveillance du courant fonctionnel.

En suivant ce guide, vous serez en mesure de câbler correctement les composants et de comprendre la logique de programmation du code. Pour une explication plus visuelle, consultez la vidéo associée (à 00:00).

Le matériel expliqué

Les composants clés de ce projet comprennent le capteur de courant Allegro ACS758, un afficheur LCD1602 avec interface I2C, et une carte Arduino. Le capteur ACS758 mesure le courant qui le traverse et fournit une tension proportionnelle au courant. Le LCD1602 affiche les mesures de courant et les messages d'état, tandis que l'Arduino traite les données et commande le relais pour la protection contre les surintensités.

Le capteur ACS758 fonctionne selon un principe appelé détection par effet Hall, qui lui permet de mesurer le courant sans contact électrique direct. La tension de sortie varie en fonction de l'intensité du courant le traversant, offrant un moyen sûr et efficace de surveiller les charges électriques.

Détails de la fiche technique

Fabricant Allegro MicroSystems
Numéro de pièce ACS758
Tension logique / E/S 3.3V / 5V
Tension d'alimentation 5 V
Courant de sortie (par canal) 200 A max
Courant de crête (par canal) 200A
Recommandations sur la fréquence PWM Sans objet
Seuils logiques d'entrée 0,5 × VCC (bidirectionnel)
Chute de tension / RDS(on)/ saturation Sans objet
Limites thermiques 150 °C
Paquet montage sur circuit imprimé
Notes / variantes Plusieurs modèles disponibles pour différentes plages de courant

  • Assurez une dissipation thermique adéquate si l'appareil fonctionne près des limites maximales.
  • Utilisez des condensateurs de découplage pour stabiliser la tension d'alimentation.
  • Vérifiez que le relais utilisé peut supporter le courant de charge maximal.
  • Soyez prudent avec le câblage pour éviter les courts-circuits.
  • Parmi les pièges courants figurent les entrées flottantes ; assurez-vous que toutes les connexions sont bien établies.
  • Surveillez la surchauffe du capteur lors d'une utilisation prolongée.

Composants nécessaires

  • Capteur de courant ACS758
  • relais 12 V 100 A
  • LCD1602 avec I2C (4 fils)
  • Transistor 2N2222 ou 2N3904
  • 1 kΩ 1/4 W ou toute résistance de puissance
  • Alimentation pour relais
  • Alimentation pour votre charge
  • Plaque d'essai
  • Fils de connexion

Instructions de câblage

Arduino wiring for ACS758 current sensor with LCD and protection relay
Arduino wiring for ACS758 current sensor with LCD and protection relay

Pour câbler le capteur de courant Allegro ACS758 et l'écran LCD1602, commencez par connecter le capteur ACS758. Connectez leVCCbroche du capteur à la broche 5V de l'Arduino. LeGNDLa broche doit être connectée à une broche de masse sur l'Arduino. LeSLa broche (signal) du capteur doit être connectée à la broche d'entrée analogique.A0sur l'Arduino.

Ensuite, pour le LCD1602, connectez leVCCbroche sur la broche 5V de l'Arduino et leGNDÉpingler au sol. LeSDALa broche de l'écran LCD doit être connectée à laA4la broche (SDA) de l'Arduino, tandis que leSCLla broche devrait se connecter àA5La broche (SCL) de l'Arduino. Enfin, connectez un module relais à la broche numérique2pour contrôler la charge en fonction des mesures de courant.

Exemples de code et guide pas à pas

Dans le code Arduino, nous commençons par définir des identifiants clés tels queVIN, qui représente la broche d'entrée analogique connectée au capteur ACS758. LerelayPinest configuré pour la commande du relais, tandis quemaxCurrentdéfinit le seuil de protection contre les surintensités.

#define VIN A0 // define the Arduino pin A0 as voltage input (V in)
const int relayPin = 2; // set a digital pin for relay
const float maxCurrent = 15.00; // set maximum Current

Lesetup()La fonction initialise l'écran LCD et configure la broche du relais en sortie. Elle affiche également un message de bienvenue sur l'écran LCD, informant l'utilisateur du capteur de courant utilisé.

void setup() {
    pinMode(relayPin, OUTPUT); // set relayPin as output
    Serial.begin(9600); // initialize serial monitor
    lcd.begin(); // initialize the LCD
    lcd.backlight(); // Turn on the blacklight
    lcd.print("Robojax");
}

Dans leloop()Dans la fonction, nous lisons en continu la tension du capteur et calculons le courant. Si le courant dépasse la valeur maximale, le relais est activé pour déconnecter la charge. Cette logique garantit que le système se protège contre les surintensités.

void loop() {
  float voltage_raw = (5.0 / 1023.0) * analogRead(VIN); // Read the voltage from sensor
  float current = voltage / FACTOR; // Calculate current
  if (current >= minCurrent) {
    if (current <= maxCurrent) {
      digitalWrite(relayPin, LOW); // turn the relay OFF to allow current
    } else {
      digitalWrite(relayPin, HIGH); // turn the relay ON to disconnect current
    }
  }
}

Démonstration / À quoi s'attendre

Une fois que tout est câblé et que le code est téléversé, l'écran LCD affichera les valeurs de courant. Si le courant dépasse le seuil définimaxCurrent, le relais s'activera, déconnectant la charge. Vous pouvez tester cela en augmentant progressivement le courant de charge et en observant les changements sur l'écran LCD et dans le moniteur série. Veillez à éviter les connexions de polarité inversée, car cela peut endommager les composants (dans la vidéo à 10:15).

Images

LCD1602-I2C display module with 4 wires
LCD1602-I2C display module with 4 wires
ACS758-sensor-0
ACS758-sensor-0
ACS758-sensor-1
ACS758-sensor-1
ACS758-sensor-3
ACS758-sensor-3
ACS758-sensor-4
ACS758-sensor-4
Arduino wiring for ACS758 current sensor with LCD and protection relay
Arduino wiring for ACS758 current sensor with LCD and protection relay
111-Arduino Code for Allegro ACS758 Current Sensor with LCD160
Langue: C++
Copié !

Ce dont vous pourriez avoir besoin

Fichiers📁

Fiche technique (pdf)