Go Down

Topic: Aiuto Led con Sensore movimento (Read 390 times) previous topic - next topic

cicca_lo

Ciao a tutti!
Vi chiedo assistenza per un programma che sto scrivendo per comandare accensione/spegnimento e regolare la luminosità di un led attraverso un sensore ad ultrasuoni. Passando la mano sopra al sensore il led dovrebbe accendersi, ripassandola si spegne...ma tenendola sopra..alzandola dovrebbe aumentare la luminosità..
Per accendersi si accende facilmente..ma per regolare la luminosità mi da problemi...cosa sbaglio?

Code: [Select]
#define trig 8
#define echo 7
#define led 13


int distanza=0;
int tempo=0;
int stato=0;
int temp=0;
int pwm=64;

void setup(){
 pinMode(trig,OUTPUT);
 pinMode(echo,INPUT);
 pinMode(led,OUTPUT);
 Serial.begin(9600);
}

void loop(){

 digitalWrite(trig,HIGH);
 delayMicroseconds(10);
 digitalWrite(trig,LOW);
 
 tempo=pulseIn(echo,HIGH);
 distanza=tempo/58;
 
 Serial.println(distanza);
 
 if((distanza<30)&&(distanza!=0)&&(stato!=2)){
   if(stato==0){
     analogWrite(led,64);
     stato=stato+1;
   }
   else{
       temp=distanza;
       stato=stato+1;
   }
 }
else{
  if(stato==2){
   if((distanza>=temp)&&(distanza<50)){
     do{
       delay(50);
       pwm=pwm+10;
       analogWrite(led,pwm);
     } while (pwm<255);
     pwm=64;
     delay(1000);
     stato=1;
   }
   else{
     if(distanza>=50){
       analogWrite(led,0);
       stato=0;
     }
   }
 }
 
}
}

uwefed

Il problema principale é che il Pin 13 sul Arduino UNO non é un pin PWM e percui non funziona il analogWrite().

Ciao Uwe

cicca_lo

Ho la versione Arduino Leonardo..che ha il pwm anche sul pin 13

Go Up