.. note::
Bonjour et bienvenue dans la Communauté Facebook des passionnés de Raspberry Pi, Arduino et ESP32 de SunFounder ! Plongez plus profondément dans l'univers des Raspberry Pi, Arduino et ESP32 avec d'autres passionnés.
**Pourquoi rejoindre ?**
- **Support d'experts** : Résolvez les problèmes après-vente et les défis techniques avec l'aide de notre communauté et de notre équipe.
- **Apprendre et partager** : Échangez des astuces et des tutoriels pour améliorer vos compétences.
- **Aperçus exclusifs** : Accédez en avant-première aux annonces de nouveaux produits et aux aperçus.
- **Réductions spéciales** : Profitez de réductions exclusives sur nos produits les plus récents.
- **Promotions festives et cadeaux** : Participez à des cadeaux et des promotions de vacances.
👉 Prêt à explorer et à créer avec nous ? Cliquez [|link_sf_facebook|] et rejoignez-nous aujourd'hui !
.. _2.1.2_py:
2.1.2 Micro-interrupteur
==========================
Introduction
----------------------
Dans ce projet, nous allons apprendre à utiliser un micro-interrupteur. Un micro-interrupteur est un petit interrupteur très sensible qui nécessite une compression minimale pour s'activer. Parce qu'ils sont fiables et sensibles, les micro-interrupteurs sont souvent utilisés comme dispositifs de sécurité.
Ils sont utilisés pour empêcher les portes de se fermer si quelque chose ou quelqu'un se trouve sur le chemin, ainsi que pour d'autres applications similaires.
Composants Nécessaires
---------------------------------
Pour ce projet, nous avons besoin des composants suivants.
.. image:: ../img/2.1.2component.png
Il est certainement pratique d'acheter un kit complet, voici le lien :
.. list-table::
:widths: 20 20 20
:header-rows: 1
* - Nom
- ARTICLES DANS CE KIT
- LIEN
* - Kit Raphael
- 337
- |link_Raphael_kit|
Vous pouvez également les acheter séparément à partir des liens ci-dessous.
.. list-table::
:widths: 30 20
:header-rows: 1
* - INTRODUCTION AUX COMPOSANTS
- LIEN D'ACHAT
* - :ref:`cpn_gpio_extension_board`
- |link_gpio_board_buy|
* - :ref:`cpn_breadboard`
- |link_breadboard_buy|
* - :ref:`cpn_wires`
- |link_wires_buy|
* - :ref:`cpn_resistor`
- |link_resistor_buy|
* - :ref:`cpn_led`
- |link_led_buy|
* - :ref:`cpn_micro_switch`
- \-
* - :ref:`cpn_capacitor`
- |link_capacitor_buy|
Schéma de Principe
---------------------
Connectez la broche gauche du micro-interrupteur au GPIO17, et deux LED aux broches GPIO22 et GPIO27 respectivement. Ensuite, lorsque vous appuyez et relâchez le bras mobile du micro-interrupteur, vous pouvez voir les deux LED s'allumer alternativement.
.. image:: ../img/image305.png
.. image:: ../img/micro_Schematic.png
Procédures Expérimentales
---------------------------
**Étape 1 :** Construisez le circuit.
.. image:: ../img/2.1.4fritzing.png
**Étape 2 :** Accédez au dossier du code.
.. raw:: html
.. code-block::
cd ~/raphael-kit/python
**Étape 3 :** Exécutez.
.. raw:: html
.. code-block::
sudo python3 2.1.2_MicroSwitch.py
Pendant l'exécution du code, appuyez sur le bras mobile, puis la LED jaune s'allume ; relâchez le bras mobile, la LED rouge s'allume.
**Code**
.. note::
Vous pouvez **Modifier/Réinitialiser/Copier/Exécuter/Arrêter** le code ci-dessous. Mais avant cela, vous devez vous rendre dans le chemin du code source comme ``raphael-kit/python``. Après avoir modifié le code, vous pouvez l'exécuter directement pour voir l'effet.
.. raw:: html
.. code-block:: python
#!/usr/bin/env python3
import RPi.GPIO as GPIO
import time
# Set #17 as micro switch pin, #22 as led1 pin, #27 as led2 pin
microPin = 17
led1Pin = 22
led2Pin = 27
# Define a setup function for some setup
def setup():
# Set the GPIO modes to BCM Numbering
GPIO.setmode(GPIO.BCM)
# Set microPin input
# Set ledPin output,
# and initial level to High(3.3v)
GPIO.setup(microPin, GPIO.IN)
GPIO.setup(led1Pin, GPIO.OUT, initial=GPIO.HIGH)
GPIO.setup(led2Pin, GPIO.OUT, initial=GPIO.HIGH)
# Define a main function for main process
def main():
while True:
# micro switch high, led1 on
if GPIO.input(microPin) == 1:
print ('LED1 ALLUMÉE')
GPIO.output(led1Pin, GPIO.LOW)
GPIO.output(led2Pin, GPIO.HIGH)
# micro switch low, led2 on
if GPIO.input(microPin) == 0:
print (' LED2 ON')
GPIO.output(led2Pin, GPIO.LOW)
GPIO.output(led1Pin, GPIO.HIGH)
time.sleep(0.5)
# Define a destroy function for clean up everything after
# the script finished
def destroy():
# Turn off LED
GPIO.output(led1Pin, GPIO.HIGH)
GPIO.output(led2Pin, GPIO.HIGH)
# Release resource
GPIO.cleanup()
# If run this script directly, do:
if __name__ == '__main__':
setup()
try:
main()
# When 'Ctrl+C' is pressed, the program
# destroy() will be executed.
except KeyboardInterrupt:
destroy()
**Explication du Code**
.. code-block:: python
if GPIO.input(slidePin) == 1:
GPIO.output(led1Pin, GPIO.LOW)
GPIO.output(led2Pin, GPIO.HIGH)
Lorsque le bras mobile du micro-interrupteur est relâché, la broche gauche est connectée à la broche droite ; à ce moment, un niveau haut sera lu sur GPIO17, puis LED1 s'allumera et LED2 s'éteindra.
.. code-block:: python
if GPIO.input(slidePin) == 0:
GPIO.output(led2Pin, GPIO.LOW)
GPIO.output(led1Pin, GPIO.HIGH)
Lorsque le bras mobile est enfoncé, la broche gauche et la broche centrale sont connectées. À ce moment-là, un niveau bas sera lu sur GPIO17, puis LED2 s'allume et LED1 s'éteint.
Image du Phénomène
----------------------
.. image:: ../img/2.1.2micro_switch.JPG