Luxmètre
Fait partie de la section Entrées du Journey Arduino de Coddy. Leçon 22 sur 22.
Cette leçon rassemble les différentes parties : un luxmètre qui affiche la lumière en pourcentage et la représente sur une barre de trois LED, comme les barres de signal d’un téléphone.
Répartis le travail en fonctions, chacune ayant une seule tâche, pour que loop() se lise comme une description :
void loop() {
int percent = lightPercent();
showLevel(percent);
// afficher le pourcentage
}lightPercent() lit la lumière du module sur AO et renvoie une valeur de 0 (sombre) à 100 (lumineux). La valeur de AO diminue quand la lumière augmente, alors fais la conversion à l’envers : map(reading, 0, 1023, 100, 0) transforme 1023 en 0 et 0 en 100.
showLevel(int percent) attribue à chaque LED de la barre son propre seuil : la première s’allume au-dessus de 25, la deuxième au-dessus de 50, la troisième au-dessus de 75. Chacune a besoin de son else, pour que la barre puisse aussi diminuer quand la lumière faiblit.
Défi
MoyenLa broche AO du module de luminosité est connectée à A0, et les LED de la barre sont connectées aux broches 10, 11 et 12 :
int lightPercent(): 0 dans l’obscurité, 100 en pleine lumièrevoid showLevel(int percent): la broche 10 s’allume au-dessus de 25, la broche 11 au-dessus de 50, la broche 12 au-dessus de 75- dans
loop(), appelle les deux fonctions, affiche le pourcentage et attends 200 ms
Appuie sur Run, déplace le curseur de luminosité, puis appuie sur Check.
Essayez vous-même
const int lowPin = 10;
const int midPin = 11;
const int highPin = 12;
// écris int lightPercent() ici
// écris void showLevel(int percent) ici
void setup() {
pinMode(lowPin, OUTPUT);
pinMode(midPin, OUTPUT);
pinMode(highPin, OUTPUT);
Serial.begin(9600);
}
void loop() {
// lis la luminosité en pourcentage, affiche-la sur la barre, imprime-la, attends 200 ms
}
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Entrées
Entraînez-vous par vous-même : Playground Arduino