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 [Ici] et rejoignez-nous aujourd’hui !

2.2.6 Module Capteur de Vitesse

Introduction

Dans ce projet, nous allons apprendre à utiliser le module capteur de vitesse. Un module capteur de vitesse est un type de tachymètre utilisé pour mesurer la vitesse d’un objet en rotation, comme un moteur.

Composants Nécessaires

Pour ce projet, nous avons besoin des composants suivants :

../_images/2.2.6component.png

Il est très pratique d’acheter un kit complet, voici le lien :

Nom

ÉLÉMENTS DANS CE KIT

LIEN

Kit Raphael

337

Raphael Kit

Vous pouvez également les acheter séparément via les liens ci-dessous.

INTRODUCTION DES COMPOSANTS

LIEN D’ACHAT

Carte d’extension GPIO

ACHETER

Plaque d’expérimentation (Breadboard)

ACHETER

Fils de Liaison

ACHETER

Résistance

ACHETER

LED

ACHETER

Module de capteur de vitesse

-

Schéma Électrique

../_images/2.2.6circuit.png

Procédures Expérimentales

Étape 1 : Construire le circuit.

../_images/2.2.6fritzing.png

Étape 2 : Changer de répertoire.

cd ~/raphael-kit/python

Étape 3 : Exécuter.

sudo python3 2.2.6_speed_sensor_module.py

Après l’exécution du code, la LED verte s’allumera. Si vous placez un obstacle dans l’ouverture du module capteur de vitesse, « light blocked » sera imprimé à l’écran et la LED rouge s’allumera. Retirez l’obstacle et la LED verte s’allumera à nouveau.

Code

Note

Vous pouvez Modifier/Réinitialiser/Copier/Exécuter/Arrêter le code ci-dessous. Mais avant cela, vous devez accéder au chemin du code source comme raphael-kit/python. Après avoir modifié le code, vous pouvez l’exécuter directement pour voir l’effet.

#!/usr/bin/env python3
import RPi.GPIO as GPIO

speedPin  = 17
Gpin   = 27
Rpin   = 22

def setup():
    GPIO.setmode(GPIO.BCM)       #
    GPIO.setup(Gpin, GPIO.OUT)     # Set Green Led Pin mode to output
    GPIO.setup(Rpin, GPIO.OUT)     # Set Red Led Pin mode to output
    GPIO.setup(speedPin, GPIO.IN, pull_up_down=GPIO.PUD_UP)    # Set speedPin's mode is input, and pull up to high level(3.3V)
    GPIO.add_event_detect(speedPin, GPIO.BOTH, callback=detect, bouncetime=200)

def Led(x):
    if x == 0:
        GPIO.output(Rpin, 0)
        GPIO.output(Gpin, 1)
    if x == 1:
        GPIO.output(Rpin, 1)
        GPIO.output(Gpin, 0)
        print ('Light was blocked')

def detect(chn):
    Led(GPIO.input(speedPin))

def loop():
    while True:
        pass

def destroy():
    GPIO.output(Gpin, GPIO.LOW)       # Green led off
    GPIO.output(Rpin, GPIO.LOW)       # Red led off
    GPIO.cleanup()                     # Release resource

if __name__ == '__main__':     # Program start from here
    setup()
    try:
        loop()
    except KeyboardInterrupt:  # When 'Ctrl+C' is pressed, the child program destroy() will be  executed.
        destroy()

Explication du Code

GPIO.add_event_detect(speedPin, GPIO.BOTH, callback=detect, bouncetime=200)

Ajouter un événement ici, déclenché par un changement de niveau de speedPin et appeler detect() pour contrôler l’allumage et l’extinction des 2 LEDs.

def Led(x):
    if x == 0:
        GPIO.output(Rpin, 0)
        GPIO.output(Gpin, 1)
    if x == 1:
        GPIO.output(Rpin, 1)
        GPIO.output(Gpin, 0)
        print ('Light was blocked')

Définir une fonction Led() qui allume la LED rouge et affiche Light was blocked lorsque le paramètre est 1 ; allume la LED verte lorsque le paramètre est 0.

def detect(chn):
    Led(GPIO.input(speedPin))

Définir une fonction de rappel où la valeur de speedPin contrôlera l’allumage ou l’extinction des 2 LEDs.

Image du Phénomène

../_images/2.2.6photo_interrrupter.JPG