B25 0-25V Module Capteur de Tension

Disponibilité:

289 en stock

Comparer
UGS : 0170 Catégories : ,

Description

Module Capteur de Tension B25 0-25V

Le module capteur de tension B25 permet de mesurer des tensions continues (DC) jusqu’à 25V. Ce module est basé sur le principe du diviseur de tension résistif, ce qui permet de réduire toute tension d’entrée par un facteur de 5. Cela permet d’utiliser la broche d’entrée analogique d’un microcontrôleur pour surveiller des tensions plus élevées que ce qu’elle peut normalement détecter.

Caractéristiques en détail

  • Tension d’entrée : 0 à 25V
  • Plage de détection de tension : 0.02445V à 25V
  • Résolution de la tension analogique : 0.00489V
  • Dimensions : 4 × 3 × 2 cm
  • Pas de composants externes nécessaires
  • Facile à utiliser avec les microcontrôleurs
  • Petit, peu coûteux et facilement disponible

Fonctionnement

Le capteur de tension B25 utilise un diviseur de tension résistif pour réduire la tension d’entrée. Le circuit interne est constitué de deux résistances (R1 = 30K ohms et R2 = 7.5K ohms), ce qui permet de diviser la tension d’entrée par un facteur de 5. Cela permet à la broche analogique de l’Arduino de mesurer des tensions allant jusqu’à 25V.

Applications

  • Surveillance de la tension
  • Détection de pannes de courant
  • Commutation de sécurité
  • Contrôle de l’alimentation

Brochage

  • VCC : Connecter à la borne positive de la source de tension externe (0-25V)
  • GND : Connecter à la borne négative de la source de tension externe
  • S : Connecter à une broche analogique de l’Arduino (par exemple, A0)
  • + : Non connecté
  • : Connecter à la masse (GND) de l’Arduino

Comment l’utiliser

Pour utiliser le capteur de tension B25 avec un Arduino, connectez la broche VCC à la source de tension à mesurer, la broche GND à la masse de la source de tension, et la broche S à une entrée analogique de l’Arduino (par exemple, A0). La broche – doit être connectée à la masse de l’Arduino.

Comment l’utiliser avec Arduino Uno

Exemple de code Arduino de base

#define ANALOG_IN_PIN A0


void setup() {
  Serial.begin(9600);
}


void loop() {
  int sensorValue = analogRead(ANALOG_IN_PIN);
  float voltage = sensorValue * (5.0 / 1023.0) * 5.0; // Facteur de conversion pour 25V
  Serial.print("Voltage: ");
  Serial.print(voltage);
  Serial.println(" V");
  delay(1000);
}

But du code

Ce code lit les valeurs analogiques du capteur de tension et les convertit en tension réelle en utilisant la formule appropriée. Les valeurs de tension sont affichées sur le moniteur série.

Composants nécessaires pour le code de base

  • Arduino Uno
  • Module capteur de tension B25
  • Câbles de connexion

Explication détaillée du code de base

  1. Initialisation : La communication série est établie à 9600 bauds.
  2. Lecture des données : Les valeurs analogiques du capteur sont lues et converties en tension. La tension est ensuite multipliée par 5 pour correspondre à la plage de mesure du capteur (0-25V). Les valeurs de tension sont affichées sur le moniteur série.

Brochage détaillé des connexions du code de base

  • VCC : Connecter à la borne positive de la source de tension (0-25V)
  • GND : Connecter à la borne négative de la source de tension
  • S : Connecter à A0 (Arduino)
  • : Connecter à GND (Arduino)

Exemple de code Arduino avancé pour affichage sur LCD

#include <LiquidCrystal_I2C.h>


// Constantes
const float V_REF = 5.0;
const int ADC_RESOLUTION = 1023;
const float DIVIDER_RATIO = 5.0;
const int VOLTAGE_SENSOR_PIN = A0;
const int DELAY_TIME = 1000; // Délai entre les lectures
const float MAX_VOLTAGE = 25.0; // Tension maximale mesurable


LiquidCrystal_I2C lcd(0x27, 16, 2);


void setup() {
  lcd.begin();
  lcd.backlight();
  Serial.begin(9600);
}


void readSensorValue(int& sensorValue) {
  sensorValue = analogRead(VOLTAGE_SENSOR_PIN);
}


float calculateVoltage(int sensorValue) {
  if (ADC_RESOLUTION == 0) {
    Serial.println("Erreur: ADC_RESOLUTION est zéro.");
    return 0.0;
  }


  float adc_voltage = sensorValue * (V_REF / ADC_RESOLUTION);
  float voltage = adc_voltage * DIVIDER_RATIO;


  if (voltage > MAX_VOLTAGE) {
    Serial.println("Erreur: Tension hors plage.");
    return 0.0;
  }


  return voltage;
}


void displayValuesOnLCD(float voltage) {
  static float lastVoltage = -1.0;


  if (voltage != lastVoltage) {
    lcd.clear();
    lcd.setCursor(0, 0);
    lcd.print("Voltage: ");
    lcd.print(voltage, 2); // Affiche la tension avec 2 décimales
    lcd.print(" V");
    lastVoltage = voltage;
  }
}


void displayValuesOnSerialConsole(float voltage) {
  Serial.print("Voltage: ");
  Serial.print(voltage, 2);
  Serial.println(" V");
}


void loop() {
  int sensorValue;
  readSensorValue(sensorValue);
  float voltage = calculateVoltage(sensorValue);
  displayValuesOnLCD(voltage);
  displayValuesOnSerialConsole(voltage);
  delay(DELAY_TIME);
}

Explication détaillée du code amélioré

  1. Inclusion de la bibliothèque La bibliothèque LiquidCrystal_I2C.h est incluse pour permettre la communication avec un écran LCD utilisant le protocole I2C.
  2. Définition des constantes Les constantes définissent la tension de référence (V_REF), la résolution de l’ADC (ADC_RESOLUTION), le ratio du diviseur de tension (DIVIDER_RATIO), la broche de connexion du capteur de tension (VOLTAGE_SENSOR_PIN), le délai entre les lectures (DELAY_TIME), et la tension maximale mesurable (MAX_VOLTAGE).
  3. Initialisation de l’écran LCD La fonction setup() initialise l’écran LCD en appelant les méthodes begin() et backlight() de la bibliothèque LiquidCrystal_I2C. Elle initialise également la communication série à une vitesse de 9600 bauds.
  4. Lecture des valeurs des capteurs La fonction readSensorValue(int& sensorValue) lit la valeur analogique du capteur de tension et la stocke dans la variable sensorValue.
  5. Calcul de la tension La fonction calculateVoltage(int sensorValue) calcule la tension en multipliant la valeur lue par la tension de référence, divisée par la résolution de l’ADC, et par le ratio du diviseur de tension. Elle vérifie également la division par zéro pour ADC_RESOLUTION et si la tension calculée dépasse la tension maximale définie (MAX_VOLTAGE).
  6. Affichage des valeurs sur l’écran LCD La fonction displayValuesOnLCD(float voltage) affiche la valeur de tension sur l’écran LCD avec deux décimales de précision. Pour éviter une mise à jour inefficace, elle n’efface et réécrit l’écran que si la valeur de tension a changé.
  7. Affichage des valeurs sur la console série La fonction displayValuesOnSerialConsole(float voltage) envoie la valeur de tension à la console série, avec deux décimales de précision.
  8. Boucle principale La boucle loop() lit les valeurs des capteurs de tension, calcule les valeurs réelles, et les affiche sur l’écran LCD et la console série. Elle attend ensuite une seconde avant de recommencer, grâce à l’appel de la fonction delay(DELAY_TIME).

 

 

Mots clés: voltage, sensor, Capteur de tension, B25, Arduino, Mesure de tension, Diviseur de tension, Capteur analogique, Arduino tutoriel, Module capteur.