collapse

* Posts Recentes

Amplificador - Rockboard HA 1 In-Ear por almamater
[27 de Março de 2024, 19:13]


O que é isto ? por KammutierSpule
[26 de Março de 2024, 19:35]


Bateria - Portátil por almamater
[25 de Março de 2024, 22:14]


Emulador NES em ESP32 por dropes
[13 de Março de 2024, 21:19]


Escolher Osciloscópio por jm_araujo
[06 de Fevereiro de 2024, 23:07]


TP4056 - Dúvida por dropes
[31 de Janeiro de 2024, 14:13]


Leitura de dados por Porta Serie por jm_araujo
[22 de Janeiro de 2024, 14:00]


Distancia Cabo por jm_araujo
[08 de Janeiro de 2024, 16:30]


Meu novo robô por josecarlos
[06 de Janeiro de 2024, 16:46]


Laser Engraver - Alguém tem? por almamater
[16 de Dezembro de 2023, 14:23]

Autor Tópico: LDR - com fade de acordo com a luminosidade  (Lida 17078 vezes)

0 Membros e 1 Visitante estão a ver este tópico.

Offline anaes

  • Mini Robot
  • *
  • Mensagens: 26
Re: LDR - com fade de acordo com a luminosidade
« Responder #15 em: 24 de Novembro de 2009, 18:49 »
Código: [Seleccione]

int ledPin2 = 11;
        int val=0;
pinMode(ledPin2, OUTPUT);


void loop() {
   
   val=analogRead(0);
   
   // fade in from min to max in increments of 5 points:
if(val>800){
  for(int  fadeValue = 0 ; fadeValue <= 255; fadeValue +=5) {
    // sets the value (range from 0 to 255):
    analogWrite(ledPin2, fadeValue);         
    // wait for 30 milliseconds to see the dimming effect   
    delay(20);                           
  }
}
if(val<800){
  // fade out from max to min in increments of 5 points:
  for(int  fadeValue = 255 ; fadeValue >= (val/4); fadeValue -=5) {
    // sets the value (range from 0 to 255):
    analogWrite(ledPin2, fadeValue);         
    // wait for 30 milliseconds to see the dimming effect   
    delay(20);                           
  }
}

Tenho a impressão que estou muito perto ... mas agora falta isto para de piscar! 0_0 .... alguma sugestão?

Offline metRo_

  • Administrator
  • Mini Robot
  • *****
  • Mensagens: 3.753
Re: LDR - com fade de acordo com a luminosidade
« Responder #16 em: 24 de Novembro de 2009, 19:14 »
Só para perceber o que queres fazer: quando o valor esta acima de 800 queres que varie a intensidade do led entre 0 e 255 e depois quando o valor esta a abaixo de 800 queres que a intensidade varie entre 255 e (val/4), explica-me este val a dividir por 4, porque se o valor for 799 ele vai variar entre 255 e 200 e podes não notar diferença.

Experimenta o seguinte:

Código: [Seleccione]
int ledPin2 = 11;
        int val=0;
pinMode(ledPin2, OUTPUT);


void loop() {
   // VE ISTO AQUI!!!!!!!!!!!!!!!!!!!!!!!!!!!!
   //defines aqui tu o valor e assim testas se o problema é do valor que vem do LDR,
   //assim com segues eliminar um problema.
   val=850;
   val=750;
   
   // fade in from min to max in increments of 5 points:
if(val>800){
  for(int  fadeValue = 0 ; fadeValue <= 255; fadeValue +=5) {
    // sets the value (range from 0 to 255):
    analogWrite(ledPin2, fadeValue);         
    // wait for 30 milliseconds to see the dimming effect   
    delay(20);                           
  }
}
if(val<800){
  // fade out from max to min in increments of 5 points:
  for(int  fadeValue = 255 ; fadeValue >= (val/4); fadeValue -=5) {
    // sets the value (range from 0 to 255):
    analogWrite(ledPin2, fadeValue);         
    // wait for 30 milliseconds to see the dimming effect   
    delay(20);                           
  }
}
}

Offline anaes

  • Mini Robot
  • *
  • Mensagens: 26
Re: LDR - com fade de acordo com a luminosidade
« Responder #17 em: 24 de Novembro de 2009, 19:27 »
humm a minha intenção era que o valor do val que é o que recebe do ldr fosse quantificado de forma inversa ao que e transmitido para os leds... isto é aumentando a entrada de luz no ldr diminui-a a potencia dos leds. O val/4 era para obter valores semelhantes ao do fadeValue. Penso a que este ponto ja nem fade será necessário! ... Basta fazer uma equivalencia!

Se calhar não e a melhor forma de fazer isto.
« Última modificação: 24 de Novembro de 2009, 19:30 por anaes »

Offline Njay

  • Mini Robot
  • *
  • Mensagens: 3.598
    • Tróniquices
Re: LDR - com fade de acordo com a luminosidade
« Responder #18 em: 24 de Novembro de 2009, 19:41 »
É muito fácil fazer o que tu queres. Até já tens uma função (map) que faz a tal conversão de que te falei lá atrás. Com 3 comandos fazes tudo isso, lês o LDR, convertes o valor para a saída (PWM, LED) a acendes o LED.

Offline anaes

  • Mini Robot
  • *
  • Mensagens: 26
Re: LDR - com fade de acordo com a luminosidade
« Responder #19 em: 24 de Novembro de 2009, 19:48 »
É muito fácil fazer o que tu queres. Até já tens uma função (map) que faz a tal conversão de que te falei lá atrás. Com 3 comandos fazes tudo isso, lês o LDR, convertes o valor para a saída (PWM, LED) a acendes o LED.
:-X  pois acho que compliquei demais e acabei em caminhos que levavam a tudo menos o resultado desejado!
Já fiz uma simulação disso que disseste ... embora obtenha comportamentos estranhos ... vou jantar! e dps revejo o codigo!

Código: [Seleccione]
int ledPin2 = 11;
 int val=0;

  void setup() {     
pinMode(ledPin2, OUTPUT);
 }

void loop() {
   
   val=analogRead(0);

   analogWrite(ledPin2, (val/4)); // vi algures que a dividir por quatro ajustava! (duvido)
   

}

Com este codigo so desliga com sombra!!!! se tapar completamente liga! estranho!

obrigado a todos pela paciencia!


Offline Njay

  • Mini Robot
  • *
  • Mensagens: 3.598
    • Tróniquices
Re: LDR - com fade de acordo com a luminosidade
« Responder #20 em: 24 de Novembro de 2009, 19:52 »
Tás lá quase, já tens 2 dos 3 comandos. Agora só precisas de MAPear os valores lidos do LDR nos valores para acender o LED.

Offline anaes

  • Mini Robot
  • *
  • Mensagens: 26
Re: LDR - com fade de acordo com a luminosidade
« Responder #21 em: 24 de Novembro de 2009, 19:55 »
Tás lá quase, já tens 2 dos 3 comandos. Agora só precisas de MAPear os valores lidos do LDR nos valores para acender o LED.
(qd acabar o meu sofrimento vou-te partir uma perna xD ) Vou jantar primeiro haahahah cumprimentos

Offline microbyte

  • Mini Robot
  • *
  • Mensagens: 1.322
    • http://ricardo-dias.com/
Re: LDR - com fade de acordo com a luminosidade
« Responder #22 em: 24 de Novembro de 2009, 20:26 »
Tás lá quase, já tens 2 dos 3 comandos. Agora só precisas de MAPear os valores lidos do LDR nos valores para acender o LED.

Penso que a solução dele funciona... A divisão por 4 é a forma que uso para passar uma escala 0-1023 para 0-255.
É, pelo menos mais simples do anaes perceber, do que usar já a função map.

Offline tr3s

  • Administrator
  • Mini Robot
  • *****
  • Mensagens: 811
  • char x=1, y=5; x^=y^=x^=y;
Re: LDR - com fade de acordo com a luminosidade
« Responder #23 em: 24 de Novembro de 2009, 20:48 »
Para mapear 0-1023 para 0-255 dividir por 4 faz todo o sentido :D

A grande vantagem do map é poder mapearem-se valores de intervalos distintos onde algum deles ou ambos não começam em 0 (por exemplo mapear 0-1023 no intervalo 16-235).
:)
Tr3s
Daniel Gonçalves

Offline anaes

  • Mini Robot
  • *
  • Mensagens: 26
Re: LDR - com fade de acordo com a luminosidade
« Responder #24 em: 24 de Novembro de 2009, 21:02 »
Ainda assim cm o código que tenho não esta a comportar-se como devia! ... mas agora tou no intervalo da bucha!

Offline microbyte

  • Mini Robot
  • *
  • Mensagens: 1.322
    • http://ricardo-dias.com/
Re: LDR - com fade de acordo com a luminosidade
« Responder #25 em: 24 de Novembro de 2009, 21:20 »
anaes, posta aí o código integral que tens... ;)

Offline anaes

  • Mini Robot
  • *
  • Mensagens: 26
Re: LDR - com fade de acordo com a luminosidade
« Responder #26 em: 24 de Novembro de 2009, 21:30 »
ta aki o codigo integral - http://wate-r-evolution.com/AquaStatus/index.html# - se conseguires puxar cm o poder da mente xD ! (ainda tou na buxa ) Mas só tenho aquele pedaço postei antes .

Offline tr3s

  • Administrator
  • Mini Robot
  • *****
  • Mensagens: 811
  • char x=1, y=5; x^=y^=x^=y;
Re: LDR - com fade de acordo com a luminosidade
« Responder #27 em: 24 de Novembro de 2009, 21:35 »
ta aki o codigo integral - http://wate-r-evolution.com/AquaStatus/index.html# - se conseguires puxar cm o poder da mente xD ! (ainda tou na buxa ) Mas só tenho aquele pedaço postei antes .

 :-X :P
Tr3s
Daniel Gonçalves

Offline anaes

  • Mini Robot
  • *
  • Mensagens: 26
Re: LDR - com fade de acordo com a luminosidade
« Responder #28 em: 24 de Novembro de 2009, 21:41 »
ta aki o codigo integral - http://wate-r-evolution.com/AquaStatus/index.html# - se conseguires puxar cm o poder da mente xD ! (ainda tou na buxa ) Mas só tenho aquele pedaço postei antes .

 :-X :P

Eu hj ainda tenho umas piadas na manga amnha kd for apresentar o projecto que não funciona é que vai ser o pânico xD !
Mas pronto os leds já estão quase a funcar!
O motor para a alimentação ta td ligado...
Só falta a ligação através da net! ^^

Offline metRo_

  • Administrator
  • Mini Robot
  • *****
  • Mensagens: 3.753
Re: LDR - com fade de acordo com a luminosidade
« Responder #29 em: 24 de Novembro de 2009, 21:51 »
Os valores lidos do LDR não devem ser lineares e o problema pode estar aqui. Faz o seguinte, imprimi o valor lido do LDR na consola e vê como este se comporta para os diferentes níveis de luz.