Menu
CoddyTech

Jauge lumineuse à servo

Fait partie de la section Sorties du Journey Arduino de Coddy. Leçon 24 sur 24.

Avec une aiguille sur son bras, un servomoteur devient un indicateur, comme le compteur de vitesse d’une voiture. Ici, il indique la luminosité.

Comme avec la veilleuse, la sortie AO du module donne une valeur plus faible lorsque la lumière est plus vive : environ 1023 dans l’obscurité et près de 0 en pleine lumière. Un indicateur doit pointer plus haut lorsque la lumière est plus vive, donc la conversion se fait à l’envers. Comme pour le luxmètre, donne à map() la nouvelle plage à l’envers :

int angle = map(reading, 0, 1023, 180, 0);

Une lecture de 0, en pleine lumière, devient 180 degrés, et 1023, dans l’obscurité, devient 0. Toutes les valeurs intermédiaires se situent entre les deux, dans l’autre sens.

challenge icon

Défi

Moyen

La sortie AO du capteur de lumière est sur A0 et le servomoteur sur la broche 9. Fais du bras une jauge de luminosité :

  • dans l’obscurité, le bras pointe à 0 degré ; en pleine lumière, à 180
  • utilise map() avec la nouvelle plage inversée
  • affiche l’angle et attends 50 ms à chaque fois

Appuie sur Run et déplace le curseur de lumière sur le capteur, puis Check.

Essayez vous-même

#include <Servo.h>

const int lightPin = A0;
Servo arm;

void setup() {
  arm.attach(9);
  Serial.begin(9600);
}

void loop() {
  // lire la luminosité, la convertir en sens inverse sur la plage 180..0, déplacer le bras, afficher l'angle
}
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Sorties

Entraînez-vous par vous-même : Playground Arduino