KY-036 Capteur tactile
Ce capteur émet un signal si la pointe métallique avant du capteur est touchée.
- Arduino
- Raspberry Pi
- Raspberry Pi Pico
- Micro:Bit
Le capteur tactile métallique émet un signal lorsqu'on touche la pointe métallique avant du capteur. Cette détection du toucher le rend idéal pour les applications qui nécessitent une interface utilisateur simple et intuitive. La sensibilité du capteur peut être ajustée à l'aide d'un régulateur, ce qui lui permet de réagir à différentes intensités de contact. Ce capteur est idéal pour les projets interactifs, les commandes et d'autres applications où le toucher doit faire office de déclencheur.
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 la pointe métallique est touchée, un signal est émis ici.
Sortie analogique: Valeur de mesure directe de l'unité de capteur
LED1: Indique que le capteur est alimenté en tension
LED2: Indique que la pointe métallique a été touchée
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-036 Reconnaissance tactile ");
}
// 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);
}
Le capteur tactile métallique émet un signal lorsqu'on touche la pointe métallique avant du capteur. Cette détection du toucher le rend idéal pour les applications qui nécessitent une interface utilisateur simple et intuitive. La sensibilité du capteur peut être ajustée à l'aide d'un régulateur, ce qui lui permet de réagir à différentes intensités de contact. Ce capteur est idéal pour les projets interactifs, les commandes et d'autres applications où le toucher doit faire office de déclencheur.
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 la pointe métallique est touchée, un signal est émis ici.
Sortie analogique: Valeur de mesure directe de l'unité de capteur
LED1: Indique que le capteur est alimenté en tension
LED2: Indique que la pointe métallique a été touchée
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 1] | VDD |
GND [Pin 6] | 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.
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)
Le capteur tactile métallique émet un signal lorsqu'on touche la pointe métallique avant du capteur. Cette détection du toucher le rend idéal pour les applications qui nécessitent une interface utilisateur simple et intuitive. La sensibilité du capteur peut être ajustée à l'aide d'un régulateur, ce qui lui permet de réagir à différentes intensités de contact. Ce capteur est idéal pour les projets interactifs, les commandes et d'autres applications où le toucher doit faire office de déclencheur.
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 la pointe métallique est touchée, un signal est émis ici.
Sortie analogique: Valeur de mesure directe de l'unité de capteur
LED1: Indique que le capteur est alimenté en tension
LED2: Indique que la pointe métallique a été touchée
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("Threshold value reached")
} else {
serial.writeLine("Threshold value not yet reached")
}
serial.writeLine("_____________________________________")
basic.pause(1000)
})
Téléchargement d'un exemple de programme
Le capteur tactile métallique émet un signal lorsqu'on touche la pointe métallique avant du capteur. Cette détection du toucher le rend idéal pour les applications qui nécessitent une interface utilisateur simple et intuitive. La sensibilité du capteur peut être ajustée à l'aide d'un régulateur, ce qui lui permet de réagir à différentes intensités de contact. Ce capteur est idéal pour les projets interactifs, les commandes et d'autres applications où le toucher doit faire office de déclencheur.
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 la pointe métallique est touchée, un signal est émis ici.
Sortie analogique: Valeur de mesure directe de l'unité de capteur
LED1: Indique que le capteur est alimenté en tension
LED2: Indique que la pointe métallique a été touchéeé
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 | Sensor |
---|---|
GPIO26 (A0) | Analog Signal |
GND | GND |
3 V | +V |
GPIO18 | Digital Signal |
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 calcule la valeur de la tension actuelle au niveau du capteur, calcule la valeur de la résistance actuelle du capteur à partir de celle-ci et de la résistance en série connue, puis émet un texte sur la sortie série dans certaines conditions.
Pour charger l'exemple de code suivant sur votre Pico, nous vous recommandons d'utiliser l'IDE Thonny. Il vous suffit de commencer par sélectionner Run > Configure interpreter ... > Interpreter > Which kind of interpreter should Thonny use for running your code? > MicroPython (Raspberry Pi Pico).
Copiez maintenant le code ci-dessous dans votre IDE et cliquez sur 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-036 Reconnaissance tactile")
# 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)