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.1 Photorésistance

Note

../_images/mcp3008_and_adc0834.jpg

Selon la version de votre kit, identifiez si vous disposez d’un ADC0834 ou d’un MCP3008 et suivez la section correspondante.

Introduction

La photorésistance est un composant couramment utilisé pour mesurer l’intensité de la lumière ambiante. Elle aide le contrôleur à distinguer le jour de la nuit et à réaliser des fonctions de contrôle de la lumière telles que les lampes de nuit. Ce projet est très similaire à celui du potentiomètre, et vous pourriez penser qu’il s’agit de changer la tension pour détecter la lumière.

Composants Nécessaires

Pour ce projet, nous avons besoin des composants suivants :

../_images/list_2.2.1_photoresistor.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

ADC0834

-

Photoresistor

ACHETER

Schéma Électrique

../_images/image321.png ../_images/image322.png

Procédures Expérimentales

Étape 1 : Construire le circuit.

../_images/image198.png

Étape 2 : Aller dans le dossier du code.

cd ~/raphael-kit/python/

Étape 3 : Exécuter le fichier exécutable.

sudo python3 2.2.1_Photoresistor.py

Lorsque le code est en cours d’exécution, la luminosité de la LED changera en fonction de l’intensité lumineuse détectée par la photorésistance.

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
import ADC0834
import time
LedPin = 22
def setup():
    global led_val
    # Set the GPIO modes to BCM Numbering
    GPIO.setmode(GPIO.BCM)
    # Set all LedPin's mode to output and initial level to High(3.3v)
    GPIO.setup(LedPin, GPIO.OUT, initial=GPIO.HIGH)
    ADC0834.setup()
    # Set led as pwm channel and frequece to 2KHz
    led_val = GPIO.PWM(LedPin, 2000)
    # Set all begin with value 0
    led_val.start(0)
def destroy():
    # Stop all pwm channel
    led_val.stop()
    # Release resource
    GPIO.cleanup()
def loop():
    while True:
        analogVal = ADC0834.getResult()
        print ('analog value = %d' % analogVal)
        led_val.ChangeDutyCycle(analogVal*100/255)
        time.sleep(0.2)
if __name__ == '__main__':
    setup()
    try:
        loop()
    except KeyboardInterrupt: # When 'Ctrl+C' is pressed, the program destroy() will be executed.
        destroy()

Explication du Code

def loop():
    while True:
        analogVal = ADC0834.getResult()
        print ('analog value = %d' % analogVal)
        led_val.ChangeDutyCycle(analogVal*100/255)
        time.sleep(0.2)

Lire la valeur analogique de CH0 de l’ADC0834. Par défaut, la fonction getResult() est utilisée pour lire la valeur de CH0. Si vous souhaitez lire d’autres canaux, veuillez entrer 1, 2 ou 3 dans les parenthèses de la fonction getResult(). Ensuite, il faut imprimer la valeur via la fonction print. Comme l’élément changeant est le cycle de service de LedPin, la formule de calcul analogVal*100/255 est nécessaire pour convertir analogVal en pourcentage. Enfin, ChangeDutyCycle() est appelée pour écrire le pourcentage dans LedPin.

Image du Phénomène

../_images/image199.jpeg