User manual

26 11
Si AD1 > 5
alors : toutes les LED sont allumées
autrement : toutes les LED sont éteintes
On obtient comme résultat final un interrupteur crépusculaire. Etant donné que la LDR est branchée
à la terre, une luminosité plus importante entraîne une tension plus faible au niveau de AD1. Les
LED s’éteignent dès qu’une certaine luminosité est dépassé. Une tension définie n’est donc pas
atteinte. La valeur limite est de 6, le résultat de la mesure doit donc être supérieur à 5.
Adresse Commande Données Remarque
00 4 5 A = 5
01 5 1 B = A
02 8 0 AdrHi = 0
03 6 9 A = AD1
04 C 1 Skip if A>B
05 9 8 Adr 08
06 1 F LED 1111
07 3 4 Adr 03
08 1 0 LED 0000
09 3 6 Adr 03
45 51 80 69 C1 98 1F 34 10 36
Liste 19 : interrupteur crépusculaire simple
Testez le programme, en faisant plus ou moins d’ombre avec votre main au-dessus du photocapteur.
Vous allez constater que la fonction de base est remplie. Toutefois, cela entraîne la plupart du temps
à un effet secondaire désagréable.
Juste à la limite entre l’activation et la désactivation, les LED clignotent de manière incontrôlée.
Tout particulièrement pour la lumière artificielle,
la luminosité varie en succession rapide à une certaine moyenne. Cette variation est certes inter-
prétée correctement par le programme, mais le résultat n’est pas réellement ce qu’on est en mesure
d’attendre de la part d’un interrupteur crépusculaire. Retrouvez un meilleur interrupteur crépusculaire
au chapitre 18.
16 AND, OR et XOR
Deux états binaires peuvent se combiner en un nouvel état. Par exemple la fonction AND :
Lorsque le bit 1 est à l’état 1 ET le bit 2 à l’état 1, l’état de sortie sera également 1. Les nombres
binaires de plusieurs bits s’additionnent également de la même manière. Le lien «10 AND 3 =
est compréhensible lorsqu’on l’écrit en nombre binaire :
1010 AND
0011 =
0010
Le programme suivant combine les états d’entrée avec le chiffre constant 3. La fonction AND
s’opère ici de façon pratique, puisque les deux bits inférieurs sont masqués (filtrés). En état de
veille, le port d’entrée a l’état 1111. La combinaison AND avec 0011 fournit donc l’état 0011 aux
LED. Si vous appliquez cependant une des entrées E1 ou E2 sur GND, l’état 0 sera également
visible au niveau des sorties. Les modifications apportées à E3 et E4 n’ont aucun effet.
Le programme d’exemple a, compte tenu de son émission aux sorties numérique et à la sortie PWM,
une grande similitude avec le programme du dernier paragraphe. Cependant, dans la première ligne,
la commande sert à la conversion d’une valeur analogique.
Adresse Commande Données Remarque
2A 6 9 A = AD1
2B 5 4 Port = A
2C 5 9 PWM = A
2D 2 6 Délai 100 ms
2E 3 4 Saut –4
Liste 3 : convertisseur analogique numérique et sortie PWM
Testez le programme avec différents éclairages du capteur. Plus il y a de lumière sur la LDR, plus
la tension est faible au niveau de AD1. Inversement, la valeur analogique numérique est plus
importante lorsqu’il fait sombre. On obtient ainsi une luminosité maximale de la LED au niveau de la
sortie PWM. Lisez les nombres binaires de l’écran LED et essayez, p. ex., de régler une luminosité
exactement à la moitié de la plage. La valeur numérique se situe alors à 0111 ou 1000. Lorsque la
lumière artificielle vacille, il se peut que le résultat commute entre deux niveaux.
5 Générateur aléatoire
A l’aide d’un pont E3 sur GND, démarrez un programme d’exemple pour un générateur aléatoire.
La touche S1 est ici analysée. L’entrée correspondante dispose d’une résistance pull up interne, qui
augmente la tension au niveau VCC. La touche est reliée à la masse. Une simple pression de touche
amène l’entrée S1 sur zéro.
Img. 11 : démarrage de l’interrupteur aléatoire