Projet Led variable en fonction de la luminosité

Hey
j'ai un projet de faire fonctionner une led en fonction de la luminosité , et j'aimerais faire en sorte que l'intensité lumineuse soit toujours au même stade c'est a dire si j'ai une grande luminosité la led doit peu s'allumer et inversement mais dans les deux cas l'intensité total de luminosité doit être la même.
je veux que dans une pièce il y est constamment 300lux donc je veux calculer l intensité lumineuse extérieure et ensuite ajuste avec la led
int ledv = 0; //led Verte pin 0
int capteur = A0; //photoresistance sur pin A1
int photocellPin = 0;// Photocell connected to analog pin 0
int photocellVal = 0; // define photocell variable

void setup()
{
pinMode(ledv, OUTPUT);
pinMode(photocellPin, INPUT);

Serial.begin(9600);
}

void loop()
{

photocellVal = analogRead(photocellPin);// read the analog from photocell
Serial.println( photocellVal); // output to screen

if (photocellVal < 300)
{
digitalWrite(ledv, LOW);
Serial.println("led verte on"); //affiche la tension
delay(500);
}

else if (photocellVal > 300)

{
digitalWrite(ledv, HIGH);
Serial.println("led verte on");//affiche la tension
delay(500);
}
delay(500);
}

voici le début de mon programme
Merci

Il faut respecter les "règles" du post épingler en premier dans ce sous-forum

Je ne comprends pas cette question, si ta LED est plus ou moins lumineuse comment l'intensité total de luminosité peut rester fixe ?

en fait je veux que dans une pièce il y est constamment 300lux par exemple donc je veux calculer l intensité lumineuse extérieure et ensuite ajuste avec la led . Tu as compris?

Oui, en gros tu veux asservir ta LED, en fonction du résultat de ta cellule photosensible qui est exposé à la lumière naturel et de ta LED.

Du coup quel est ta question ?
Ton programme ne fonctionne pas, il a l'air de correspondre à ta description ?

Tu n'a toujours pas modifié ton premier post pour correspondre au règle du forum :frowning:

bah je suis completement bloqué
quand je lance le programme il y a des nombres aleatoires qui sortent

Ba si tu ne le dis pas, on peut le deviner :thinking: ?
Je suppose que tu parle de la valeur affichée par "Serial.println( photocellVal); // output to screen"?

Bonsoir antoinelaroche

Ton programme fonctionne très bien.
As tu bien mis la console à 9600?
image

Pour les conditions:
if (photocellVal < 300)

et
else if (photocellVal > 300)

tu as, pour les 2 conditions, 2 fois le texte affiché:
Serial.println("led verte on");//affiche la tension

La LED verte est sur la pin 0:
int ledv = 0; //led Verte pin 0
Si tu as un Arduino, ce n'est pas conseillé, les pin 0 et 1 sont utilisées par la liaison série de la connexion USB, choisis en une autre la sept, par exemple.

A+
Cordialement
jpbbricole

@antoinelaroche
Si tu ne sais pas comment faire, demande des explications, mais ne fait pas celui qui n'en a rien à faire.

Alors je veux bien des explications cest la première fois que je fais ce genre de chose, merci

Oui cest exactement ca

Ok parfait je réessaye

as tu lu le post dont j'ai parlé et qui est épinglé en premier dans le forum Français ?

Du coup ce n'est pas seulement la première ligne qui contient des valeurs aléatoires ?
D'ailleurs du coup ce n'est pas vraiment des valeurs, mais plutôt des caractères?

Quand on te le demande 2 fois c'est sans doute qu'il y a une raison !
Il me semble que c'est demandé dans le message d'accueil.

Pour commencer, tu n'oublies pas d'indenter ton code dans l'ide.
Cela se fait en cliquant sur Ctrl +T
L'indentation rend le code plus lisible et permet de trouver plus facilement les erreurs.

Une fois l'indentation faite, tu copies le code et tu le colles dans un message.

Avec la souris tu sélectionnes la zone de code et tu cliques sur l'icône <CODE/> qui est dans la barre d'icones.

Exemple

void loop()
{
photocellVal = analogRead(photocellPin);// read the analog from photocell
Serial.println( photocellVal); // output to screen

deviendra :

void loop()
{
photocellVal = analogRead(photocellPin);// read the analog from photocell
Serial.println( photocellVal); // output to screen

Ce qui est quand même plus lisible et si c'est plus lisible il y aura plus de gens qui liront ton code.

Conseil : l'opération d'écriture avec Serial.print peut être longue et bloquer peut-être pas ce programme, mais un autre plus tard.
Prend l'habitude de travailler avec un débit supérieur comme Serial.begin(115200).

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.