Bonjour,
malgré mes recherches, je n'ai rien trouvé sur le sujet sur lequel je bute.
Pour rappel, je suis débutant avec un très grand D majuscule, même si j'ai de bonnes bases en électronique et en programmation, mais pas forcément sur "c".
Cet après midi, j'ai constaté qu'un CPRC 5000 est très sensible à la lumière ambiante. Je sais, c'est marqué partout ou presque mais je ne l'ai vu qu'après...
J'ai donc décidé de faire une mesure de la lumière à l'aide d'une LDR afin d'adapter, en temps réel, le niveau du signal délivré par l'infrarouge. (je ne sais pas si je suis clair là...)
En bref, si un actionneur doit réagir, en plein jour, à partir d'une valeur 500 rendue par l'infrarouge, quand il fait plus sombre, ce même actionneur devrait réagir à un seuil 300 par exemple.
Fort bien, sauf que... mon code me renvoie systématiquement des valeurs fantaisistes, comme si les deux capteurs se neutralisaient.
Voici ce code:
//definition des broches et variables
int ldrPin = A2;
int tcrtPin = A1;
int ledPin = 13;
int valLDR = 0;
int valTCRT = 0;
void setup() {
analogReference(DEFAULT); //Analog Reference of 5V is default, I know not needed.
pinMode(ledPin, OUTPUT); //definit ledPin en sortie
pinMode(tcrtPin, INPUT); //Definit tcrtPin en entree
pinMode(ldrPin , INPUT); //definit ldrPin en entree
Serial.begin(9600); //vitesse de communication serial
}
void loop() {
valLDR = analogRead(ldrPin); //definit valLDR
valTCRT = analogRead(tcrtPin); //definit valTCRT
if(valTCRT < 1000) digitalWrite(ledPin, HIGH); //si obstacle, led s'allume
else digitalWrite(ledPin, LOW); // sinon, reste eteinte
//affichage moniteur serie
Serial.print("LDR: ");
Serial.println(analogRead(valLDR));
Serial.print("infrarouge: ");
Serial.println(analogRead(valTCRT)) ;
Serial.print(" ");
delay(150);
}
quelqu'un a une idée ? (code rectifié, j'avais des erreurs de nom de variables)