Arduino


Jouer avec la lumière

Publié le 25/11/2018



Détecter la luminosité dans une pièce via un arduino nano.

Permet par exemple de déclencher une action lorsque le niveau de luminosité est trop faible. Par exemple, cela peut servir pour allumer une lampe/halogène lorsque la nuit tombe.

A noter que le choix de la résistance dépendra de ce que l'on souhaite détecter :

Moonlit night 1 lux 70 Kohms
Dark room 10 lux 10 Kohms
Dark overcast day / Bright room 100 lux 1.5 Kohms
Overcast day 1000 lux 300 ohms
Full daylight 10000 lux 100 ohms

Liste des composants nécessaires pour la réalisation du circuit :

  • Arduino nano1
  • Photo-résistance1
  • Résistance 10 k-Ohms1


Schéma du montage électronique :


Pour les amateurs d'impression 3D, j'ai fait quelques templates qui permettent d'imprimer divers boitiers pouvant accueillir les divers composants utilisés dans mes tutoriels.
- Pour un composant PIR, vous trouverez le boitier à imprimer ici.

    Il faut compter environ 4h pour imprimer les composants de ce boitier.


- Pour un relais, vous trouverez le boitier à imprimer ici.
    Il faut compter environ 2h pour imprimer les composants de ce boitier.




L'ensemble des impressions 3D a été réalisé sur une imprimante Creality3D Ender-3 pro avec les réglages standards suivants:

Pour les personnes possédant Fritzing, voici le schéma électronique.


Voici le code

#define pinPhotoresistance   0           	// Pin pour la photoresistance.

void setup()
{
	Serial.println(F("************"));
	Serial.println(F("Arduino Nano"));
	Serial.println(F("************"));

	Serial.println(F(""));
	Serial.println(F("\nInitialisation..."));

	Serial.println(F(""));
}

//*****************************************************************************************//
//                                      MAIN LOOP
//*****************************************************************************************//
void loop()
{
	// Lecture de la luminosité toutes les 5 secondes
	ReadLuminosity();
	delay(5000);
}

int ReadLuminosity()
{
	int ii_photocellReading = analogRead(pinPhotoresistance);
	Serial.print("Analog reading = ");
	Serial.print(ii_photocellReading); 

	if (ii_photocellReading < 10) 
	{
		Serial.println(" - Noir");
	} 
	else if (ii_photocellReading < 100) 
	{
		Serial.println(" - Pénombre");
	} 
	else if (ii_photocellReading < 200) 
	{
		Serial.println(" - Sombre");
	} 
	else if (ii_photocellReading < 500) 
	{
		Serial.println(" - Lumiere");
	} 
	else if (ii_photocellReading < 800) 
	{
		Serial.println(" - Lumineux");
	} 
	else 
	{
		Serial.println(" - Tres lumineux");
	}
}
Nombre de vue(s): 349

Forum


Vos avis/remarques...


Veuillez vous connecter pour laisser vos commentaires...