P2E-NIGHT-LIGHT

De MCHobby - Wiki
Sauter à la navigation Sauter à la recherche

Veilleuse

Le principe de la veilleuse est relativement simple, il consiste a allumer une petite lampe lorsque la luminosité est trop faible.

Si dans les faits c'est une lampe qui est utilise, il est aussi possible d'utiliser avantageusement une LED verte. En effet, les yeux sont plus sensible à la lumière verte (ou bleue) qu'à la lumière rouge (c'est pour cela que les réveil ont souvent un éclairage rouge).

Lors d'un réveil en pleine nuit, en plus d'offrir le réconfort de la visibilité, la lumière d'une LED verte sera suffisante pour pouvoir s'orienter sans difficulté, l'oeil étant devenu très sensibles puisqu'il fait presque totalement noir.

Le Pico-Explorer dispose:

  • D'une photo-resistance : permettant d'avoir une évaluation générale de la luminosité.
  • D'un potentiomère : permettant de fixer une consigne.
  • D'une LED verte : pour une meilleure visibilité la nuit.

Brancher

Réaliser les branchements suivants:

Pico Pico-2-Explorer
GP28 LDR (photorésistance)
GP27 Pot (potentiomètre)
GP20 LED verte

P2E-night-light-wiring.jpg

Code

Le script nightlight.py est disponible dans le dépôt dédié au Pico-2-Explorer.

Le potentiomètre est ici utilisé comme référence du niveau de luminosité. Plus il est tourné vers la gauche (sens anti-horlogique) et plus il doit faire "noir" pour allumer la LED de la veilleuse.

 1 from machine import Pin, ADC
 2 import time
 3 
 4 Pin( 23, Pin.OUT, value=True )
 5 
 6 ldr = ADC( Pin( Pin.board.GP28 ) ) # A2
 7 pot = ADC( Pin( Pin.board.GP27 ) ) # A1
 8 led = Pin( Pin.board.GP20, Pin.OUT )
 9 while True:
10 	val_ldr = 0
11 	val_pot = 0
12 	for i in range(10):
13 		val_ldr += ldr.read_u16()>>6
14 		val_pot += pot.read_u16()>>6
15 	val_ldr //= 10 # 10 bit (0-1023)
16 	val_pot //= 10
17 
18 	#print( val_ldr, val_pot)
19 	led.value( val_ldr < val_pot )
20 	time.sleep_ms( 20 )

Comment tester ce script:

  1. Une fois en cours d'exécution, placer le montage dans des conditions d'illumination normale.
  2. Tourner le potentiomètre de sorte à trouver la position "frontière" juste à la limite entre allumé et éteint.
  3. Faire en sorte de décaler sensiblement la position du potentiomètre dans le sens anti-horlogique (pour éteindre la LED).
  4. Utiliser votre main pour couvrir / ombrager la photo-résistance, la LED doit s'allumer.

Quelques mots d'explications:

  • Ligne 4 : désactivation du mode d'économie d'énergie, ce qui permet de produire une tension d'alimentation 3.3V plus stable.
  • Lignes 6 et 7 : déclaration des variables ldr et pot rattachées respectivement aux entrées analogiques A2 (GP28) et A1 (GP27).
  • Ligne 8 : déclaration de la variable led rattachée à la GP20 configurée en sortie.
  • Ligne 9 : boucle while infinie exécutant encore et encore les lignes de 10 à 20.
  • Ligne 10 à 16 : calcul de la moyenne de 10 acquisitions analogiques successives réduite à 10 bits.
  • Ligne 13 : utiliser l'expression ldr.read_u16()>>6 permet de passer d'une résolution de 16 bits (read_u16()) à 10 bits en décalant la valeur de 6 bits vers la droite (>>6). Voir le tutoriel sur l'entrée analogique pour plus d'information à ce sujet.
  • Ligne 15 : division entière par 10 avec //10. Cela signifie que la partie décimale est abandonnée pour ne garder que la partie entière. Ainsi 12456/10=1245.6 alors que 12456//10=1245 .
  • Ligne 19 : Allumer la LED uniquement lorsque la valeur de la valeur de la photo-résistance tombe sous la valeur du potentiomètre (la consigne).

Un problème?

1. La LED ne s'allume pas ? - La LED ne s'éteint pas ?

  • Avez-vous trouvé la valeur "frontière" à l'aide du potentiomètre ?
  • Avez-vous, ensuite, légèrement repositionné le potentiomètre pour éteindre la LED?
  • Etiez-vous dans les conditions de luminosités adéquate au moment du réglage du potentiomètre.

2. Le potentiomètre ne fonctionne pas ?

Donc la LED ne s'allume/éteint pas quelque soit la position du potentiomètre.

  • Vérifier le branchement de la LED
  • Vérifier le branchement de la photo-résistance
  • Vérifier le branche de la photo-résistance

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.