Utiliser un LDR avec Arduino et un interrupteur de contrôle pour éclairer un Arduino.

Utiliser un LDR avec Arduino et un interrupteur de contrôle pour éclairer un Arduino.

Dans ce tutoriel, nous allons explorer comment utiliser une résistance dépendante de la lumière (LDR) avec un Arduino pour contrôler une lumière en fonction des niveaux de lumière ambiante. La LDR change sa résistance en fonction de l'intensité lumineuse ; ainsi, elle peut être utilisée pour détecter s'il fait jour ou nuit dans un environnement. Lorsque la lumière est en dessous d'un certain seuil, nous activerons une broche de sortie pour allumer une lumière.

LDR Illustration and symbol

Les composants principaux dont vous aurez besoin incluent une carte Arduino, une résistance de 10k ohms, le LDR et quelques fils de connexion. Le LDR sera connecté dans une configuration de diviseur de tension avec la résistance pour lire la tension analogique, qui changera en fonction de l'intensité lumineuse. Nous utiliserons cette tension pour contrôler une LED ou d'autres dispositifs de sortie.

Pour une démonstration visuelle de la configuration et du code, assurez-vous de consulter la vidéo associée (dans la vidéo à 0:10).

Matériel expliqué

La résistance dépendante de la lumière (LDR) est un type de résistance dont la résistance diminue avec l'augmentation de l'intensité lumineuse incidente. Elle est couramment utilisée dans des applications où les niveaux de lumière doivent être surveillés. Dans notre configuration, la LDR sera utilisée pour détecter les niveaux de lumière ambiante et enverra une tension analogique correspondante à l'Arduino.

L'Arduino lira cette tension via l'un de ses broches analogiques et décidera d'allumer ou d'éteindre la lumière connectée en fonction d'un seuil défini. La résistance de 10k ohms est utilisée dans la configuration de diviseur de tension avec le LDR pour créer une sortie de tension stable que l'Arduino peut lire.

Détails de la fiche technique

FabricantGénérique
Numéro de pièceLDR
Résistance (lumière)100 - 500 Ω
Résistance (sombre)10 kΩ - 1 MΩ
Tension de fonctionnement3,3 V - 5 V
Temps de réponse20 ms (typ.)
PaquetTrou à travers

  • Assurez-vous que les niveaux de tension sont corrects ; ne dépassez pas 5V.
  • Utilisez une résistance de tirage pour stabiliser les lectures.
  • Optez pour une valeur de résistance appropriée (10kΩ) pour le diviseur de tension.
  • Envisagez d'utiliser un condensateur pour le filtrage du bruit si nécessaire.
  • Éloignez le LDR des sources de lumière directe lors des tests.

Instructions de câblage

Wiring LDR with Arduino
Wiring LDR with Arduino

Pour configurer le circuit, commencez par connecter une borne du LDR à l'alimentation 3,3V sur l'Arduino. L'autre borne du LDR sera connectée à une extrémité de la résistance de 10k ohms. L'autre extrémité de la résistance doit être connectée à la masse.

Ensuite, créez une connexion entre le point de jonction du LDR et de la résistance à une broche d'entrée analogique, telle queA0Cette connexion permettra à l'Arduino de lire la tension. Assurez-vous de connecter la masse de l'Arduino à la masse commune de votre circuit pour garantir un bon fonctionnement.

Exemples de code et guide étape par étape

Le code suivant initialise la communication série et lit la valeur analogique du LDR. La valeur est ensuite convertie en tension et affichée sur le moniteur série.

int LDRvalue = analogRead(A0); // Read the analog value from LDR
float voltage = LDRvalue * (5.0 / 1023.0); // Convert to voltage
Serial.print("Voltage ="); // Print label
Serial.print(voltage); // Print actual voltage

Dans ce code, la variableLDRvaluestocke la lecture analogique brute du LDR. La tension est calculée en fonction de la valeur analogique maximale (1023) et de la référence de tension (5V).

Ensuite, nous vérifions si cette tension est inférieure à un seuil (3V dans ce cas) pour contrôler une broche de sortie.

if(voltage < 3 ){ 
  digitalWrite(10, HIGH); // Turn on the light
}else{
  digitalWrite(10, LOW); // Turn off the light
}

Ici, si la tension mesurée est inférieure à 3 volts, nous réglons la broche de sortie (10) sur HIGH, allumant la lumière ; sinon, elle est réglée sur LOW, l'éteignant. La vérification constante de l'état de la lumière permet un contrôle en temps réel basé sur les niveaux de lumière ambiante.

Démonstration / À quoi s'attendre

Une fois le câblage terminé et votre code téléchargé, vous devriez voir les lectures de tension sur le moniteur série changer à mesure que vous variez l'intensité lumineuse sur la LDR. Si vous couvrez la LDR, la tension devrait augmenter, et lorsqu'elle est exposée à la lumière, elle devrait diminuer. Ce comportement affectera directement la broche de sortie, qui contrôle la lumière.

Soyez prudent face aux pièges courants, tels que les entrées flottantes ou les niveaux de tension incorrects, qui peuvent entraîner des lectures erronées (dans la vidéo à 12:30).

Horodatages vidéo

  • 00:00Introduction à LDR
  • 01:30Configuration matérielle
  • 03:45Explication du code
  • 06:00Exécuter le code
  • 09:15Conseils de dépannage

Images

Wiring LDR with Arduino
Wiring LDR with Arduino
An LDR
An LDR
LDR Illustration and symbol
LDR Illustration and symbol
14-Using an LDR with an Arduino and a control switch for a light
Langue: C++
/*
 * Source originale : https://www.arduino.cc/en/Tutorial/ReadAnalogVoltage
 * 
 * Ce code est utilisé avec un tutoriel vidéo pour RoboJax.com
 * Publié le 31 août 2017 à Ajax, ON, Canada.
 * Écrit/Édité par A.B.S
 */
/void setup()

{

  Serial.begin(9600); // configuration série
  pinMode(10, OUTPUT);
}



void loop(){

  int LDRvalue = analogRead(A0);
 // Convertissez la lecture analogique (qui va de 0 à 1023) en une tension (0 à 5 V) :
  float voltage = LDRvalue * (5.0 / 1023.0);
 // Imprimez la valeur que vous avez lue :
  Serial.print("Voltage ="); // affiche le texte « Voltage = »
  Serial.print(voltage); // imprime la tension réelle

 // vérifiez si la tension est inférieure à 3, puis réglez la broche 10 sur élevée ou sur
  if(voltage < 3 ){
    digitalWrite(10, HIGH);
  }else{
    digitalWrite(10, LOW); // ou le garder éteint lorsque la tension est supérieure à 3
  }
  Serial.println();
  delay(300);

}

Ressources et références

Aucune ressource pour le moment.

Fichiers📁

Aucun fichier disponible.