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.7 PIR
Introduction
Dans ce projet, nous allons fabriquer un dispositif en utilisant des capteurs pyroelectriques infrarouges pour le corps humain. Lorsqu’une personne s’approche de la LED, celle-ci s’allume automatiquement. Sinon, la lumière s’éteint. Ce capteur de mouvement infrarouge est un type de capteur qui peut détecter l’infrarouge émis par les humains et les animaux.
Required Components
Pour ce projet, nous avons besoin des composants suivants.
Il est très pratique d’acheter un kit complet, voici le lien :
Nom |
ÉLÉMENTS DANS CE KIT |
LIEN |
|---|---|---|
Kit Raphael |
337 |
Vous pouvez également les acheter séparément à partir des liens ci-dessous.
INTRODUCTION DES COMPOSANTS |
LIEN D’ACHAT |
|---|---|
- |
Schematic Diagram
Experimental Procedures
Étape 1 : Construisez le circuit.
Étape 2 : Accédez au dossier du code.
cd ~/raphael-kit/c/2.2.7/
Étape 3 : Compilez le code.
gcc 2.2.7_PIR.c -lwiringPi
Étape 4 : Exécutez le fichier exécutable.
sudo ./a.out
Après l’exécution du code, le PIR détecte les environs et fait briller la LED RVB en jaune s’il détecte quelqu’un qui passe.
Il y a deux potentiomètres sur le module PIR : l’un pour ajuster la sensibilité et l’autre pour ajuster la distance de détection. Pour que le module PIR fonctionne mieux, vous devez tourner les deux potentiomètres à fond dans le sens antihoraire.
Note
Si cela ne fonctionne pas après l’exécution, ou s’il y a un message d’erreur : wiringPi.h No such file or directory, veuillez vous référer à Installer et vérifier WiringPi.
Code
#include <wiringPi.h>
#include <softPwm.h>
#include <stdio.h>
#define uchar unsigned char
#define pirPin 0 //the pir connect to GPIO0
#define redPin 1
#define greenPin 2
#define bluePin 3
void ledInit(void){
softPwmCreate(redPin, 0, 100);
softPwmCreate(greenPin,0, 100);
softPwmCreate(bluePin, 0, 100);
}
void ledColorSet(uchar r_val, uchar g_val, uchar b_val){
softPwmWrite(redPin, r_val);
softPwmWrite(greenPin, g_val);
softPwmWrite(bluePin, b_val);
}
int main(void)
{
int pir_val;
if(wiringPiSetup() == -1){ //when initialize wiring failed,print message to screen
printf("setup wiringPi failed !");
return 1;
}
ledInit();
pinMode(pirPin, INPUT);
while(1){
pir_val = digitalRead(pirPin);
if(pir_val== 1){ //if read pir is HIGH level
ledColorSet(0xff,0xff,0x00);
}
else {
ledColorSet(0x00,0x00,0xff);
}
}
return 0;
}
Explication du Code
void ledInit(void);
void ledColorSet(uchar r_val, uchar g_val, uchar b_val);
Ces codes sont utilisés pour définir la couleur de la LED RVB. Veuillez vous référer à 1.1.2 LED RGB pour plus de détails.
int main(void)
{
int pir_val;
//……
pinMode(pirPin, INPUT);
while(1){
pir_val = digitalRead(pirPin);
if(pir_val== 1){ //if read pir is HIGH level
ledColorSet(0xff,0xff,0x00);
}
else {
ledColorSet(0x00,0x00,0xff);
}
}
return 0;
}
Lorsque le PIR détecte le spectre infrarouge humain, la LED RVB émet une lumière jaune ; sinon, elle émet une lumière bleue.
Photo du Phénomène