KY-025 Module Reed
Si un champ magnétique est détecté, il est transmis à la sortie numérique.
- Arduino
- Raspberry Pi
- Raspberry Pi Pico
- Micro:Bit
Ce module contient un capteur magnétique Reed analogique qui détecte un champ magnétique et transmet cette information à la sortie numérique. Les contacts Reed sont constitués de deux minces ressorts de contact dans un tube en verre qui se rapprochent l'un de l'autre en présence d'un champ magnétique. Cela permet de fermer un contact électrique et de faire passer le signal.
Lorsque le capteur détecte un champ magnétique, il ferme le contact et émet un signal numérique. Cela rend le capteur magnétique Reed idéal pour les applications où la présence d'un aimant doit être détectée, comme par exemple dans les alarmes de portes et de fenêtres, les capteurs de position ou d'autres systèmes de sécurité et de surveillance. La simplicité de fonctionnement et la fiabilité du capteur magnétique Reed en font un composant utile pour de nombreux projets dans lesquels des champs magnétiques doivent être détectés.
Note de l'utilisateur
Ce capteur convient parfaitement à la mesure de valeurs seuils. Cela signifie que le capteur émet un signal numérique élevé dès qu'une valeur seuil fixée par l'utilisateur sur le potentiomètre rotatif est dépassée. Il convient de noter ici que le signal numérique est une comparaison entre la valeur réglée sur le potentiomètre rotatif et la valeur mesurée sur le capteur, qui sont ensuite comparées par le comparateur LM393 installé sur la carte. La valeur réglée sur le potentiomètre rotatif est la valeur seuil, qui est utilisée pour définir un signal logique haut.
Sortie numérique: Si un champ magnétique est détecté, un signal est émis ici.
Sortie analogique: Valeur de mesure directe de l'unité de détection
LED1: Indique que le capteur est alimenté en tension
LED2: Indique qu'un champ magnétique a été détecté
Fonctionnement du capteur
Ce capteur comporte deux composants fonctionnels sur son circuit imprimé : L'unité de capteur avant, qui mesure physiquement l'environnement et le transmet sous forme de signal analogique à la seconde unité, le comparateur. Le comparateur compare la valeur mesurée par le capteur avec la valeur réglée sur le potentiomètre rotatif et émet un signal logique élevé sur la broche numérique et la LED L1 si la valeur réglée sur le potentiomètre rotatif est dépassée.
Veuillez noter. Veuillez noter. Le signal est inversé. Si une valeur élevée est mesurée, cela se traduit par une valeur de tension plus faible à la sortie analogique.
Le potentiomètre rotatif peut être réglé comme suit :
Ce capteur ne donne pas de valeurs absolues (par exemple, la température exactement mesurée en °C ou l'intensité du champ magnétique en mT), mais il s'agit d'une mesure relative : une valeur limite est définie par rapport à la situation environnementale normale donnée et un signal est donné qui peut être traité ultérieurement si cette valeur limite est dépassée ou si une autre condition que le cas normal s'est produite.
Ce comportement est idéal pour la surveillance de la température (KY-028), les capteurs de proximité (KY-024, KY-025, KY-036), des moniteurs d'alarme (KY-037, KY-038) ou des codeurs (KY-026).
Affectation des broches
Arduino | Capteur |
---|---|
5V | +V |
GND | GND |
Pin 3 | Signal numérique |
Pin A0 | Signal analogique |
Exemple de code
Le programme lit la valeur de la tension actuelle, qui peut être mesurée sur la sortie analogique, et la sort sur l'interface série. En outre, l'état de la broche numérique est également indiqué dans la console, ce qui signifie que la valeur est passée sous la valeur limite ou non.
Pour charger l'exemple de code suivant sur votre Arduino, nous vous recommandons d'utiliser l'IDE Arduino. Dans l'IDE, vous pouvez choisir le port et la carte qui conviennent à votre appareil.
Copiez le code ci-dessous dans votre IDE. Pour télécharger le code sur votre Arduino, il vous suffit de cliquer sur le bouton " Upload ".
// Déclaration et initialisation des broches d'entrée
int analog_input = A0; // Sortie analogique du capteur
int digital_input = 3; // Sortie numérique du capteur
void setup () {
pinMode(analog_input, INPUT);
pinMode(digital_input, INPUT);
Serial.begin(9600); // Sortie série à 9600 bps
Serial.println("KY-025 Détection de champs magnétiques");
}
// Le programme lit les valeurs actuelles des broches d'entrée
// et les affiche sur la sortie sérielle
void loop () {
float analog_value;
int digital_value;
//Les valeurs actuelles sont lues, converties en valeur de tension...
analog_value = analogRead(analog_input) * (5.0 / 1023.0);
digital_value = digitalRead(digital_input);
//... et émis à cet endroit
Serial.print("Valeur de tension analogique: ");
Serial.print(analog_value, 4);
Serial.print(" V, \t Valeur limite: ");
if (digital_value == 1) {
Serial.println("atteint");
}
else {
Serial.println("pas encore atteint");
}
Serial.println("----------------------------------------------------------------");
delay(1000);
}
Ce module contient un capteur magnétique Reed analogique qui détecte un champ magnétique et transmet cette information à la sortie numérique. Les contacts Reed sont constitués de deux minces ressorts de contact dans un tube en verre qui se rapprochent l'un de l'autre en présence d'un champ magnétique. Cela permet de fermer un contact électrique et de faire passer le signal.
Lorsque le capteur détecte un champ magnétique, il ferme le contact et émet un signal numérique. Cela rend le capteur magnétique Reed idéal pour les applications où la présence d'un aimant doit être détectée, comme par exemple dans les alarmes de portes et de fenêtres, les capteurs de position ou d'autres systèmes de sécurité et de surveillance. La simplicité de fonctionnement et la fiabilité du capteur magnétique Reed en font un composant utile pour de nombreux projets dans lesquels des champs magnétiques doivent être détectés.
Note de l'utilisateur
Ce capteur convient parfaitement à la mesure de valeurs seuils. Cela signifie que le capteur émet un signal numérique élevé dès qu'une valeur seuil fixée par l'utilisateur sur le potentiomètre rotatif est dépassée. Il convient de noter ici que le signal numérique est une comparaison entre la valeur réglée sur le potentiomètre rotatif et la valeur mesurée sur le capteur, qui sont ensuite comparées par le comparateur LM393 installé sur la carte. La valeur réglée sur le potentiomètre rotatif est la valeur seuil, qui est utilisée pour définir un signal logique haut.
Sortie numérique: Si un champ magnétique est détecté, un signal est émis ici.
Sortie analogique: Valeur de mesure directe de l'unité de détection
LED1: Indique que le capteur est alimenté en tension
LED2: Indique qu'un champ magnétique a été détecté
Fonctionnement du capteur
Ce capteur comporte deux composants fonctionnels sur son circuit imprimé : L'unité de capteur avant, qui mesure physiquement l'environnement et le transmet sous forme de signal analogique à la seconde unité, le comparateur. Le comparateur compare la valeur mesurée par le capteur avec la valeur réglée sur le potentiomètre rotatif et émet un signal logique élevé sur la broche numérique et la LED L1 si la valeur réglée sur le potentiomètre rotatif est dépassée.
Veuillez noter. Veuillez noter. Le signal est inversé. Si une valeur élevée est mesurée, cela se traduit par une valeur de tension plus faible à la sortie analogique.
Le potentiomètre rotatif peut être réglé comme suit :
Ce capteur ne donne pas de valeurs absolues (par exemple, la température exactement mesurée en °C ou l'intensité du champ magnétique en mT), mais il s'agit d'une mesure relative : une valeur limite est définie par rapport à la situation environnementale normale donnée et un signal est donné qui peut être traité ultérieurement si cette valeur limite est dépassée ou si une autre condition que le cas normal s'est produite.
Ce comportement est idéal pour la surveillance de la température (KY-028), les capteurs de proximité (KY-024, KY-025, KY-036), des moniteurs d'alarme (KY-037, KY-038) ou des codeurs (KY-026).
Affectation des broches
Raspberry Pi | Capteur |
---|---|
GPIO 24 [Pin 18] | Signal numérique |
3,3 V [Pin 1] | +V |
GND [Pin 6] | GND |
- | Signal analogique |
Capteur | KY-053 |
---|---|
Signal analogique | A0 |
Signal numérique | - |
+V | - |
GND | - |
Raspberry Pi | KY-053 |
---|---|
GPIO 3 [Pin 5] | SCL |
GPIO 2 [Pin 3] | SDA |
3,3 V [Pin 17] | +V |
GND [Pin 14] | GND |
Capteur analogique, il faut donc respecter les points suivants.
Contrairement à l'Arduino, le Raspberry Pi n'a pas d'entrées analogiques ou il n'y a pas d'ADC (convertisseur analogique numérique) intégré dans la puce du Raspberry Pi. Cela limite le Raspberry Pi, si vous voulez utiliser des capteurs, où les valeurs de sortie ne sont pas numériques [valeur de tension dépassée -> valeur numérique ON | valeur de tension sous-cotée -> valeur numérique OFF | exemple : bouton enfoncé [ON] bouton relâché [OFF]], mais il doit s'agir d'une valeur variable continue (exemple : potentiomètre -> autre position = autre valeur de tension).
Pour éviter ce problème, notre kit de capteur X40 a le KY-053, un module avec ADC précis de 16 bits, que vous pouvez utiliser sur le Raspberry pour l'étendre avec 4 entrées analogiques. Il est connecté au Raspberry Pi via I2C, prend en charge la mesure analogique et transmet la valeur numérique au Raspberry Pi.
Ainsi, nous recommandons de connecter le module KY-053 avec ledit ADC entre les capteurs analogiques de cet ensemble. Pour plus d'informations, veuillez consulter la page d'information sur le convertisseur analogique-numérique KY-053 Analog Digital Converter information page.
Exemple de code
Attention! L'utilisation de ce module, en combinaison avec le convertisseur analogique-numérique KY-053, nécessite la mise en place d'un environnement virtuel. Vous trouverez toutes les informations nécessaires à cet effet ici.
import time
import board
import busio
import adafruit_ads1x15.ads1115 as ADS
from adafruit_ads1x15.analog_in import AnalogIn
from gpiozero import DigitalInputDevice
# Créer le bus I2C
i2c = busio.I2C(board.SCL, board.SDA)
# Créer l'objet ADC avec le bus I2C
ads = ADS.ADS1115(i2c)
# Créer des entrées asymétriques sur les canaux
chan0 = AnalogIn(ads, ADS.P0)
chan1 = AnalogIn(ads, ADS.P1)
chan2 = AnalogIn(ads, ADS.P2)
chan3 = AnalogIn(ads, ADS.P3)
delayTime = 1
# Initialisation de l'appareil d'entrée numérique pour le capteur au niveau du GPIO 24
digital_pin = DigitalInputDevice(24, pull_up=False) # pull_up=False, parce que pull_up_down=GPIO.PUD_OFF
while True:
analog = '%.2f' % chan0.voltage
# Sortie vers la console
if not digital_pin.is_active:
print("Valeur de la tension analogique:", analog, "V, ", "Valeur limite : pas encore atteinte")
else:
print("Valeur de la tension analogique:", analog, "V, ", "Valeur limite : atteinte")
print("---------------------------------------")
# Réinitialisation + délai
time.sleep(delayTime)
Ce module contient un capteur magnétique Reed analogique qui détecte un champ magnétique et transmet cette information à la sortie numérique. Les contacts Reed sont constitués de deux minces ressorts de contact dans un tube en verre qui se rapprochent l'un de l'autre en présence d'un champ magnétique. Cela permet de fermer un contact électrique et de faire passer le signal.
Lorsque le capteur détecte un champ magnétique, il ferme le contact et émet un signal numérique. Cela rend le capteur magnétique Reed idéal pour les applications où la présence d'un aimant doit être détectée, comme par exemple dans les alarmes de portes et de fenêtres, les capteurs de position ou d'autres systèmes de sécurité et de surveillance. La simplicité de fonctionnement et la fiabilité du capteur magnétique Reed en font un composant utile pour de nombreux projets dans lesquels des champs magnétiques doivent être détectés.
Note de l'utilisateur
Ce capteur convient parfaitement à la mesure de valeurs seuils. Cela signifie que le capteur émet un signal numérique élevé dès qu'une valeur seuil fixée par l'utilisateur sur le potentiomètre rotatif est dépassée. Il convient de noter ici que le signal numérique est une comparaison entre la valeur réglée sur le potentiomètre rotatif et la valeur mesurée sur le capteur, qui sont ensuite comparées par le comparateur LM393 installé sur la carte. La valeur réglée sur le potentiomètre rotatif est la valeur seuil, qui est utilisée pour définir un signal logique haut.
Sortie numérique: Si un champ magnétique est détecté, un signal est émis ici.
Sortie analogique: Valeur de mesure directe de l'unité de détection
LED1: Indique que le capteur est alimenté en tension
LED2: Indique qu'un champ magnétique a été détecté
Fonctionnement du capteur
Ce capteur comporte deux composants fonctionnels sur son circuit imprimé : L'unité de capteur avant, qui mesure physiquement l'environnement et le transmet sous forme de signal analogique à la seconde unité, le comparateur. Le comparateur compare la valeur mesurée par le capteur avec la valeur réglée sur le potentiomètre rotatif et émet un signal logique élevé sur la broche numérique et la LED L1 si la valeur réglée sur le potentiomètre rotatif est dépassée.
Veuillez noter. Veuillez noter. Le signal est inversé. Si une valeur élevée est mesurée, cela se traduit par une valeur de tension plus faible à la sortie analogique.
Le potentiomètre rotatif peut être réglé comme suit :
Ce capteur ne donne pas de valeurs absolues (par exemple, la température exactement mesurée en °C ou l'intensité du champ magnétique en mT), mais il s'agit d'une mesure relative : une valeur limite est définie par rapport à la situation environnementale normale donnée et un signal est donné qui peut être traité ultérieurement si cette valeur limite est dépassée ou si une autre condition que le cas normal s'est produite.
Ce comportement est idéal pour la surveillance de la température (KY-028), les capteurs de proximité (KY-024, KY-025, KY-036), des moniteurs d'alarme (KY-037, KY-038) ou des codeurs (KY-026).
Affectation des broches
Micro:Bit | Capteur |
---|---|
Pin 1 | Signal numérique |
3,3 V | +V |
GND | GND |
- | Signal analogique |
Capteur | KY-053 |
---|---|
Signal analogique | A0 |
Signal numérique | - |
+V | - |
GND | - |
Micro:Bit | KY-053 |
---|---|
Pin 19 | SCL |
Pin 20 | SDA |
3,3 V | VDD |
GND | GND |
Capteur analogique, il faut donc respecter les points suivants: Le Micro:Bit dispose d'entrées analogiques ou d'un ADC (convertisseur analogique-numérique) intégré dans la puce du Micro:Bit. Cependant, ceux-ci ne sont limités qu'à 10 bits et n'offrent donc qu'une précision assez faible pour les mesures analogiques.
Pour éviter ce problème, notre kit de capteur X40 contient le KY-053, un module avec un ADC de 16 bits, que vous pouvez utiliser sur le Micro:Bit pour l'étendre de 4 entrées analogiques. Celui-ci est connecté au Micro:Bit via I2C, prend en charge la mesure analogique et transfère la valeur numériquement au Micro:Bit.
Par conséquent, nous recommandons de connecter le module KY-053 avec le CAN mentionné entre les capteurs analogiques de ce jeu. Plus d'informations peuvent être trouvées sur la page d'information du convertisseur analogique numérique Convertisseur analogique numérique KY-053.
Exemple de code
Le programme utilise la bibliothèque correspondante de notre part pour contrôler l'ADC ADS1115. Ceci a été publié sous le lien suivant pxt-ads1115 sous la licence MIT.
pins.setPull(DigitalPin.P1, PinPullMode.PullUp)
ADS1115.setMode(mode.Multi)
ADS1115.setRate(rate.Rate5)
ADS1115.setGain(gain.One)
ADS1115.initADS1115(userInI2C.Gnd)
basic.forever(function () {
serial.writeString("Analog Value: ")
serial.writeLine("" + (ADS1115.raw_to_v(ADS1115.read(0))))
if (pins.digitalReadPin(DigitalPin.P1) == 1) {
serial.writeLine("Magnetic field detected!")
} else {
serial.writeLine("No magnetic field detected")
}
serial.writeLine("_____________________________________")
basic.pause(1000)
})
Téléchargement d'un exemple de programme
Ce module contient un capteur magnétique Reed analogique qui détecte un champ magnétique et transmet cette information à la sortie numérique. Les contacts Reed sont constitués de deux minces ressorts de contact dans un tube en verre qui se rapprochent l'un de l'autre en présence d'un champ magnétique. Cela permet de fermer un contact électrique et de faire passer le signal.
Lorsque le capteur détecte un champ magnétique, il ferme le contact et émet un signal numérique. Cela rend le capteur magnétique Reed idéal pour les applications où la présence d'un aimant doit être détectée, comme par exemple dans les alarmes de portes et de fenêtres, les capteurs de position ou d'autres systèmes de sécurité et de surveillance. La simplicité de fonctionnement et la fiabilité du capteur magnétique Reed en font un composant utile pour de nombreux projets dans lesquels des champs magnétiques doivent être détectés.
Note de l'utilisateur
Ce capteur convient parfaitement à la mesure de valeurs seuils. Cela signifie que le capteur émet un signal numérique élevé dès qu'une valeur seuil fixée par l'utilisateur sur le potentiomètre rotatif est dépassée. Il convient de noter ici que le signal numérique est une comparaison entre la valeur réglée sur le potentiomètre rotatif et la valeur mesurée sur le capteur, qui sont ensuite comparées par le comparateur LM393 installé sur la carte. La valeur réglée sur le potentiomètre rotatif est la valeur seuil, qui est utilisée pour définir un signal logique haut.
Sortie numérique: Si un champ magnétique est détecté, un signal est émis ici.
Sortie analogique: Valeur de mesure directe de l'unité de détection
LED1: Indique que le capteur est alimenté en tension
LED2: Indique qu'un champ magnétique a été détecté
Fonctionnement du capteur
Ce capteur comporte deux composants fonctionnels sur son circuit imprimé : L'unité de capteur avant, qui mesure physiquement l'environnement et le transmet sous forme de signal analogique à la seconde unité, le comparateur. Le comparateur compare la valeur mesurée par le capteur avec la valeur réglée sur le potentiomètre rotatif et émet un signal logique élevé sur la broche numérique et la LED L1 si la valeur réglée sur le potentiomètre rotatif est dépassée.
Veuillez noter. Veuillez noter. Le signal est inversé. Si une valeur élevée est mesurée, cela se traduit par une valeur de tension plus faible à la sortie analogique.
Le potentiomètre rotatif peut être réglé comme suit :
Ce capteur ne donne pas de valeurs absolues (par exemple, la température exactement mesurée en °C ou l'intensité du champ magnétique en mT), mais il s'agit d'une mesure relative : une valeur limite est définie par rapport à la situation environnementale normale donnée et un signal est donné qui peut être traité ultérieurement si cette valeur limite est dépassée ou si une autre condition que le cas normal s'est produite.
Ce comportement est idéal pour la surveillance de la température (KY-028), les capteurs de proximité (KY-024, KY-025, KY-036), des moniteurs d'alarme (KY-037, KY-038) ou des codeurs (KY-026).
Affectation des broches
Raspberry Pi Pico | Capteur |
---|---|
GPIO26 (A0) | Signal analogique |
GND | GND |
3 V | +V |
GPIO18 | Signal numérique |
On peut aussi utiliser un ADC comme le KY-053. Cet ADC a une résolution plus élevée que l'ADC interne de l'Raspberry Pi Pico, ce qui permet d'évaluer le capteur avec plus de précision.
Exemple de code
Le programme lit la valeur de la tension actuelle, qui peut être calculée en lisant la sortie analogique, et la sort sur l'interface série. En outre, l'état de la broche numérique est également indiqué dans la console. Cela indique si la valeur limite a été dépassée.
Um das folgende Codebeispiel auf Ihren Pico zu laden, empfehlen wir die Verwendung von der Thonny IDE. Sie müssen nur zunächst unter Run > Configure interpreter … > Interpreter > Which kind of interpreter should Thonny use for running your code? > MicroPython (Raspberry Pi Pico) auswählen.
Kopieren Sie den untenstehenden Code nun in Ihre IDE und klicken Sie auf Run.
# Chargement des bibliothèques
from machine import Pin, ADC
from time import sleep
# Initialisation de ADC0
adc = ADC(0)
# Initialisation de GPIO18 comme entrée
digital = Pin(18,Pin.IN, Pin.PULL_UP)
print("KY-025 Détection de champs magnétiques")
# Boucle infinie pour lire l'ADC
while True:
raw_value = adc.read_u16()
# Conversion de la valeur analogique en tension
Volt = round(raw_value* 3.3 / 65536, 2)
digital_value = digital.value()
# Sortie sérielle de la valeur analogique et de la tension calculée
print("Valeur de tension analogique: " + str(Volt) + " V\t Valeur limite: ", end="")
# Demande si la valeur numérique a changé avec sortie sérielle
if digital_value == 1:
print("atteint")
else:
print("non atteint")
print("----------------------------------------")
sleep(2)