Ola pessol estou precisando desainecer um led , porem quero que ele vá do 255 ao 0 e continue desligado. O codigo que eu tenho fica repetindo essa ação varias vezes mas eu so quero de desvaneça 1 vez.

int brightness = 0; // how bright the LED is
int fadeAmount = 1; // how many points to fade the LED by
unsigned long currentTime;
unsigned long loopTime;

void setup() {
// declare pin 9 to be an output:
pinMode(6, OUTPUT);
pinMode(5, OUTPUT);

pinMode(3, OUTPUT);

currentTime = millis();
loopTime = currentTime;
}

void Fade() {

currentTime = millis();
if(currentTime >= (loopTime + 100)){
// set the brightness of pin 9:
analogWrite(6, brightness);
analogWrite(5, brightness);
analogWrite(3, brightness);

// change the brightness for next time through the loop:
brightness = brightness - fadeAmount;

// reverse the direction of the fading at the ends of the fade:
if (brightness == 255 ) {//|| brightness == 255) {
fadeAmount = -fadeAmount ;
}

loopTime = currentTime; // Updates loopTime
}


}

void loop() {
Fade();
}

Exibições: 475

Responder esta

Respostas a este tópico

Tira a chamada a função Fade() do loop() e coloca no final do Setup()

Ola, realmente isso daria certo. porem no programa onde esse efeito sera implementado ele vai ser chamado no Loop. 

Olá Kályston! No tutorial Tutorial: Como utilizar o Ethernet Shield com Arduino fizemos o efeito de fade utilizando millis();

Abraços.

Ola labyy, Gostei do seu codigo mas tem um problema, o meu fade tem que durar em media 7 minutos, e eu nao posso usar delay, pois todo o meu codigo iria parar em função dele. que no caso desse seu codigo tem um delay de 15 milissegundos .

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço