Détecteur magnétique pour arduino (KY-024)

Détecteur magnétique pour arduino (KY-024)

Photo


ky-024.jpg


Données techniques / Description sommaire


Module basé sur un capteur à effet Hall A3141 et un Ampli opérationel LM393. La sortie varie en fonction du champ magnétique détecté par le capteur (avec un aimant par exemple).

La sensibilité du capteur peut être réglée par le potentiomètre.


Sortie numérique: signal présent si un champ magnétique est détecté
Sortie analogique: mesure directe du capteur




LED1: indique que le capteur est alimenté en tension
LED2: indique qu'un champ magnétique est détecté


Brochage


KY-024broches.png


Fonctionnement du capteur


Ce module est composé de trois éléments fonctionnels. Le capteur situé à l'avant du module effectue la mesure, le signal analogique est ensuite envoyé sur l'amplificateur. Celui-ci amplifie le signal en fonction du gain déterminé par le potentiomètre et envoie le signal à la sortie analogique du module.

Il convient de noter que le signal est inversé: plus la valeur mesurée par le capteur est haute, plus la tension de sortie est faible.

La troisième partie est composée d'un comparateur qui commute la sortie numérique et la diode lorsque le signal tombe en dessous d'une certaine valeur. La sensibilité peut être ajustée au moyen du potentiomètre comme décrit ci-dessous:




Empfindlichkeit Potentiometer.jpg



Ce type de capteur ne délivre pas des valeurs absolues (par exemple, la température mesurée avec précision en ° C ou de la force du champ magnétique en mT), mais des valeurs relatives. On définit une valeur limite par rapport à une valeur normale donnée et le module émet un signal si cette limite est dépassée.

Ce fonctionnement est idéal pour la surveillance de la température (KY-028), les détecteurs de proximité (KY-024, KY 025, KY-036), la surveillance des alarmes (KY-037, KY-038) ou le détecteur de flamme (KY-026).


Exemple de code pour Arduino


Le programme lit la valeur de la tension à la sortie analogique et l'envoie vers le port série.


L'état de la sortie numérique est également indiqué dans la console, ce qui permet de savoir si le seuil a été atteint ou pas.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
// Déclaration et initialisation des broches d'entrées
int Analog_Eingang = A0; // Entrée analogique
int Digital_Eingang = 3; // Entrée digitale
  
void setup ()
{
  pinMode (Analog_Eingang, INPUT);
  pinMode (Digital_Eingang, INPUT);
       
  Serial.begin (9600); // Sortie série à 9600 bauds
}
  
// Le programme lit les valeurs des broches d'entrée et les envoie à la sortie série
void loop ()
{
  float Analog;
  int Digital;
    
  //Les valeurs sont lues, sont converties en tension...
  Analog = analogRead (Analog_Eingang) * (5.0 / 1023.0);
  Digital = digitalRead (Digital_Eingang);
    
  //... et envoyées à la sortie série.
  Serial.print ("Tension analogique:"); Serial.print (Analog, 4);  Serial.print ("V, ");
  Serial.print ("Limite:");
  
  if(Digital==1)
  {
      Serial.println (" atteinte");
  }
  else
  {
      Serial.println (" pas encore atteinte");
  }
  Serial.println ("----------------------------------------------------------------");
  delay (200);
}


Affectation des broches Arduino:


Signal numérique = [Pin 3]
+V = [Pin 5V]
GND = [Pin GND]
Signal analogique = [Pin A0]


Exemple de programme à télécharger


KY-024.zip


Exemple de code pour Raspberry Pi


!! Attention !! Capteur analogique  !! Attention !!


Contrairement à une carte Arduino, la Raspberry Pi ne dispose pas d'entrées analogiques ni de convertisseur ADC (Analog Digital Converter) intégré. Cela pose problème lorsque vous voulez utiliser des capteurs analogiques avec une carte Raspberry.


Pour contourner ce problème, Sensorkit X40 inclut le module KY-053 qui possède un module convertisseur ADC de 16 bits et qui peut être raccordé sur la Raspberry pour lui procurer 4 entrées analogiques. Ce module se raccorde à la Raspberry via le bus I2C. Il mesure la tension (analogique) et envoie une valeur numérique à la Raspberry.


Vous trouverez de plus amples informations à ce sujet dans la description du module KY-053.


!!Attention !! Capteur analogique !! Attention !!



Ce programme utilise des librairies Python de la société Adafruit pour piloter les circuits ADS1115 (ADC) et ADS1x15 (I2C). 


Celles-ci se trouvent à la page https://github.com/adafruit/Adafruit-Raspberry-Pi-Python-Code sous licence BSD


Le programme mesure la tension à l'aide du convertisseur ADS1115. Il lit la valeur de la tension à la sortie analogique et l'envoie vers le port série.


L'état de la sortie numérique est également indiqué dans la console, ce qui permet de savoir si le seuil a été atteint ou pas.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
#!/usr/bin/python
# coding=utf-8
#############################################################################################################
### Copyright by Joy-IT
### Published under Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License
### Commercial use only after permission is requested and granted
### Programme traduit par Go tronic
###
### Analog Sensor - Raspberry Pi Python Code Example
###
#############################################################################################################
  
# Ce code utilise les librairies Python ADS1115 et I2C pour la Raspberry Pi
# Ces librairies sont publiées sous licence BSD sur le lien ci-dessous
from Adafruit_ADS1x15 import ADS1x15
from time import sleep
 
# Les modules nécessaires sont importés et mis en place
import time, signal, sys, os
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)
 
# Les variables utilisées sont initialisées
delayTime = 0.2
 
# attribution d'adresse ADS1x15 ADC
 
ADS1015 = 0x00  # 12-bit ADC
ADS1115 = 0x01  # 16-bit
 
# Choix du gain
gain = 4096  # +/- 4.096V
# gain = 2048  # +/- 2.048V
# gain = 1024  # +/- 1.024V
# gain = 512   # +/- 0.512V
# gain = 256   # +/- 0.256V
 
# Choix de la fréquence d'échantillonnage ADC (SampleRate)
# sps = 8    # 8 échantillons par seconde
# sps = 16   # 16 échantillons par seconde
# sps = 32   # 32 échantillons par seconde
sps = 64   # 64 échantillons par seconde
# sps = 128  # 128 échantillons par seconde
# sps = 250  # 250 échantillons par seconde
# sps = 475  # 475 échantillons par seconde
# sps = 860  # 860 échantillons par seconde
 
# choix du canal ADC (1-4)
adc_channel = 0    # Channel 0
# adc_channel = 1    # Channel 1
# adc_channel = 2    # Channel 2
# adc_channel = 3    # Channel 3
 
# initialisation du convertisseur
adc = ADS1x15(ic=ADS1115)
 
# Sélection de la broche d'entrée du signal numérique
Digital_PIN = 24
GPIO.setup(Digital_PIN, GPIO.IN, pull_up_down = GPIO.PUD_OFF)
 
#############################################################################################################
 
# ########
# boucle de programme principale
# ########
# Le programme lit les tensions en entrées et les transmet à la console.
 
try:
        while True:
                #Les valeurs de tension sont enregistrées
                analog = adc.readADCSingleEnded(adc_channel, gain, sps)
 
                # Envoi vers la console
                if GPIO.input(Digital_PIN) == False:
                        print "Tension analogique:", analog,"mV, ","Limite: pas encore atteinte"
                else:
                        print "Tension analogique:", analog, "mV, ", "Limite: atteinte"
                print "---------------------------------------"
 
                # Reset + Delay
                button_pressed = False
                time.sleep(delayTime)
 
 
 
except KeyboardInterrupt:
        GPIO.cleanup()


Brochage Raspberry Pi:


Capteur


Signal numérique = GPIO 24 [Pin 18 (RPi)]
+V = 3,3V [Pin 1 (RPi)]
GND = Masse [Pin 06 (RPi)]
Signal analogique = Analog 0 [Pin A0 (ADS1115 - KY-053)]


ADS1115 - KY-053:


VDD = 3,3V [Pin 01]
GND = Masse [Pin 09]
SCL = GPIO03 / SCL [Pin 05]
SDA = GPIO02 / SDA [Pin 03]
A0 = s.o. [Capteur: signal analogique]


Exemple de programme à télécharger


RPi_AnalogSensor.zip


Commande pour lancer le programme:


1sudo python RPi_AnalogSensor.py


Écrire une critique

Remarque: HTML n`est pas traduit!
    Mal           Bien
Captcha
  • : 702
  • Code produit: KY-024
  • Disponibilité: En stock
  • $1.99