Utiliser un ACS712 pour afficher le courant sur un LCD1602 ou un LCD2004 via le bus I2C

Utiliser un ACS712 pour afficher le courant sur un LCD1602 ou un LCD2004 via le bus I2C

Dans ce tutoriel, nous apprendrons comment utiliser le capteur de courant Allegro ACS712 pour mesurer à la fois le courant alternatif (AC) et le courant continu (DC) et afficher les mesures sur un LCD1602 ou LCD2004 via I2C. Ce projet est particulièrement utile pour surveiller le courant dans diverses applications, offrant un affichage visuel des données de courant en temps réel. À la fin, vous disposerez d'un montage fonctionnel capable d'afficher avec précision les mesures de courant sur un écran LCD.

LCD1602-I2C display module with 4 wires

Pour des précisions sur le câblage et le code, assurez-vous de consulter la vidéo aux horodatages indiqués (dans la vidéo à 00:00).

Le matériel expliqué

Le composant principal de ce projet est le capteur de courant ACS712, qui peut mesurer des courants allant jusqu'à 30 A. Il fonctionne en utilisant l'effet Hall pour convertir le courant qui le traverse en une sortie de tension proportionnelle. Cette sortie de tension peut être lue par l'Arduino pour calculer l'intensité du courant. Le capteur possède trois broches de connexion : VCC pour l'alimentation, GND pour la masse, et OUT pour le signal de tension.

L'affichage LCD1602 ou LCD2004 se connecte via I2C, ce qui permet un câblage et un contrôle plus faciles en n'utilisant que deux broches de données (SDA et SCL) en plus de l'alimentation et de la masse. Cela permet d'afficher simplement les mesures de courant sans encombrer le câblage par de multiples connexions.

Détails de la fiche technique

FabricantAllegro Microsystems
Numéro de pièceACS712ELCTR-30A-T
Tension logique / E/S4.5-5.5 V
Tension d'alimentation5 V
Courant de sortie (par canal)30 A
Recommandations de fréquence PWMNon applicable
Seuils logiques d'entrée0,5 V (sortie au repos)
Chute de tension / RDS(en conduction)/ saturation1,2 mΩ
Limites thermiques150 °C maximum
PaquetTO-220

  • Assurez une dissipation thermique adéquate pour les courants supérieurs à 20 A.
  • Utilisez un calibre de fil approprié (12 AWG pour 30A) pour éviter la surchauffe.
  • Connectez VCC à 5 V et GND à la masse pour un fonctionnement correct.
  • Assurez-vous que la broche OUT est connectée à une broche d'entrée analogique de l'Arduino (par ex. A0).
  • Soyez conscient des différences de sensibilité entre les différents modèles d'ACS712.
  • Utilisez des condensateurs pour le découplage comme indiqué dans la fiche technique.

Instructions de câblage

Arduino wiring for Allegro ACS712 current sensor with LCD

Pour câbler le capteur de courant ACS712 avec l'Arduino et l'écran LCD, commencez par connecter la broche VCC de l'ACS712 à la broche 5V de l'Arduino. Ensuite, connectez la broche GND de l'ACS712 à une broche de masse de l'Arduino. La broche OUT de l'ACS712 doit être connectée à la broche analogiqueA0sur l'Arduino, où le signal de tension sera lu.

Pour le LCD1602 ou le LCD2004, connectez la broche VCC à la broche 5V et la broche GND à la masse. La broche SDA du LCD doit être connectée à la broche SDA de l'Arduino (généralementA4sur un UNO), et la broche SCL doit être connectée à la broche SCL de l'Arduino (généralementA5sur un UNO). Vérifiez que toutes les connexions sont bien fixées pour garantir le bon fonctionnement.

Exemples de code et guide pas à pas

Dans le code, nous définissons la broche d'entrée analogique pour lire la sortie du capteur avec#define VIN A0. Cela nous permet de faire facilement référence à la broche où le capteur est connecté tout au long du programme.

#define VIN A0 // define the Arduino pin A0 as voltage input (V in)
const float VCC   = 5.0; // supply voltage is from 4.5 to 5.5V. Normally 5V.

Ensuite, nous configurons la sensibilité en fonction du modèle de l'ACS712 que nous utilisons. Les valeurs de sensibilité sont stockées dans un tableau, ce qui permet d'y accéder facilement en fonction du modèle sélectionné.

const int model = 2; // enter the model number (0, 1, or 2 for 5A, 20A, or 30A)
float sensitivity[] = {0.185, 0.100, 0.066}; // sensitivity values for each model

Dans lesetup()Dans la fonction, nous initialisons le moniteur série et l'écran LCD. Cela nous permet de consulter les mesures actuelles à la fois sur le LCD et via le moniteur série pour le débogage.

void setup() {
    Serial.begin(9600); // initialize serial monitor
    lcd.begin(); // initialize the LCD
    lcd.backlight(); // turn on the backlight
    lcd.print("Robojax ACS712"); // display initial text
    delay(2000); // wait for 2 seconds
}

Theloop()La fonction lit la tension du capteur, calcule le courant en fonction de la sensibilité et affiche les résultats en conséquence. Si le courant dépasse une limite de coupure spécifiée, elle affiche la valeur ; sinon, elle indique qu'aucun courant n'est détecté.

Démonstration / À quoi s'attendre

Lorsque le circuit est alimenté, l'écran LCD doit afficher "Robojax ACS712" suivi de "Courant : " ainsi que la valeur du courant mesurée en ampères. Si le courant est inférieur à la limite de coupure, l'affichage indiquera "Aucun courant". Soyez prudent lors des tests avec des courants élevés, car le capteur peut chauffer (dans la vidéo à 12:00).

Pour tester le montage, augmentez progressivement le courant traversant l'ACS712 et observez les changements sur l'écran LCD et le moniteur série. Veillez à ce que le courant ne dépasse pas les limites nominales du capteur afin d'éviter tout dommage.

Images

Capteur de courant DC/AC Allegro ACS712 avec LCD1602/LCD2004 I2C avec code Arduino
Capteur de courant DC/AC Allegro ACS712 avec LCD1602/LCD2004 I2C avec code Arduino
LCD1602-I2C display module with 4 wires
LCD1602-I2C display module with 4 wires
LCD1602-I2C display module with 4 wires
LCD1602-I2C display module with 4 wires
ACS712_in_series_with_load
ACS712_in_series_with_load
allegro_ACS712_module-1
allegro_ACS712_module-1
allegro_ACS712_module-2
allegro_ACS712_module-2
allegro_ACS712_module-4
allegro_ACS712_module-4
allegro_ACS712_module-0
allegro_ACS712_module-0
Arduino wiring for Allegro ACS712 current sensor with LCD
Arduino wiring for Allegro ACS712 current sensor with LCD
131-Allegro ACS712 DC/AC current sensor with LCD1602/LCD2004 I2C and Arduino code
Langue: C++
Copié !

Ce dont vous pourriez avoir besoin

Fichiers📁

Bibliothèques Arduino (zip)

Fiche technique (pdf)

Fichier Fritzing