Ligne 140 : |
Ligne 140 : |
| | | |
| == Faire encore mieux == | | == Faire encore mieux == |
− | === zzz 1 === | + | === Inverser la réponse === |
− | zzzz
| + | Vous voudriez peut-être une réponse inversée. Pas de problème nous pouvons facilement inverser cette réponse en changeant: |
| + | <nowiki>analogWrite(ledPin, lightLevel);</nowiki> |
| + | |
| + | vers |
| + | |
| + | <nowiki>analogWrite(ledPin, 255 - lightLevel);</nowiki> |
| + | |
| + | Chargez le programme et notez la modification de la réponse. |
| + | |
| + | === La veilleuse === |
| + | Plutôt que de contrôler la luminosité d'une LED en réponse à la lumière, essayons plutôt de l'allumer ou l'éteindre en fonction d'un seuil. |
| + | |
| + | Changer le code de {{fname|loop()}} avec.... |
| + | |
| + | <nowiki>void loop(){ |
| + | int threshold = 300; // valeur du seuil |
| + | if(analogRead(lightPin) > threshold) |
| + | { |
| + | digitalWrite(ledPin, HIGH); |
| + | } |
| + | else{ |
| + | digitalWrite(ledPin, LOW); |
| + | } |
| + | }</nowiki> |
| + | |
| + | === Un servo contrôlé par la lumière === |
| + | Utilisons notre toute nouvelle compétence sur les senseurs de lumière pour contrôler un servo (et en même temps en apprendre un peu plus sur la programmation Arduino). |
| + | |
| + | Connectez un servo moteur sur la pin 9 (comme au CIRC-04). |
| + | |
| + | Ouvrez ensuite l'exemple « Knob » (le même que nous avons utilisé dans CIRC-08) |
| + | |
| + | '''Fichier > Exemples > Servo > Knob''' |
| + | |
| + | Chargez le code sur la carte et regardez comment il fonctionne sans aucune modification supplémentaire. |
| + | |
| + | === Utiliser toute la portée angulaire du servo moteur === |
| + | Vous noterez que le servo n'utilise qu'une partie limité de sa rotation angulaire. |
| + | |
| + | C'est parce qu'avec le pont diviseur de tension que nous utilisons, la tension sur la pin 0 ne varie pas de 0 à 5 volts mais entre deux valeurs plus petites (valeurs qui dépendent de votre montage). |
| + | |
| + | Pour corriger cela, modifiez et testez vos propres valeurs avec la ligne |
| + | |
| + | <nowiki>val = map(val, 0, 1023, 0, 179);</nowiki> |
| + | |
| + | Pour des astuces sur ce qu'il faut faire, visitez [http://arduino.cc/en/Reference/Map arduino.cc/en/Reference/Map] (''anglais'') |
| | | |
| == Plus, plus et encore plus == | | == Plus, plus et encore plus == |