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 à télécharger dans votre Arduino:

#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): 923

Forum


Vos avis/remarques...


Veuillez vous connecter pour laisser vos commentaires...