Mesure du courant à l'aide d'un capteur de courant Allegro ACS758 et d'un écran OLED SSD1306 pour Arduino

Mesure du courant à l'aide d'un capteur de courant Allegro ACS758 et d'un écran OLED SSD1306 pour Arduino

Ce tutoriel vous guidera à travers le processus de mesure du courant à l'aide du capteur Allegro ACS758 et vous montrera comment afficher les résultats sur un écran OLED SSD1306. Le projet consistera à mesurer le courant circulant dans un circuit et à représenter visuellement ces données sur l'écran OLED, permettant une surveillance facile. Vous apprendrez comment connecter les composants, écrire le code et comprendre comment tout fonctionne ensemble.

SSD1306 OLED display

Si vous souhaitez comprendre le code et son fonctionnement, assurez-vous de regarder la vidéo pour des explications plus détaillées (dans la vidéo à 02:45).

Le matériel expliqué

Les principaux composants de ce projet comprennent le capteur de courant Allegro ACS758 et l'écran OLED SSD1306. L'ACS758 est un capteur de courant à effet Hall qui mesure le courant circulant dans un conducteur avec une grande précision et fournit une tension de sortie proportionnelle à ce courant. Il peut supporter des courants allant jusqu'à 200 A et fonctionne sous une alimentation de 3,3 V ou 5 V.

L'afficheur OLED SSD1306 est un écran compact et peu gourmand en énergie qui communique via I2C. Il est couramment utilisé dans les projets Arduino en raison de sa facilité d'intégration et de sa capacité à afficher clairement des graphiques et du texte. Ensemble, ces composants créent un outil puissant pour surveiller le courant dans diverses applications.

Détails de la fiche technique

FabricantAllegro Microsystems
Numéro de pièceACS758ECB-200U
Tension logique/E/S3,3 V / 5 V
Tension d'alimentation5 V
Courant de sortie (par canal)200 A
Courant de crête (par canal)200 A
Directives sur la fréquence PWMSans objet
Seuils logiques d'entrée0.3 V (basse), 2.7 V (haute)
Chute de tension / RDS(en conduction)/ saturation0,05 V
Limites thermiques-40 à 125 °C
PaquetSOIC à 8 broches
Notes / variantesModèles bidirectionnels et unidirectionnels disponibles

  • Assurez-vous que le capteur ACS758 est correctement orienté pour des mesures précises.
  • Utilisez un dissipateur thermique si l'appareil fonctionne près des limites maximales de courant pour éviter la surchauffe.
  • Découplez l'alimentation du capteur pour un fonctionnement stable.
  • Vérifiez les connexions de câblage pour éviter les entrées flottantes qui pourraient entraîner des lectures erronées.
  • Calibrez la sortie du capteur pour assurer des mesures de courant précises.

Instructions de câblage

Arduino wriing for Allegro ACS758 current sensor with OLED SSD1306 128x32 and 128x64
Arduino wriing for Allegro ACS758 current sensor with OLED SSD1306 128x32 and 128x64

Pour câbler le capteur de courant Allegro ACS758 et l'écran OLED SSD1306, commencez par connecter l'alimentation. Connectez la broche VCC de l'ACS758 à la sortie 5V de votre Arduino, et reliez la broche GND à la masse (GND) de l'Arduino. La broche de sortie du signal (Vout) de l'ACS758 doit être connectée à l'entrée analogique A0 de l'Arduino.

Ensuite, pour l'écran OLED SSD1306, connectez la broche VCC à la sortie 5V de l'Arduino et la broche GND à la masse. Connectez la broche SDA de l'OLED à la broche SDA de l'Arduino (A4 sur la plupart des cartes Arduino) et la broche SCL de l'OLED à la broche SCL (A5 sur la plupart des cartes Arduino). Assurez-vous que toutes les connexions sont sécurisées pour un fonctionnement fiable.

Exemples de code et guide pas à pas

#define VIN A0 // define the Arduino pin A0 as voltage input (V in)
const float VCC = 5.0; // supply voltage 5V or 3.3V
const int model = 2; // enter the model (see below)

Dans le code, la variableVINest affecté à la broche analogique A0, qui lira la tension du capteur ACS758. LeVCCLa variable règle la tension d'alimentation, et lamodelLa variable définit quel modèle ACS758 est utilisé, ce qui affecte la sensibilité et les calculs de la tension de sortie.

void loop() {
  float voltage_raw = (5.0 / 1023.0) * analogRead(VIN); // Read the voltage from sensor
  float current = voltage / FACTOR; // Calculate the current based on voltage
}

À l'intérieur duloop()fonction, le code lit la tension brute du capteur en utilisantanalogRead(VIN)et le convertit en une valeur de courant en fonction de la sensibilité définie. Cela permet de surveiller en temps réel le courant circulant dans le circuit.

if(abs(voltage) > cutOff) {
    display.clearDisplay();
    robojaxText("Current:", 0, 22, 2, false);
}

Cette instruction conditionnelle vérifie si la valeur absolue de la tension est supérieure à lacutOfflimit. Si vrai, il efface l'affichage et met à jour l'écran OLED avec la mesure de courant actuelle. Cela garantit que seules les valeurs de courant significatives sont affichées, évitant l'encombrement de l'affichage.

Démonstration / À quoi s'attendre

Lorsque vous exécutez le programme, l'écran OLED affichera le courant mesuré en temps réel. S'il n'y a pas de courant, l'écran affichera le message Aucun courant. Assurez-vous que les connexions sont correctes pour éviter des problèmes tels que l'inversion de polarité, qui pourrait entraîner des mesures inexactes (dans la vidéo à 05:30).

Images

SSD1306 OLED displaying text
SSD1306 OLED displaying text
SSD1306 OLED display
SSD1306 OLED display
ACS758-sensor-6-pins
ACS758-sensor-6-pins
ACS758-sensor-0
ACS758-sensor-0
ACS758-sensor-1
ACS758-sensor-1
ACS758-sensor-4
ACS758-sensor-4
Arduino wriing for Allegro ACS758 current sensor with OLED SSD1306 128x32 and 128x64
Arduino wriing for Allegro ACS758 current sensor with OLED SSD1306 128x32 and 128x64
110-Allegro ACS758 current sensor with SSD1306 OLED display for Arduino
Langue: C++
Copié !

Ce dont vous pourriez avoir besoin

Ressources et références

Aucune ressource pour le moment.

Fichiers📁

Bibliothèques Arduino (zip)

Fichier Fritzing

Manuel de l'Utilisateur