Go Down

Topic: Augmenter et réduire la luminosité d'une LED (Read 7 times) previous topic - next topic

LXXL

Bonjour.
Voici mon problème, J'aimerai avec ma télécommande rc5 allumer, éteindre, ainsi qu'augmenter ou réduire la luminosité de ma LED.
J'arrive à allumer et éteindre ma LED mais je ne sais pas comment faire pour augmenter et réduire la luminosité malgré de nombreuses recherches. Tout ce que je trouve je ne le comprends pas car je suis un néophyte.

Voici mon programme :

#include <IRremote.h>

int RECV_PIN = 10;
IRrecv irrecv(RECV_PIN);
decode_results results;

void setup()
{
  Serial.begin(9600);
  irrecv.enableIRIn(); // Start the receiver
  pinMode(13, OUTPUT);
}

void loop() {
  if (irrecv.decode(&results)) {
    if(results.value == 0x205D906F) {
      digitalWrite(13, HIGH);
    }
    irrecv.resume(); // Receive the next value
  }
  if (irrecv.decode(&results)) {
    if(results.value == 0x205D48B7) {
      digitalWrite(13, LOW);
    }
    irrecv.resume(); // Receive the next value

  }
}

Quelqu'un pourrait t-il me dire quoi mettre pour parvenir à mon objectif ?
Merci d'avance, LXXL

thib974

salut, si la led est sur une pin PWM, tu peux faire varier la luminosité en utilisant un analogWrite avec une valeur comprise entre 0 et 255. En changeant les valeur tu fait varier la luminosité, en prenant une incrémentation par 51 tu as 5 niveaux.

si l'arduino ne gère que la télécommande tu peux utiliser une boucle while pour que le programme ne commence que s'il y a des infos venant du récepteur ir. je ne connais pas la programmation des récepteur ir, donc il faudra vérifier le code qui suit, au pire j'espère qu'il te mettra sur la voie.


 
Code: [Select]

#include <IRremote.h>

int RECV_PIN = 10;
IRrecv irrecv(RECV_PIN);
decode_results results;
int ledpin=13; 
int ledlevel=0;


void setup()
{
  Serial.begin(9600);
  irrecv.enableIRIn(); // Start the receiver
  pinMode(13, OUTPUT);
}

void loop() {
  if (irrecv.decode(&results)) {
    if(results.value == 0x205D906F && ledlevel)
    {
      ledlevel=255; //led on
    }
    if(results.value == //mettre la valeur pour luminosité ++// && ledlevel <255)
    {
      ledlevel=ledlevel+51; //luminosité led ++
    }
     if(results.value == //mettre la valeur pour luminosité --// && ledlevel >0)
    {
      ledlevel=ledlevel-51; //luminosité led --
    }
   if(results.value == 0x205D48B7 )
    {
      ledlevel=0; //led off
    }
    analogWrite(13, ledlevel);
    irrecv.resume(); // Receive the next value

  }
}

LXXL

Je te remercie pour ta réponse Thib.
Je vais essayer tout sa dès que je pourrais.

LXXL

Je n'ai pas penser à dire quelle matériel j'ai.
Je fais l'émission avec une télécommande rc5.
La réception avec un TFMS 38kHz.
Une petite LED et une résistance 330ohms.
Je n'ai pas de photo du montage mais c'est le même que Ken Shirrif à peu près. Et je n'ai pas de potentiomètre.
J'ai essayer le programme malgré tout mais bon.
Est-ce au moins possible de jouer sur l'intensité sans potentiomètre?

thib974

je vois pas ce que tu veux dire par jouer sur l'intensité sans potentiomètre. Tu parle de la partie IR ou de la partie éclairage? 

Go Up