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
- Initialisation : La communication série est établie à 9600 bauds.
- 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é
- 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. - 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
). - Initialisation de l’écran LCD La fonction
setup()
initialise l’écran LCD en appelant les méthodesbegin()
etbacklight()
de la bibliothèqueLiquidCrystal_I2C
. Elle initialise également la communication série à une vitesse de 9600 bauds. - Lecture des valeurs des capteurs La fonction
readSensorValue(int& sensorValue)
lit la valeur analogique du capteur de tension et la stocke dans la variablesensorValue
. - 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 pourADC_RESOLUTION
et si la tension calculée dépasse la tension maximale définie (MAX_VOLTAGE
). - 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é. - 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. - 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 fonctiondelay(DELAY_TIME)
.
Mots clés: voltage, sensor, Capteur de tension, B25, Arduino, Mesure de tension, Diviseur de tension, Capteur analogique, Arduino tutoriel, Module capteur.