Intensité lumineuse d'une LED en fonction capteur de lumière

Bonjour à tous,

Je suis totalement nouveau sur le forum et j’avoue que je débute avec l’arduino.
Voilà j’ai une carte genuino uno, un capteur de luminosité, un transistor, une strip LED blanche et mon projet est faire varier l’intensité lumineuse de la strip en fonction de la lumière ambiente. En gros, je cherche à reproduire la lumière du jour via la strip LED.
J’ai réussi à bidouiller un peu en utiliser les pin PWM, mais je vais de 0 à 255 et c’est pas suffisant pour allumer pleinement les LEDs. Comment je peux faire en sorte que ça fonctionne ?

Schéma du montage en pièce jointe

Voilà les composants :
-Carte genuino uno
-Capteur lumineux → Link
-Transistor IRF640N
-Strip led blanche

Code :

const int analogInPin = A0;  
const int analogOutPin = 9; 

int sensorValue = 0;        
int outputValue = 0;       

void setup() {
 analogReference(EXTERNAL); 
 Serial.begin(9600);
}

void loop() {
 sensorValue = analogRead(analogInPin);
 sensorValue = constrain(sensorValue, 200, 600);

 outputValue = map(sensorValue, 200, 600, 0, 255);
 analogWrite(analogOutPin, outputValue);
 
 Serial.print("sensor = " );
 Serial.print(sensorValue);
 Serial.print("\t output = ");
 Serial.println(outputValue);
 delay(2);
}

Bonjour,

Pour une meilleure lisibilité merci de mettre ton code entre balise appropriée.

Un schéma de ton montage serai aussi le bienvenu. Car 255 en sortie numérique c’est le maximum possible, donc à voir du côté du transistor ou du strip si tout est correct.

Merci, je viens de faire la modif' et d'ajouter le schéma du montage en pièce jointe :)

Il semblerai qu’il manque une résistance de 10kohms entre gate et source.

Que te donne les Serial.print en mini et maxi de la valeur de “outputValue”?

Lorsque je cache le capteur pour avoir le noir, je suis à 0 en output et 200 en sensor et quand je l'éclaire je suis à 255 output et 600 capteur

Bonjour,

L'IRF640 n'est pas conçu pour être piloté par une sortie TTL ou CMOS 5V. Il faut que tu utilises un mos 'level logic gate drive'. Généralement il y a un L dans le nom. Par exemple IRL520, IRL540, IRL640

D'accord, merci !

J'ai vu qu'il faut compter environ 0.2A/mètre de strip led donc par exemple, si je veux 50m de strip, il me faut un transistor qui supporte 10A au moins ?

Donc le IRL640 (ID=17A) fonctionnerait mais pas le IRL520 (ID=9.2A), c'est ça ? :confused:

Oui, c'est ça. Ou un IRL540

Super, j'ai compris merci !

Mais du coup, il faut que je mette quand même une résistance de 10kohms entre gate et source ? Si oui, à quoi sert-elle ?

Cette résistance sert à décharger la gate quand le mos n'est pas commandé autrement il pourrait être conducteur. Dans ton cas ça peut se produire au démarrage du programme avant que tu mettes le port qui commande le mos en sortie, la gate est alors flottante. Ca peut se traduire par une commande des leds de quelques centaines de micro secondes (voir quelques millis secondes) au démarrage, ce n'est pas systématique.

A mon avis pour la commande de leds c'est inutile. Ce n'est réellement utile que pour la commande de moteurs (on n'aime pas risquer de voir démarrer ses moteurs tout seuls ne serait ce que pour quelques ms).

Tu peux la mettre si tu veux, mais moi je mettrais plutôt 100k

Tu peux aussi mettre une résistance de 220/330Ω entre la pin de commande et la gate pour limiter l'appel de courant du à la capacité de gate du mosfet.

Okay je vais tester, merci du coup de pouce :slight_smile:

Tu aurais des sites à me conseiller pour acheter des composants ?

En général, j'achètes plutôt mes composants en chine, mais il faut s’accommoder de 15 jours à 2 mois de livraison. Si c'est urgent, j'achète chez Conrad, mais il faut payer le prix.

Si tu as déjà le IRF640 et que tu as dans tes tiroirs un transistor et quelques résistances, tu peux commander ton mos en 12V avec un schéma de ce genre:

Le gros inconvénient de ce schéma est que la commande est inversée

J’avais qu’un seul IRF640, c’est pour ça qu’il faut que j’achète d’autres composants, mais merci de l’astuce :slight_smile:

D’ailleurs, si je veux que mon système soit dehors, est ce qu’il y a un risque pour les composants, ou est ce qu’il faut que je me tourne vers des composants avec de grandes IP ?
S’ils sont juste dans un boitier étanche et qu’il y a une petite vitre pour le capteur de luminosité, c’est bon ?

Au passage, si je veux un système précis, est-ce qu’il ne serait pas préférable que j’utilises plusieurs capteurs et que je fasse une moyenne ?

Là c’est correct ? (cf :pièce jointe) :slight_smile:

Je me demandais, je devrais pas mettre une “diode de roue libre” au niveau de la strip led ?

relais_commande_001.jpg

Oui, c'est correct (mis à part le symbole du mosfet) Non pas besoin de diode de roue libre. C'est uniquement pour les charges inductives (moteur, relais, ...)

Ah mince, c'est un PNP ? je croyais que c'était un NPN, c'est pour ça que j'ai mis le symbole dans ce sens...

Non, n'est bien un canal N

Le symbole que tu as mis est le symbole d'un transistor bipolaire, le symbole des mosfet est différent

Ahhh okay, au temps pour moi ::)

Je suis en train de regarder pour acheter un transistor. C'est quoi la différence entre un IRL540 et un IRL540NPBF ?

le IRL540N accepte plus de courant que le IRL540