Différences entre versions de « P2E-LDR-FR »

De MCHobby - Wiki
Sauter à la navigation Sauter à la recherche
 
(9 versions intermédiaires par le même utilisateur non affichées)
Ligne 65 : Ligne 65 :
 
Le code ci-dessous peut être saisi dans une session REPL ou dans Thonny IDE.
 
Le code ci-dessous peut être saisi dans une session REPL ou dans Thonny IDE.
  
Cet exemple est également disponible dans le dépôt [https://github.com/mchobby/pico-2-explorer/tree/main/ldr analog-ldr.py] .
+
Cet exemple est également disponible dans le dépôt [https://github.com/mchobby/pico-2-explorer/tree/main/analog-ldr analog-ldr.py] .
  
 
<syntaxhighlight lang="python" line highlight="4,7,9,10,13,19,21">
 
<syntaxhighlight lang="python" line highlight="4,7,9,10,13,19,21">
Ligne 105 : Ligne 105 :
 
* '''Ligne 21''': affichage de la valeur du convertisseur et de l'état marche/arrêt de la LED. La valeur pour la "led" est de 0 lorsque éteinte et 10000 lorsque allumée.<br />Cette bizarrerie est utile lors du rendu en graphique dans Thonny car l'échelle de valeur sur l'ADC est de 20000 à 50000.<br />Une valeur de 0 ou 10000 pour la LED permettra de voir l'activation de celle-ci sur le graphe (ce qui serait impossible avec les valeurs 0 et 1 correspondant aux valeurs binaire True et False).<br />C'est l'expression ternaire {{fname|1=10000 if led_value==True else 0}} ; il existe cependant un code plus beaucoup plus concis permettant d'obtenir le même résultat.
 
* '''Ligne 21''': affichage de la valeur du convertisseur et de l'état marche/arrêt de la LED. La valeur pour la "led" est de 0 lorsque éteinte et 10000 lorsque allumée.<br />Cette bizarrerie est utile lors du rendu en graphique dans Thonny car l'échelle de valeur sur l'ADC est de 20000 à 50000.<br />Une valeur de 0 ou 10000 pour la LED permettra de voir l'activation de celle-ci sur le graphe (ce qui serait impossible avec les valeurs 0 et 1 correspondant aux valeurs binaire True et False).<br />C'est l'expression ternaire {{fname|1=10000 if led_value==True else 0}} ; il existe cependant un code plus beaucoup plus concis permettant d'obtenir le même résultat.
  
 +
Il est également possible de visualiser ces informations sous forme de graphique.
  
Dans Il est également possible de visualiser cette information sous forme de graphique.
+
== Un problème? ==
  
[[Fichier:P2E-LDR-26.png|800px]]
+
Pas de changement de valeur pour "adc=" ? (''elle devrait varier entre 25000 et 55000'')
 +
# vérifier le raccordement entre GP27 et LDR
 +
# Vérifier la déclaration de la broche a1 dans le script
 +
# La photo-résistance est elle suffisamment masquée?
  
=== Un problème? ===
+
La valeur change subitement lorsque je pose le doigt sur la photo-résistance?
 +
* La peau humaine présente également une résistance. Celle-ci perturbe la résistance de la photo-résistance si celle-ci expose des contacts métalliques.
  
TODO
+
La LED ne s'allume jamais!
 +
# vérifier le branchement de la LED.
 +
# vérifier que la valeur ADC tombe bien en dessous de 32000 lorsque la photo-résistance est masquée. Au besoin, augmenter la valeur de TURN_ON.
  
Pas de son ?
+
La LED ne s'éteint jamais!
# Est ce que la valeur affichée dans REPL varie lorsque le potentiomètre est tourné ?
+
* verifier si la valeur ADC passe au dessus de 32000 lorsque la photo-résistance est en pleine lumière. Au besoin abaisser la valeur de TURN_ON.
## OUI: vérifier la présence du cavalier près de
 
## NON: vérifier le raccordement entre le GP26 et le potentiomètre
 
 
 
Le son est presque inaudible ?
 
# les valeurs au dessus de 8000 Hertz sont à la limite des possibilités du Buzzer.
 
# abaisser les fréquences avec le potentiomètre
 
 
 
J'ai le message d'erreur "''ImportError: no module named 'maps'''" !
 
# Télécharger le fichier `maps.py` depuis [https://github.com/mchobby/esp8266-upy/tree/master/LIBRARIAN esp8266-upy/LIBRARIAN].
 
# copiez le fichier le `maps.py` dans le répertoire 'lib/' de votre carte MicroPython.
 
 
 
Le son n'est pas très stable:
 
# Cela est provoqué par le bruit sur l'alimentation, bruit que l'on retrouve sur sur l'entrée analogique
 
# Modifier le code pour réduire la précision à 9 ou 10 bits significatif permettra d'éliminer la partie la plus faible du signal (donc le bruit).<br />Voyez l'exemple [https://github.com/mchobby/pico-2-explorer/tree/main/buzzer pwm-buzzer-9bits pwm-buzzer-9bits.py] dans le dépôt.
 
  
 
== Le défi ==
 
== Le défi ==
  
Remplacer le contrôle par potentiomètre par un contrôle numérique à l'aide de deux boutons.  
+
Remplacer la valeur TURN_ON par celle obtenue par le potentiomètre branché sur A0 (GP26).
  
Utiliser Btn 1 pour diminuer la fréquence du son et Btn 2 pour en augmenter la fréquence.
+
Le potentiomètre sert alors de consigne, un fonctionnement similaire à une lampe automatique pour jardin.
  
 
== Encore plus ==
 
== Encore plus ==
 
=== Brancher une photo-résistance ===
 
=== Brancher une photo-résistance ===
 
Voici comment brancher une photo-résistance en créant le pont diviseur de tension, sans oublier d'apporter la masse et la tension d'alimentation nécessaire.
 
Voici comment brancher une photo-résistance en créant le pont diviseur de tension, sans oublier d'apporter la masse et la tension d'alimentation nécessaire.
 +
 +
Pour sa part, la LED doit être équipée d'une résistance afin de limiter le courant.
  
 
[[Fichier:P2E-LDR-wiring-2.png|800px]]
 
[[Fichier:P2E-LDR-wiring-2.png|800px]]
  
 +
=== Autres tutoriels ===
 +
Ce wiki contient d'autres exemples autour de l'acquisition analogique.
 +
 +
{{ttuto-begin}}
 +
 +
{{ttuto
 +
  |label=Temperature
 +
  |descr=Mesurer la température à l'aide du TMP-36 (analogique)
 +
  |img=tlogo-p2e-tmp36.png
 +
  |link=P2E-TMP36-FR
 +
}}
 +
 +
{{ttuto
 +
  |label=Entrée Analogique
 +
  |descr=Comment utiliser une entrée analogique
 +
  |img=tlogo-p2e-analog-input.png
 +
  |link=P2E-Analog-Input-FR
 +
}}
 +
 +
{{ttuto-end}}
  
 
=== Autres ressources ===
 
=== Autres ressources ===

Version actuelle datée du 28 janvier 2025 à 22:38

Introduction

La photo-résistance est une résistance photo-sensible, cela signifie que la valeur de sa résistance dépend de la quantité de lumière qui atteint le capteur.

PhotoResistance.jpg

Comme le montre le graphique ci-dessous, la résistance d'une photo-résistance diminue lorsque la quantité de lumière augmente (sur le capteur).

{{{2}}}
Crédit: AdaFruit Industries www.adafruit.com

La photo-résistance est souvent appelée LDR, acronyme anglophone de Light Dependant Resistor (résistance dépendant de la lumière).

Photo-Résistance vs Luxmètre

Les photo-résistances sont des éléments très abordables mais permet uniquement de faire un relevé "relatif" de la luminosité.

Cela signifie qu'il est possible de savoir s'il fait très lumineux, lumineux, sombre ou noir sans pouvoir évaluer "finement" la quantité de lumière!

Il n'est donc pas possible d'utiliser un tel dispositif d'évaluer le nombre de Lux (mesure d'éclairement lumineux, Wikitionnaire), ce que d'autres capteurs plus avancer peuvent permettre.

Photo-résistance du Pico-2-Explorer

Le Pico-2-Explorer propose une photo-résistance dans sa section analogique.

P2E-LDR-10.png

Un microcontrôleur n'est pas capable de mesurer une résistance mais, par contre, il sait mesurer une tension! C'est pour cette raison de la photo-résistance intervient dans un pont diviseur de tension.

Sur le Pico-2-Explorer, la photo-résistance est montée dans un pont diviseur de tension avec une résistance de 10 KOhms.

Le schéma ci-dessous détaille le raccordement de la photo-résistance, une sonde symbolise le branchement sur le connecteur LDR (de la section Analogique).

P2E-LDR-schematic.jpg

Si la photo-résistance est placé sous une source lumineuse alors sa résistance chute, ce qui déplace le potentiel de la jonction Photo_résistance-R10K en direction de 3.3V. La tension VOut augmente vers 0V.

P2E-LDR-in-light.jpg

Si la photo-résistance est masquée, la quantité de lumière qui frappe la photo-résistance diminue. En conséquent, la résistance de la photo-résistance augmente!

Si la résistance de la photo-résistance augmente alors le potentiel de la jonction Photo_résistance-R10K évolue en direction de la masse. La tension VOut diminue vers GND .

P2E-LDR-in-dark.jpg

Cas pratique

L'exemple ci-dessous se propose de relever la valeur du convertisseur analogique en fonction des conditions de luminosité imposée sur la photo-résistance.

En complément, le script allume la LED Rouge (veilleuse) lorsque la luminosité descend sous un certain seuil (donc lorsque la tension sur l'entrée analogique dépasse une tension de référence).

Branchement simplifié

Dans cet exemple, nous allons brancher la photo-résistance (notée LDR) sur l'entrée analogique A1 (GP27) pour lire la valeur sur le convertisseur analogique.

La LED rouge est branchée sur la broche GP22 configurée en sortie.

P2E-LDR-20.png

Remarque: Si vous n'êtes pas encore familiarisé avec l'utilisation des entrées analogiques alors vous pouvez consulter le tutoriel sur les entrées analogiques.

Code

Le code ci-dessous peut être saisi dans une session REPL ou dans Thonny IDE.

Cet exemple est également disponible dans le dépôt analog-ldr.py .

 1 from machine import Pin, ADC
 2 import time
 3 
 4 TURN_ON = 32000 # 0 - 65535
 5 
 6 # Désactive PowerSafe (lower ripple)
 7 Pin( 23, Pin.OUT, value=True )
 8 
 9 a1 = ADC( Pin( Pin.board.GP27 ) )
10 led = Pin( Pin.board.GP22, Pin.OUT )
11 while True:
12     # Effectuer 10 mesures
13     val = 0
14     for i in range( 10 ):
15         val += a1.read_u16()
16     # calculer la moyenne
17     val = val/10
18     
19     led_value = val < TURN_ON
20     led.value( led_value )
21     print( 'adc=%5i , led=%5i' % (val,10000 if led_value==True else 0) )
22     time.sleep_ms( 300 )

Il ne reste plus qu'à placer un objet (ex: votre main) entre la source de lumière et la photo-résistance pour constater l'impact sur le convertisseur analogique (dans la sessions REPL).

P2E-LDR-25.png

Voici quelques explications concernant le script:

  • Ligne 4: la constante TURN_ON indique la valeur ADC en dessous de laquelle la LED sera allumée.
  • Ligne 7: Désactivation du mode d'économie d'énergie pour réduire le bruit sur l'alimentation (et donc le bruit sur les signaux analogiques).
  • Lignes 9 et 10: création de l'instance a1 pour l'acquisition analogique et led pour le contrôle de la LED rouge.
  • Lignes 13 à 17: moyenne du relevé de 10 acquisition ADC sur a1 (GP27).
  • Ligne 19: led_value contient True lorsque la LED doit être allumée, ce qui est la cas si la valeur du convertisseur analogique tombe sous la valeur TURN_ON (32000 dans le script d'exemple).
  • Ligne 20: allumer/éteindre la LED (selon la valeur de led_value).
  • Ligne 21: affichage de la valeur du convertisseur et de l'état marche/arrêt de la LED. La valeur pour la "led" est de 0 lorsque éteinte et 10000 lorsque allumée.
    Cette bizarrerie est utile lors du rendu en graphique dans Thonny car l'échelle de valeur sur l'ADC est de 20000 à 50000.
    Une valeur de 0 ou 10000 pour la LED permettra de voir l'activation de celle-ci sur le graphe (ce qui serait impossible avec les valeurs 0 et 1 correspondant aux valeurs binaire True et False).
    C'est l'expression ternaire 10000 if led_value==True else 0 ; il existe cependant un code plus beaucoup plus concis permettant d'obtenir le même résultat.

Il est également possible de visualiser ces informations sous forme de graphique.

Un problème?

Pas de changement de valeur pour "adc=" ? (elle devrait varier entre 25000 et 55000)

  1. vérifier le raccordement entre GP27 et LDR
  2. Vérifier la déclaration de la broche a1 dans le script
  3. La photo-résistance est elle suffisamment masquée?

La valeur change subitement lorsque je pose le doigt sur la photo-résistance?

  • La peau humaine présente également une résistance. Celle-ci perturbe la résistance de la photo-résistance si celle-ci expose des contacts métalliques.

La LED ne s'allume jamais!

  1. vérifier le branchement de la LED.
  2. vérifier que la valeur ADC tombe bien en dessous de 32000 lorsque la photo-résistance est masquée. Au besoin, augmenter la valeur de TURN_ON.

La LED ne s'éteint jamais!

  • verifier si la valeur ADC passe au dessus de 32000 lorsque la photo-résistance est en pleine lumière. Au besoin abaisser la valeur de TURN_ON.

Le défi

Remplacer la valeur TURN_ON par celle obtenue par le potentiomètre branché sur A0 (GP26).

Le potentiomètre sert alors de consigne, un fonctionnement similaire à une lampe automatique pour jardin.

Encore plus

Brancher une photo-résistance

Voici comment brancher une photo-résistance en créant le pont diviseur de tension, sans oublier d'apporter la masse et la tension d'alimentation nécessaire.

Pour sa part, la LED doit être équipée d'une résistance afin de limiter le courant.

P2E-LDR-wiring-2.png

Autres tutoriels

Ce wiki contient d'autres exemples autour de l'acquisition analogique.

Temperature

Tlogo-p2e-tmp36.png

Mesurer la température à l'aide du TMP-36 (analogique)

Entrée Analogique

Tlogo-p2e-analog-input.png

Comment utiliser une entrée analogique

 

Autres ressources


Traduction augmentée réalisée par Meurisse. D pour shop.MCHobby.be - Licence CC-BY-SA.


MCHobby investit du temps et de l'argent dans la réalisation de traduction et/ou documentation. C'est un travail long et fastidieux réalisé dans l'esprit Open-Source... donc gratuit et librement accessible.
SI vous aimez nos traductions et documentations ALORS aidez nous à en produire plus en achetant vos produits chez MCHobby.