Faire un capteur de luminosité pour un afficheur LED

Bonjour,
Pour mon projet de fin d’étude je doit effectuer un capteur de luminosité qui doit être relier a un afficheur LED, j’ai un programme dans lequel je dois inclure mon code pour que la luminosité de l’afficheur diminue quand la luminosité ambiante est faible et inversement pour cela j’ai une photorésistance a ma disposition.
Après plusieurs tentative qui m’ont mener a l’échec je me tourne vers votre aide.
Merci de votre aide et compréhension
Voici le code que le prof ma fournie avec l’afficheur.

const char ON_OFF=7;
const char CMD_AMBRE=6;
const char CMD_ROUGE=5;
const char CLK=13;
const char LE=12;
const char SDI=11;
const char PWM_TXT1=9;
const char PWM_TXT2=10;
int photocellPin = 0;     // the cell and 10K pulldown are connected to a0
int photocellReading;     // the analog reading from the sensor divider


const char P[24]={0x30,0X48,0x48,0x48,0x7F,0x00,0x3E,0x41,0x41,0x41,0x3E,0x00,0x40,0x40,0x7F,0x40,0x40,0x00,0x26,0x49,0x49,0x49,0x32,0x00};
 
 
void setup() {
   //initialisation des sorties
  pinMode(ON_OFF, OUTPUT);
  pinMode(CMD_ROUGE, OUTPUT);
  pinMode(CMD_AMBRE, OUTPUT);
  pinMode(CLK, OUTPUT);
  pinMode(LE, OUTPUT);
  pinMode(SDI, OUTPUT);
  pinMode(PWM_TXT1, OUTPUT);
  pinMode(PWM_TXT2, OUTPUT);
  digitalWrite(ON_OFF, LOW);
  digitalWrite(CMD_ROUGE, LOW);
  digitalWrite(CMD_AMBRE, HIGH);
  digitalWrite(CLK, LOW);
  digitalWrite(SDI, LOW);
  digitalWrite(LE, LOW);
  analogWrite(PWM_TXT1, photocellReading);
  analogWrite(PWM_TXT2, 240);
 
  delay(500);
  }

void loop() {
photocellReading = analogRead(photocellPin); 
analogWrite(PWM_TXT1, photocellReading);   
  
  char Test,i,j;

  for(i=0;i<24;i++){
    for(j=0;j<8;j++) {
      Test=(P[i]>>(7-j))&0x01;
       if (Test==0x01) 
      digitalWrite(SDI,HIGH);
    else  
      digitalWrite(SDI,LOW); 
    digitalWrite(CLK,HIGH);
    digitalWrite(CLK,LOW);
    }
  }
  digitalWrite(LE,HIGH);
  digitalWrite(LE,LOW);
  while(1);
}

Utilise la fonction map.

Edit :

photocellReading = analogRead(photocellPin); 
analogWrite(PWM_TXT1, photocellReading);

Ne peut pas marcher, car la fonction analogWrite te permet que d'ecrire un octet ( 0-255), or analogRead
recupere le resultat de la conversion analogique numérique sous forme d'integer (0-1023).

Il te suffit de faire un map de photocellReading.

photocellReading = map(photocellReading, 0, 1023, 0, 255);

Salut,
il semble que le sujet a déjà été évoqué là. Merci de relire ce post est de nous en dire plus

Merci -Standby je vais essayer de faire avec le map.

salut,
landid je n'arrive pas a ouvrir le lien...