Skip to main content
Format code, fix typos
Source Link
per1234
  • 4.3k
  • 2
  • 24
  • 44

Problem with PWM function on RGB ledLED and IR

I'm having an issue in controlling a RGB ledLED with Arduino and a remote control. When including the library IRRemote.h (version 2.2.3), the blue channel only works in on/off logic instead of PWM. If I remove the library, the pwmPWM logic of the blue channel works normally and it does accept the whole range (0-255). I'mI'm using an Arduino/Elegoo Uno R3 board. WhatWhat could be causing the issue?

#include "IRremote.h"

int pinRic = 9; // Signal Pin of IR receiver to Arduino Digital Pin 11
IRrecv ricevitore(pinRic);     // create instance of 'irrecv'
decode_results results;      // create instance of 'decode_results'
#define BLUE 3
#define GREEN 5
#define RED 6
#define IR_BPlus  0xFF3AC5  // 
#define IR_BMinus 0xFFBA45  // 
#define IR_ON     0xFF827D  // 
#define IR_OFF    0xFF02FD  // 
#define IR_R    0xFF1AE5  // 
#define IR_G    0xFF9A65  // 
#define IR_B      0xFFA25D  // 
#define IR_W    0xFF22DD  // 
#define IR_B1   0xFF2AD5  // 
#define IR_B2   0xFFAA55  // 
#define IR_B3   0xFF926D  // 
#define IR_B4   0xFF12ED  // 
#define IR_B5   0xFF0AF5  // 
#define IR_B6   0xFF8A75  // 
#define IR_B7   0xFFB24D  // 
#define IR_B8   0xFF32CD  // 
#define IR_B9   0xFF38C7  // 
#define IR_B10    0xFFB847  // 
#define IR_B11    0xFF7887  // 
#define IR_B12    0xFFF807  // 
#define IR_B13    0xFF18E7  // 
#define IR_B14    0xFF9867  // 
#define IR_B15    0xFF58A7  // 
#define IR_B16    0xFFD827  // 
#define IR_UPR    0xFF28D7  // 
#define IR_UPG    0xFFA857  // 
#define IR_UPB    0xFF6897  // 
#define IR_QUICK  0xFFE817  // 
#define IR_DOWNR  0xFF08F7  // 
#define IR_DOWNG  0xFF8877  // 
#define IR_DOWNB  0xFF48B7  // 
#define IR_SLOW   0xFFC837  // 
#define IR_DIY1   0xFF30CF  // 
#define IR_DIY2   0xFFB04F  // 
#define IR_DIY3   0xFF708F  // 
#define IR_AUTO   0xFFF00F  // 
#define IR_DIY4   0xFF10EF  // 
#define IR_DIY5   0xFF906F  // 
#define IR_DIY6   0xFF50AF  // 
#define IR_FLASH  0xFFD02F  // 
#define IR_JUMP3  0xFF20DF  // 
#define IR_JUMP7  0xFFA05F  // 
#define IR_FADE3  0xFF609F  // 
#define IR_FADE7  0xFFE01F  // 
#define incFact 30
int  brightFact = 0;
 int lv[3];


void fade7()
{
#define delayTime 10 // fading time between colors

lv[0] = 255; // choose a value between 1 and 255 to change the color.
lv[1] = 0;
lv[2] = 0;


for(int i = 0; i < 255; i += 1) // fades out R bring G full when i=255
{
lv[0] -= 1;
lv[1] += 1;

analogWrite(RED, lv[0]);
analogWrite(GREEN, lv[1]);
delay(delayTime);
}

lv[0] = 0;
lv[1] = 255;
lv[2] = 0;

for(int i = 0; i < 255; i += 1) // fades out G bring B full when i=255
{
lv[1] -= 1;
lv[2] += 1;

analogWrite(GREEN, lv[1]);
analogWrite(BLUE, lv[2]);
delay(delayTime);
}

lv[0] = 0;
lv[1] = 0;
lv[2] = 255;

for(int i = 0; i < 255; i += 1) // fades out B bring R full when i=255
{

lv[2] -= 1;
lv[0] += 1;

analogWrite(BLUE, lv[2]);
analogWrite(RED, lv[0]);
delay(delayTime);
}
}
void setColor(int r, int g, int b)
{
 
 
 Serial.println("About to write:");
 Serial.println(r);
  Serial.println(g);
  Serial.println(b);
  analogWrite(RED,r);
  analogWrite(GREEN,g);
  analogWrite(BLUE,b);
}
void  translateIR() // takes action based on IR code received

// describing Remote IR codes 

{
  Serial.println(results.value, HEX);
  switch(results.value)
  {
    //case IR_BPlus: setBright(true);break;
    //case IR_BMinus: setBright(false);break;
    case IR_OFF: setColor(0,0,0);break;
    //COLORS    
    case IR_R: setColor(255,0,0);break;
    case IR_G: setColor(0,255,0);break;
    case IR_B: setColor(0,0,255);break;
    case IR_W: setColor(255,255,255);break;    
    case IR_B1: setColor(255,20,0);break;   
    case IR_B2: setColor(0,255,20);break;
    case IR_B3: setColor(20,0,255);break;
    case IR_B4: setColor(255,20,255);break;    
    case IR_B5: setColor(255,90,0);break;
    case IR_B6: setColor(0,255,90);break;
    case IR_B7: setColor(90,0,255);break;
    case IR_B8: setColor(255,150,255 );break;    
    case IR_B9: setColor(255,191,0);break;
    case IR_B10: setColor(0,255,191);break;
    case IR_B11: setColor(191,0,255);break;
    case IR_B12: setColor(120,255,255);break;    
    case IR_B13: setColor(255,255,0);break;
    case IR_B14: setColor(0,255,255);break;
    case IR_B15: setColor(255,0,255);break;
    case IR_B16: setColor(150,255,255);break;

    //END COLORS
    case IR_FADE7: fade7();
    
  }// End Case

  delay(100); // Do not get immediate repeat


} //END translateIR

void setup()   /*----( SETUP: RUNS ONCE )----*/
{
  pinMode(RED, OUTPUT);
  pinMode(GREEN, OUTPUT);
  pinMode(BLUE, OUTPUT);
  Serial.begin(9600);
  Serial.println("IR Receiver Button Decode"); 
  ricevitore.enableIRIn(); // Start the receiver*/

}/*--(end setup )---*/

void loop()   /*----( LOOP: RUNS CONSTANTLY )----*/
{
   
  if (ricevitore.decode(&results)) // have we received an IR signal?
  
  {
    translateIR(); 
    ricevitore.resume(); // receive the next value*/
  }  
} /*--(end main loop )-- */
#include "IRremote.h"

int pinRic = 9; // Signal Pin of IR receiver to Arduino Digital Pin 11
IRrecv ricevitore(pinRic);     // create instance of 'irrecv'
decode_results results;      // create instance of 'decode_results'
#define BLUE 3
#define GREEN 5
#define RED 6
#define IR_BPlus  0xFF3AC5  // 
#define IR_BMinus 0xFFBA45  // 
#define IR_ON     0xFF827D  // 
#define IR_OFF    0xFF02FD  // 
#define IR_R    0xFF1AE5  // 
#define IR_G    0xFF9A65  // 
#define IR_B      0xFFA25D  // 
#define IR_W    0xFF22DD  // 
#define IR_B1   0xFF2AD5  // 
#define IR_B2   0xFFAA55  // 
#define IR_B3   0xFF926D  // 
#define IR_B4   0xFF12ED  // 
#define IR_B5   0xFF0AF5  // 
#define IR_B6   0xFF8A75  // 
#define IR_B7   0xFFB24D  // 
#define IR_B8   0xFF32CD  // 
#define IR_B9   0xFF38C7  // 
#define IR_B10    0xFFB847  // 
#define IR_B11    0xFF7887  // 
#define IR_B12    0xFFF807  // 
#define IR_B13    0xFF18E7  // 
#define IR_B14    0xFF9867  // 
#define IR_B15    0xFF58A7  // 
#define IR_B16    0xFFD827  // 
#define IR_UPR    0xFF28D7  // 
#define IR_UPG    0xFFA857  // 
#define IR_UPB    0xFF6897  // 
#define IR_QUICK  0xFFE817  // 
#define IR_DOWNR  0xFF08F7  // 
#define IR_DOWNG  0xFF8877  // 
#define IR_DOWNB  0xFF48B7  // 
#define IR_SLOW   0xFFC837  // 
#define IR_DIY1   0xFF30CF  // 
#define IR_DIY2   0xFFB04F  // 
#define IR_DIY3   0xFF708F  // 
#define IR_AUTO   0xFFF00F  // 
#define IR_DIY4   0xFF10EF  // 
#define IR_DIY5   0xFF906F  // 
#define IR_DIY6   0xFF50AF  // 
#define IR_FLASH  0xFFD02F  // 
#define IR_JUMP3  0xFF20DF  // 
#define IR_JUMP7  0xFFA05F  // 
#define IR_FADE3  0xFF609F  // 
#define IR_FADE7  0xFFE01F  // 
#define incFact 30
int  brightFact = 0;
int lv[3];


void fade7()
{
#define delayTime 10 // fading time between colors

  lv[0] = 255; // choose a value between 1 and 255 to change the color.
  lv[1] = 0;
  lv[2] = 0;


  for (int i = 0; i < 255; i += 1) // fades out R bring G full when i=255
  {
    lv[0] -= 1;
    lv[1] += 1;

    analogWrite(RED, lv[0]);
    analogWrite(GREEN, lv[1]);
    delay(delayTime);
  }

  lv[0] = 0;
  lv[1] = 255;
  lv[2] = 0;

  for (int i = 0; i < 255; i += 1) // fades out G bring B full when i=255
  {
    lv[1] -= 1;
    lv[2] += 1;

    analogWrite(GREEN, lv[1]);
    analogWrite(BLUE, lv[2]);
    delay(delayTime);
  }

  lv[0] = 0;
  lv[1] = 0;
  lv[2] = 255;

  for (int i = 0; i < 255; i += 1) // fades out B bring R full when i=255
  {
    lv[2] -= 1;
    lv[0] += 1;

    analogWrite(BLUE, lv[2]);
    analogWrite(RED, lv[0]);
    delay(delayTime);
  }
}

void setColor(int r, int g, int b)
{
  Serial.println("About to write:");
  Serial.println(r);
  Serial.println(g);
  Serial.println(b);
  analogWrite(RED, r);
  analogWrite(GREEN, g);
  analogWrite(BLUE, b);
}

void  translateIR() // takes action based on IR code received
{
// describing Remote IR codes
  Serial.println(results.value, HEX);
  switch (results.value)
  {
    //case IR_BPlus: setBright(true);break;
    //case IR_BMinus: setBright(false);break;
    case IR_OFF: setColor(0, 0, 0); break;
    //COLORS
    case IR_R: setColor(255, 0, 0); break;
    case IR_G: setColor(0, 255, 0); break;
    case IR_B: setColor(0, 0, 255); break;
    case IR_W: setColor(255, 255, 255); break;
    case IR_B1: setColor(255, 20, 0); break;
    case IR_B2: setColor(0, 255, 20); break;
    case IR_B3: setColor(20, 0, 255); break;
    case IR_B4: setColor(255, 20, 255); break;
    case IR_B5: setColor(255, 90, 0); break;
    case IR_B6: setColor(0, 255, 90); break;
    case IR_B7: setColor(90, 0, 255); break;
    case IR_B8: setColor(255, 150, 255 ); break;
    case IR_B9: setColor(255, 191, 0); break;
    case IR_B10: setColor(0, 255, 191); break;
    case IR_B11: setColor(191, 0, 255); break;
    case IR_B12: setColor(120, 255, 255); break;
    case IR_B13: setColor(255, 255, 0); break;
    case IR_B14: setColor(0, 255, 255); break;
    case IR_B15: setColor(255, 0, 255); break;
    case IR_B16: setColor(150, 255, 255); break;

    //END COLORS
    case IR_FADE7: fade7();
  }// End Case

  delay(100); // Do not get immediate repeat
} //END translateIR

void setup()   /*----( SETUP: RUNS ONCE )----*/
{
  pinMode(RED, OUTPUT);
  pinMode(GREEN, OUTPUT);
  pinMode(BLUE, OUTPUT);
  Serial.begin(9600);
  Serial.println("IR Receiver Button Decode");
  ricevitore.enableIRIn(); // Start the receiver*/

}/*--(end setup )---*/

void loop()   /*----( LOOP: RUNS CONSTANTLY )----*/
{
  if (ricevitore.decode(&results)) // have we received an IR signal?
  {
    translateIR();
    ricevitore.resume(); // receive the next value*/
  }
} /*--(end main loop )-- */

Problem with PWM function on RGB led and IR

I'm having an issue in controlling a RGB led with Arduino and a remote control. When including the library IRRemote.h (version 2.2.3), the blue channel only works in on/off logic instead of PWM. If I remove the library, the pwm logic of the blue channel works normally and it does accept the whole range (0-255). I'm using an Arduino/Elegoo Uno R3 board. What could be causing the issue?

#include "IRremote.h"

int pinRic = 9; // Signal Pin of IR receiver to Arduino Digital Pin 11
IRrecv ricevitore(pinRic);     // create instance of 'irrecv'
decode_results results;      // create instance of 'decode_results'
#define BLUE 3
#define GREEN 5
#define RED 6
#define IR_BPlus  0xFF3AC5  // 
#define IR_BMinus 0xFFBA45  // 
#define IR_ON     0xFF827D  // 
#define IR_OFF    0xFF02FD  // 
#define IR_R    0xFF1AE5  // 
#define IR_G    0xFF9A65  // 
#define IR_B      0xFFA25D  // 
#define IR_W    0xFF22DD  // 
#define IR_B1   0xFF2AD5  // 
#define IR_B2   0xFFAA55  // 
#define IR_B3   0xFF926D  // 
#define IR_B4   0xFF12ED  // 
#define IR_B5   0xFF0AF5  // 
#define IR_B6   0xFF8A75  // 
#define IR_B7   0xFFB24D  // 
#define IR_B8   0xFF32CD  // 
#define IR_B9   0xFF38C7  // 
#define IR_B10    0xFFB847  // 
#define IR_B11    0xFF7887  // 
#define IR_B12    0xFFF807  // 
#define IR_B13    0xFF18E7  // 
#define IR_B14    0xFF9867  // 
#define IR_B15    0xFF58A7  // 
#define IR_B16    0xFFD827  // 
#define IR_UPR    0xFF28D7  // 
#define IR_UPG    0xFFA857  // 
#define IR_UPB    0xFF6897  // 
#define IR_QUICK  0xFFE817  // 
#define IR_DOWNR  0xFF08F7  // 
#define IR_DOWNG  0xFF8877  // 
#define IR_DOWNB  0xFF48B7  // 
#define IR_SLOW   0xFFC837  // 
#define IR_DIY1   0xFF30CF  // 
#define IR_DIY2   0xFFB04F  // 
#define IR_DIY3   0xFF708F  // 
#define IR_AUTO   0xFFF00F  // 
#define IR_DIY4   0xFF10EF  // 
#define IR_DIY5   0xFF906F  // 
#define IR_DIY6   0xFF50AF  // 
#define IR_FLASH  0xFFD02F  // 
#define IR_JUMP3  0xFF20DF  // 
#define IR_JUMP7  0xFFA05F  // 
#define IR_FADE3  0xFF609F  // 
#define IR_FADE7  0xFFE01F  // 
#define incFact 30
int  brightFact = 0;
 int lv[3];


void fade7()
{
#define delayTime 10 // fading time between colors

lv[0] = 255; // choose a value between 1 and 255 to change the color.
lv[1] = 0;
lv[2] = 0;


for(int i = 0; i < 255; i += 1) // fades out R bring G full when i=255
{
lv[0] -= 1;
lv[1] += 1;

analogWrite(RED, lv[0]);
analogWrite(GREEN, lv[1]);
delay(delayTime);
}

lv[0] = 0;
lv[1] = 255;
lv[2] = 0;

for(int i = 0; i < 255; i += 1) // fades out G bring B full when i=255
{
lv[1] -= 1;
lv[2] += 1;

analogWrite(GREEN, lv[1]);
analogWrite(BLUE, lv[2]);
delay(delayTime);
}

lv[0] = 0;
lv[1] = 0;
lv[2] = 255;

for(int i = 0; i < 255; i += 1) // fades out B bring R full when i=255
{

lv[2] -= 1;
lv[0] += 1;

analogWrite(BLUE, lv[2]);
analogWrite(RED, lv[0]);
delay(delayTime);
}
}
void setColor(int r, int g, int b)
{
 
 
 Serial.println("About to write:");
 Serial.println(r);
  Serial.println(g);
  Serial.println(b);
  analogWrite(RED,r);
  analogWrite(GREEN,g);
  analogWrite(BLUE,b);
}
void  translateIR() // takes action based on IR code received

// describing Remote IR codes 

{
  Serial.println(results.value, HEX);
  switch(results.value)
  {
    //case IR_BPlus: setBright(true);break;
    //case IR_BMinus: setBright(false);break;
    case IR_OFF: setColor(0,0,0);break;
    //COLORS    
    case IR_R: setColor(255,0,0);break;
    case IR_G: setColor(0,255,0);break;
    case IR_B: setColor(0,0,255);break;
    case IR_W: setColor(255,255,255);break;    
    case IR_B1: setColor(255,20,0);break;   
    case IR_B2: setColor(0,255,20);break;
    case IR_B3: setColor(20,0,255);break;
    case IR_B4: setColor(255,20,255);break;    
    case IR_B5: setColor(255,90,0);break;
    case IR_B6: setColor(0,255,90);break;
    case IR_B7: setColor(90,0,255);break;
    case IR_B8: setColor(255,150,255 );break;    
    case IR_B9: setColor(255,191,0);break;
    case IR_B10: setColor(0,255,191);break;
    case IR_B11: setColor(191,0,255);break;
    case IR_B12: setColor(120,255,255);break;    
    case IR_B13: setColor(255,255,0);break;
    case IR_B14: setColor(0,255,255);break;
    case IR_B15: setColor(255,0,255);break;
    case IR_B16: setColor(150,255,255);break;

    //END COLORS
    case IR_FADE7: fade7();
    
  }// End Case

  delay(100); // Do not get immediate repeat


} //END translateIR

void setup()   /*----( SETUP: RUNS ONCE )----*/
{
  pinMode(RED, OUTPUT);
  pinMode(GREEN, OUTPUT);
  pinMode(BLUE, OUTPUT);
  Serial.begin(9600);
  Serial.println("IR Receiver Button Decode"); 
  ricevitore.enableIRIn(); // Start the receiver*/

}/*--(end setup )---*/

void loop()   /*----( LOOP: RUNS CONSTANTLY )----*/
{
   
  if (ricevitore.decode(&results)) // have we received an IR signal?
  
  {
    translateIR(); 
    ricevitore.resume(); // receive the next value*/
  }  
} /*--(end main loop )-- */

Problem with PWM function on RGB LED and IR

I'm having an issue in controlling a RGB LED with Arduino and a remote control. When including the library IRRemote.h (version 2.2.3), the blue channel only works in on/off logic instead of PWM. If I remove the library, the PWM logic of the blue channel works normally and it does accept the whole range (0-255). I'm using an Arduino/Elegoo Uno R3 board. What could be causing the issue?

#include "IRremote.h"

int pinRic = 9; // Signal Pin of IR receiver to Arduino Digital Pin 11
IRrecv ricevitore(pinRic);     // create instance of 'irrecv'
decode_results results;      // create instance of 'decode_results'
#define BLUE 3
#define GREEN 5
#define RED 6
#define IR_BPlus  0xFF3AC5  // 
#define IR_BMinus 0xFFBA45  // 
#define IR_ON     0xFF827D  // 
#define IR_OFF    0xFF02FD  // 
#define IR_R    0xFF1AE5  // 
#define IR_G    0xFF9A65  // 
#define IR_B      0xFFA25D  // 
#define IR_W    0xFF22DD  // 
#define IR_B1   0xFF2AD5  // 
#define IR_B2   0xFFAA55  // 
#define IR_B3   0xFF926D  // 
#define IR_B4   0xFF12ED  // 
#define IR_B5   0xFF0AF5  // 
#define IR_B6   0xFF8A75  // 
#define IR_B7   0xFFB24D  // 
#define IR_B8   0xFF32CD  // 
#define IR_B9   0xFF38C7  // 
#define IR_B10    0xFFB847  // 
#define IR_B11    0xFF7887  // 
#define IR_B12    0xFFF807  // 
#define IR_B13    0xFF18E7  // 
#define IR_B14    0xFF9867  // 
#define IR_B15    0xFF58A7  // 
#define IR_B16    0xFFD827  // 
#define IR_UPR    0xFF28D7  // 
#define IR_UPG    0xFFA857  // 
#define IR_UPB    0xFF6897  // 
#define IR_QUICK  0xFFE817  // 
#define IR_DOWNR  0xFF08F7  // 
#define IR_DOWNG  0xFF8877  // 
#define IR_DOWNB  0xFF48B7  // 
#define IR_SLOW   0xFFC837  // 
#define IR_DIY1   0xFF30CF  // 
#define IR_DIY2   0xFFB04F  // 
#define IR_DIY3   0xFF708F  // 
#define IR_AUTO   0xFFF00F  // 
#define IR_DIY4   0xFF10EF  // 
#define IR_DIY5   0xFF906F  // 
#define IR_DIY6   0xFF50AF  // 
#define IR_FLASH  0xFFD02F  // 
#define IR_JUMP3  0xFF20DF  // 
#define IR_JUMP7  0xFFA05F  // 
#define IR_FADE3  0xFF609F  // 
#define IR_FADE7  0xFFE01F  // 
#define incFact 30
int  brightFact = 0;
int lv[3];


void fade7()
{
#define delayTime 10 // fading time between colors

  lv[0] = 255; // choose a value between 1 and 255 to change the color.
  lv[1] = 0;
  lv[2] = 0;


  for (int i = 0; i < 255; i += 1) // fades out R bring G full when i=255
  {
    lv[0] -= 1;
    lv[1] += 1;

    analogWrite(RED, lv[0]);
    analogWrite(GREEN, lv[1]);
    delay(delayTime);
  }

  lv[0] = 0;
  lv[1] = 255;
  lv[2] = 0;

  for (int i = 0; i < 255; i += 1) // fades out G bring B full when i=255
  {
    lv[1] -= 1;
    lv[2] += 1;

    analogWrite(GREEN, lv[1]);
    analogWrite(BLUE, lv[2]);
    delay(delayTime);
  }

  lv[0] = 0;
  lv[1] = 0;
  lv[2] = 255;

  for (int i = 0; i < 255; i += 1) // fades out B bring R full when i=255
  {
    lv[2] -= 1;
    lv[0] += 1;

    analogWrite(BLUE, lv[2]);
    analogWrite(RED, lv[0]);
    delay(delayTime);
  }
}

void setColor(int r, int g, int b)
{
  Serial.println("About to write:");
  Serial.println(r);
  Serial.println(g);
  Serial.println(b);
  analogWrite(RED, r);
  analogWrite(GREEN, g);
  analogWrite(BLUE, b);
}

void  translateIR() // takes action based on IR code received
{
// describing Remote IR codes
  Serial.println(results.value, HEX);
  switch (results.value)
  {
    //case IR_BPlus: setBright(true);break;
    //case IR_BMinus: setBright(false);break;
    case IR_OFF: setColor(0, 0, 0); break;
    //COLORS
    case IR_R: setColor(255, 0, 0); break;
    case IR_G: setColor(0, 255, 0); break;
    case IR_B: setColor(0, 0, 255); break;
    case IR_W: setColor(255, 255, 255); break;
    case IR_B1: setColor(255, 20, 0); break;
    case IR_B2: setColor(0, 255, 20); break;
    case IR_B3: setColor(20, 0, 255); break;
    case IR_B4: setColor(255, 20, 255); break;
    case IR_B5: setColor(255, 90, 0); break;
    case IR_B6: setColor(0, 255, 90); break;
    case IR_B7: setColor(90, 0, 255); break;
    case IR_B8: setColor(255, 150, 255 ); break;
    case IR_B9: setColor(255, 191, 0); break;
    case IR_B10: setColor(0, 255, 191); break;
    case IR_B11: setColor(191, 0, 255); break;
    case IR_B12: setColor(120, 255, 255); break;
    case IR_B13: setColor(255, 255, 0); break;
    case IR_B14: setColor(0, 255, 255); break;
    case IR_B15: setColor(255, 0, 255); break;
    case IR_B16: setColor(150, 255, 255); break;

    //END COLORS
    case IR_FADE7: fade7();
  }// End Case

  delay(100); // Do not get immediate repeat
} //END translateIR

void setup()   /*----( SETUP: RUNS ONCE )----*/
{
  pinMode(RED, OUTPUT);
  pinMode(GREEN, OUTPUT);
  pinMode(BLUE, OUTPUT);
  Serial.begin(9600);
  Serial.println("IR Receiver Button Decode");
  ricevitore.enableIRIn(); // Start the receiver*/

}/*--(end setup )---*/

void loop()   /*----( LOOP: RUNS CONSTANTLY )----*/
{
  if (ricevitore.decode(&results)) // have we received an IR signal?
  {
    translateIR();
    ricevitore.resume(); // receive the next value*/
  }
} /*--(end main loop )-- */
deleted 96 characters in body
Source Link
John
  • 23
  • 4
#include "IRremote.h"

int pinRic = 9; // Signal Pin of IR receiver to Arduino Digital Pin 11
IRrecv ricevitore(pinRic);     // create instance of 'irrecv'
decode_results results;      // create instance of 'decode_results'
#define BLUE 3
#define GREEN 5
#define RED 6
#define IR_BPlus  0xFF3AC5  // 
#define IR_BMinus 0xFFBA45  // 
#define IR_ON     0xFF827D  // 
#define IR_OFF    0xFF02FD  // 
#define IR_R    0xFF1AE5  // 
#define IR_G    0xFF9A65  // 
#define IR_B      0xFFA25D  // 
#define IR_W    0xFF22DD  // 
#define IR_B1   0xFF2AD5  // 
#define IR_B2   0xFFAA55  // 
#define IR_B3   0xFF926D  // 
#define IR_B4   0xFF12ED  // 
#define IR_B5   0xFF0AF5  // 
#define IR_B6   0xFF8A75  // 
#define IR_B7   0xFFB24D  // 
#define IR_B8   0xFF32CD  // 
#define IR_B9   0xFF38C7  // 
#define IR_B10    0xFFB847  // 
#define IR_B11    0xFF7887  // 
#define IR_B12    0xFFF807  // 
#define IR_B13    0xFF18E7  // 
#define IR_B14    0xFF9867  // 
#define IR_B15    0xFF58A7  // 
#define IR_B16    0xFFD827  // 
#define IR_UPR    0xFF28D7  // 
#define IR_UPG    0xFFA857  // 
#define IR_UPB    0xFF6897  // 
#define IR_QUICK  0xFFE817  // 
#define IR_DOWNR  0xFF08F7  // 
#define IR_DOWNG  0xFF8877  // 
#define IR_DOWNB  0xFF48B7  // 
#define IR_SLOW   0xFFC837  // 
#define IR_DIY1   0xFF30CF  // 
#define IR_DIY2   0xFFB04F  // 
#define IR_DIY3   0xFF708F  // 
#define IR_AUTO   0xFFF00F  // 
#define IR_DIY4   0xFF10EF  // 
#define IR_DIY5   0xFF906F  // 
#define IR_DIY6   0xFF50AF  // 
#define IR_FLASH  0xFFD02F  // 
#define IR_JUMP3  0xFF20DF  // 
#define IR_JUMP7  0xFFA05F  // 
#define IR_FADE3  0xFF609F  // 
#define IR_FADE7  0xFFE01F  // 
#define incFact 30
int  brightFact = 0;
 int lv[3];


void fade7()
{
#define delayTime 10 // fading time between colors

lv[0] = 255; // choose a value between 1 and 255 to change the color.
lv[1] = 0;
lv[2] = 0;


for(int i = 0; i < 255; i += 1) // fades out R bring G full when i=255
{
lv[0] -= 1;
lv[1] += 1;

analogWrite(RED, lv[0]);
analogWrite(GREEN, lv[1]);
delay(delayTime);
}

lv[0] = 0;
lv[1] = 255;
lv[2] = 0;

for(int i = 0; i < 255; i += 1) // fades out G bring B full when i=255
{
lv[1] -= 1;
lv[2] += 1;

analogWrite(GREEN, lv[1]);
analogWrite(BLUE, lv[2]);
delay(delayTime);
}

lv[0] = 0;
lv[1] = 0;
lv[2] = 255;

for(int i = 0; i < 255; i += 1) // fades out B bring R full when i=255
{

lv[2] -= 1;
lv[0] += 1;

analogWrite(BLUE, lv[2]);
analogWrite(RED, lv[0]);
delay(delayTime);
}
}
void setColor(int r, int g, int b)
{
 
 
 Serial.println("About to write:");
 Serial.println(r);
  Serial.println(g);
  Serial.println(b);
  analogWrite(RED,r);
  analogWrite(GREEN,g);
  analogWrite(BLUE,b);
}
void  translateIR() // takes action based on IR code received

// describing Remote IR codes 

{
  Serial.println(results.value, HEX);
  switch(results.value)
  {
    //case IR_BPlus: setBright(true);break;
    //case IR_BMinus: setBright(false);break;
    case IR_OFF: setColor(0,0,0);break;
    //COLORS    
    case IR_R: setColor(255,0,0);break;
    case IR_G: setColor(0,255,0);break;
    case IR_B: setColor(0,0,255);break;
    case IR_W: setColor(255,255,255);break;    
    case IR_B1: setColor(255,20,0);break;   
    case IR_B2: setColor(0,255,20);break;
    case IR_B3: setColor(20,0,255);break;
    case IR_B4: setColor(255,20,255);break;    
    case IR_B5: setColor(255,90,0);break;
    case IR_B6: setColor(0,255,90);break;
    case IR_B7: setColor(90,0,255);break;
    case IR_B8: setColor(255,150,255 );break;    
    case IR_B9: setColor(255,191,0);break;
    case IR_B10: setColor(0,255,191);break;
    case IR_B11: setColor(191,0,255);break;
    case IR_B12: setColor(120,255,255);break;    
    case IR_B13: setColor(255,255,0);break;
    case IR_B14: setColor(0,255,255);break;
    case IR_B15: setColor(255,0,255);break;
    case IR_B16: setColor(150,255,255);break;

    //END COLORS
    case IR_FADE7: fade7();
    
  }// End Case

  delay(100); // Do not get immediate repeat


} //END translateIR

void setup()   /*----( SETUP: RUNS ONCE )----*/
{
  digitalWrite(RED, LOW);
  digitalWrite(GREEN, LOW);
  digitalWrite(BLUE, LOW);
  pinMode(RED, OUTPUT);
  pinMode(GREEN, OUTPUT);
  pinMode(BLUE, OUTPUT);
  Serial.begin(9600);
  Serial.println("IR Receiver Button Decode"); 
  ricevitore.enableIRIn(); // Start the receiver*/

}/*--(end setup )---*/

void loop()   /*----( LOOP: RUNS CONSTANTLY )----*/
{
   
  if (ricevitore.decode(&results)) // have we received an IR signal?
  
  {
    translateIR(); 
    ricevitore.resume(); // receive the next value*/
  }  
} /*--(end main loop )-- */
#include "IRremote.h"

int pinRic = 9; // Signal Pin of IR receiver to Arduino Digital Pin 11
IRrecv ricevitore(pinRic);     // create instance of 'irrecv'
decode_results results;      // create instance of 'decode_results'
#define BLUE 3
#define GREEN 5
#define RED 6
#define IR_BPlus  0xFF3AC5  // 
#define IR_BMinus 0xFFBA45  // 
#define IR_ON     0xFF827D  // 
#define IR_OFF    0xFF02FD  // 
#define IR_R    0xFF1AE5  // 
#define IR_G    0xFF9A65  // 
#define IR_B      0xFFA25D  // 
#define IR_W    0xFF22DD  // 
#define IR_B1   0xFF2AD5  // 
#define IR_B2   0xFFAA55  // 
#define IR_B3   0xFF926D  // 
#define IR_B4   0xFF12ED  // 
#define IR_B5   0xFF0AF5  // 
#define IR_B6   0xFF8A75  // 
#define IR_B7   0xFFB24D  // 
#define IR_B8   0xFF32CD  // 
#define IR_B9   0xFF38C7  // 
#define IR_B10    0xFFB847  // 
#define IR_B11    0xFF7887  // 
#define IR_B12    0xFFF807  // 
#define IR_B13    0xFF18E7  // 
#define IR_B14    0xFF9867  // 
#define IR_B15    0xFF58A7  // 
#define IR_B16    0xFFD827  // 
#define IR_UPR    0xFF28D7  // 
#define IR_UPG    0xFFA857  // 
#define IR_UPB    0xFF6897  // 
#define IR_QUICK  0xFFE817  // 
#define IR_DOWNR  0xFF08F7  // 
#define IR_DOWNG  0xFF8877  // 
#define IR_DOWNB  0xFF48B7  // 
#define IR_SLOW   0xFFC837  // 
#define IR_DIY1   0xFF30CF  // 
#define IR_DIY2   0xFFB04F  // 
#define IR_DIY3   0xFF708F  // 
#define IR_AUTO   0xFFF00F  // 
#define IR_DIY4   0xFF10EF  // 
#define IR_DIY5   0xFF906F  // 
#define IR_DIY6   0xFF50AF  // 
#define IR_FLASH  0xFFD02F  // 
#define IR_JUMP3  0xFF20DF  // 
#define IR_JUMP7  0xFFA05F  // 
#define IR_FADE3  0xFF609F  // 
#define IR_FADE7  0xFFE01F  // 
#define incFact 30
int  brightFact = 0;
 int lv[3];


void fade7()
{
#define delayTime 10 // fading time between colors

lv[0] = 255; // choose a value between 1 and 255 to change the color.
lv[1] = 0;
lv[2] = 0;


for(int i = 0; i < 255; i += 1) // fades out R bring G full when i=255
{
lv[0] -= 1;
lv[1] += 1;

analogWrite(RED, lv[0]);
analogWrite(GREEN, lv[1]);
delay(delayTime);
}

lv[0] = 0;
lv[1] = 255;
lv[2] = 0;

for(int i = 0; i < 255; i += 1) // fades out G bring B full when i=255
{
lv[1] -= 1;
lv[2] += 1;

analogWrite(GREEN, lv[1]);
analogWrite(BLUE, lv[2]);
delay(delayTime);
}

lv[0] = 0;
lv[1] = 0;
lv[2] = 255;

for(int i = 0; i < 255; i += 1) // fades out B bring R full when i=255
{

lv[2] -= 1;
lv[0] += 1;

analogWrite(BLUE, lv[2]);
analogWrite(RED, lv[0]);
delay(delayTime);
}
}
void setColor(int r, int g, int b)
{
 
 
 Serial.println("About to write:");
 Serial.println(r);
  Serial.println(g);
  Serial.println(b);
  analogWrite(RED,r);
  analogWrite(GREEN,g);
  analogWrite(BLUE,b);
}
void  translateIR() // takes action based on IR code received

// describing Remote IR codes 

{
  Serial.println(results.value, HEX);
  switch(results.value)
  {
    //case IR_BPlus: setBright(true);break;
    //case IR_BMinus: setBright(false);break;
    case IR_OFF: setColor(0,0,0);break;
    //COLORS    
    case IR_R: setColor(255,0,0);break;
    case IR_G: setColor(0,255,0);break;
    case IR_B: setColor(0,0,255);break;
    case IR_W: setColor(255,255,255);break;    
    case IR_B1: setColor(255,20,0);break;   
    case IR_B2: setColor(0,255,20);break;
    case IR_B3: setColor(20,0,255);break;
    case IR_B4: setColor(255,20,255);break;    
    case IR_B5: setColor(255,90,0);break;
    case IR_B6: setColor(0,255,90);break;
    case IR_B7: setColor(90,0,255);break;
    case IR_B8: setColor(255,150,255 );break;    
    case IR_B9: setColor(255,191,0);break;
    case IR_B10: setColor(0,255,191);break;
    case IR_B11: setColor(191,0,255);break;
    case IR_B12: setColor(120,255,255);break;    
    case IR_B13: setColor(255,255,0);break;
    case IR_B14: setColor(0,255,255);break;
    case IR_B15: setColor(255,0,255);break;
    case IR_B16: setColor(150,255,255);break;

    //END COLORS
    case IR_FADE7: fade7();
    
  }// End Case

  delay(100); // Do not get immediate repeat


} //END translateIR

void setup()   /*----( SETUP: RUNS ONCE )----*/
{
  digitalWrite(RED, LOW);
  digitalWrite(GREEN, LOW);
  digitalWrite(BLUE, LOW);
  pinMode(RED, OUTPUT);
  pinMode(GREEN, OUTPUT);
  pinMode(BLUE, OUTPUT);
  Serial.begin(9600);
  Serial.println("IR Receiver Button Decode"); 
  ricevitore.enableIRIn(); // Start the receiver*/

}/*--(end setup )---*/

void loop()   /*----( LOOP: RUNS CONSTANTLY )----*/
{
   
  if (ricevitore.decode(&results)) // have we received an IR signal?
  
  {
    translateIR(); 
    ricevitore.resume(); // receive the next value*/
  }  
} /*--(end main loop )-- */
#include "IRremote.h"

int pinRic = 9; // Signal Pin of IR receiver to Arduino Digital Pin 11
IRrecv ricevitore(pinRic);     // create instance of 'irrecv'
decode_results results;      // create instance of 'decode_results'
#define BLUE 3
#define GREEN 5
#define RED 6
#define IR_BPlus  0xFF3AC5  // 
#define IR_BMinus 0xFFBA45  // 
#define IR_ON     0xFF827D  // 
#define IR_OFF    0xFF02FD  // 
#define IR_R    0xFF1AE5  // 
#define IR_G    0xFF9A65  // 
#define IR_B      0xFFA25D  // 
#define IR_W    0xFF22DD  // 
#define IR_B1   0xFF2AD5  // 
#define IR_B2   0xFFAA55  // 
#define IR_B3   0xFF926D  // 
#define IR_B4   0xFF12ED  // 
#define IR_B5   0xFF0AF5  // 
#define IR_B6   0xFF8A75  // 
#define IR_B7   0xFFB24D  // 
#define IR_B8   0xFF32CD  // 
#define IR_B9   0xFF38C7  // 
#define IR_B10    0xFFB847  // 
#define IR_B11    0xFF7887  // 
#define IR_B12    0xFFF807  // 
#define IR_B13    0xFF18E7  // 
#define IR_B14    0xFF9867  // 
#define IR_B15    0xFF58A7  // 
#define IR_B16    0xFFD827  // 
#define IR_UPR    0xFF28D7  // 
#define IR_UPG    0xFFA857  // 
#define IR_UPB    0xFF6897  // 
#define IR_QUICK  0xFFE817  // 
#define IR_DOWNR  0xFF08F7  // 
#define IR_DOWNG  0xFF8877  // 
#define IR_DOWNB  0xFF48B7  // 
#define IR_SLOW   0xFFC837  // 
#define IR_DIY1   0xFF30CF  // 
#define IR_DIY2   0xFFB04F  // 
#define IR_DIY3   0xFF708F  // 
#define IR_AUTO   0xFFF00F  // 
#define IR_DIY4   0xFF10EF  // 
#define IR_DIY5   0xFF906F  // 
#define IR_DIY6   0xFF50AF  // 
#define IR_FLASH  0xFFD02F  // 
#define IR_JUMP3  0xFF20DF  // 
#define IR_JUMP7  0xFFA05F  // 
#define IR_FADE3  0xFF609F  // 
#define IR_FADE7  0xFFE01F  // 
#define incFact 30
int  brightFact = 0;
 int lv[3];


void fade7()
{
#define delayTime 10 // fading time between colors

lv[0] = 255; // choose a value between 1 and 255 to change the color.
lv[1] = 0;
lv[2] = 0;


for(int i = 0; i < 255; i += 1) // fades out R bring G full when i=255
{
lv[0] -= 1;
lv[1] += 1;

analogWrite(RED, lv[0]);
analogWrite(GREEN, lv[1]);
delay(delayTime);
}

lv[0] = 0;
lv[1] = 255;
lv[2] = 0;

for(int i = 0; i < 255; i += 1) // fades out G bring B full when i=255
{
lv[1] -= 1;
lv[2] += 1;

analogWrite(GREEN, lv[1]);
analogWrite(BLUE, lv[2]);
delay(delayTime);
}

lv[0] = 0;
lv[1] = 0;
lv[2] = 255;

for(int i = 0; i < 255; i += 1) // fades out B bring R full when i=255
{

lv[2] -= 1;
lv[0] += 1;

analogWrite(BLUE, lv[2]);
analogWrite(RED, lv[0]);
delay(delayTime);
}
}
void setColor(int r, int g, int b)
{
 
 
 Serial.println("About to write:");
 Serial.println(r);
  Serial.println(g);
  Serial.println(b);
  analogWrite(RED,r);
  analogWrite(GREEN,g);
  analogWrite(BLUE,b);
}
void  translateIR() // takes action based on IR code received

// describing Remote IR codes 

{
  Serial.println(results.value, HEX);
  switch(results.value)
  {
    //case IR_BPlus: setBright(true);break;
    //case IR_BMinus: setBright(false);break;
    case IR_OFF: setColor(0,0,0);break;
    //COLORS    
    case IR_R: setColor(255,0,0);break;
    case IR_G: setColor(0,255,0);break;
    case IR_B: setColor(0,0,255);break;
    case IR_W: setColor(255,255,255);break;    
    case IR_B1: setColor(255,20,0);break;   
    case IR_B2: setColor(0,255,20);break;
    case IR_B3: setColor(20,0,255);break;
    case IR_B4: setColor(255,20,255);break;    
    case IR_B5: setColor(255,90,0);break;
    case IR_B6: setColor(0,255,90);break;
    case IR_B7: setColor(90,0,255);break;
    case IR_B8: setColor(255,150,255 );break;    
    case IR_B9: setColor(255,191,0);break;
    case IR_B10: setColor(0,255,191);break;
    case IR_B11: setColor(191,0,255);break;
    case IR_B12: setColor(120,255,255);break;    
    case IR_B13: setColor(255,255,0);break;
    case IR_B14: setColor(0,255,255);break;
    case IR_B15: setColor(255,0,255);break;
    case IR_B16: setColor(150,255,255);break;

    //END COLORS
    case IR_FADE7: fade7();
    
  }// End Case

  delay(100); // Do not get immediate repeat


} //END translateIR

void setup()   /*----( SETUP: RUNS ONCE )----*/
{
  pinMode(RED, OUTPUT);
  pinMode(GREEN, OUTPUT);
  pinMode(BLUE, OUTPUT);
  Serial.begin(9600);
  Serial.println("IR Receiver Button Decode"); 
  ricevitore.enableIRIn(); // Start the receiver*/

}/*--(end setup )---*/

void loop()   /*----( LOOP: RUNS CONSTANTLY )----*/
{
   
  if (ricevitore.decode(&results)) // have we received an IR signal?
  
  {
    translateIR(); 
    ricevitore.resume(); // receive the next value*/
  }  
} /*--(end main loop )-- */
Source Link
John
  • 23
  • 4

Problem with PWM function on RGB led and IR

I'm having an issue in controlling a RGB led with Arduino and a remote control. When including the library IRRemote.h (version 2.2.3), the blue channel only works in on/off logic instead of PWM. If I remove the library, the pwm logic of the blue channel works normally and it does accept the whole range (0-255). I'm using an Arduino/Elegoo Uno R3 board. What could be causing the issue?

Below the code:

#include "IRremote.h"

int pinRic = 9; // Signal Pin of IR receiver to Arduino Digital Pin 11
IRrecv ricevitore(pinRic);     // create instance of 'irrecv'
decode_results results;      // create instance of 'decode_results'
#define BLUE 3
#define GREEN 5
#define RED 6
#define IR_BPlus  0xFF3AC5  // 
#define IR_BMinus 0xFFBA45  // 
#define IR_ON     0xFF827D  // 
#define IR_OFF    0xFF02FD  // 
#define IR_R    0xFF1AE5  // 
#define IR_G    0xFF9A65  // 
#define IR_B      0xFFA25D  // 
#define IR_W    0xFF22DD  // 
#define IR_B1   0xFF2AD5  // 
#define IR_B2   0xFFAA55  // 
#define IR_B3   0xFF926D  // 
#define IR_B4   0xFF12ED  // 
#define IR_B5   0xFF0AF5  // 
#define IR_B6   0xFF8A75  // 
#define IR_B7   0xFFB24D  // 
#define IR_B8   0xFF32CD  // 
#define IR_B9   0xFF38C7  // 
#define IR_B10    0xFFB847  // 
#define IR_B11    0xFF7887  // 
#define IR_B12    0xFFF807  // 
#define IR_B13    0xFF18E7  // 
#define IR_B14    0xFF9867  // 
#define IR_B15    0xFF58A7  // 
#define IR_B16    0xFFD827  // 
#define IR_UPR    0xFF28D7  // 
#define IR_UPG    0xFFA857  // 
#define IR_UPB    0xFF6897  // 
#define IR_QUICK  0xFFE817  // 
#define IR_DOWNR  0xFF08F7  // 
#define IR_DOWNG  0xFF8877  // 
#define IR_DOWNB  0xFF48B7  // 
#define IR_SLOW   0xFFC837  // 
#define IR_DIY1   0xFF30CF  // 
#define IR_DIY2   0xFFB04F  // 
#define IR_DIY3   0xFF708F  // 
#define IR_AUTO   0xFFF00F  // 
#define IR_DIY4   0xFF10EF  // 
#define IR_DIY5   0xFF906F  // 
#define IR_DIY6   0xFF50AF  // 
#define IR_FLASH  0xFFD02F  // 
#define IR_JUMP3  0xFF20DF  // 
#define IR_JUMP7  0xFFA05F  // 
#define IR_FADE3  0xFF609F  // 
#define IR_FADE7  0xFFE01F  // 
#define incFact 30
int  brightFact = 0;
 int lv[3];


void fade7()
{
#define delayTime 10 // fading time between colors

lv[0] = 255; // choose a value between 1 and 255 to change the color.
lv[1] = 0;
lv[2] = 0;


for(int i = 0; i < 255; i += 1) // fades out R bring G full when i=255
{
lv[0] -= 1;
lv[1] += 1;

analogWrite(RED, lv[0]);
analogWrite(GREEN, lv[1]);
delay(delayTime);
}

lv[0] = 0;
lv[1] = 255;
lv[2] = 0;

for(int i = 0; i < 255; i += 1) // fades out G bring B full when i=255
{
lv[1] -= 1;
lv[2] += 1;

analogWrite(GREEN, lv[1]);
analogWrite(BLUE, lv[2]);
delay(delayTime);
}

lv[0] = 0;
lv[1] = 0;
lv[2] = 255;

for(int i = 0; i < 255; i += 1) // fades out B bring R full when i=255
{

lv[2] -= 1;
lv[0] += 1;

analogWrite(BLUE, lv[2]);
analogWrite(RED, lv[0]);
delay(delayTime);
}
}
void setColor(int r, int g, int b)
{
 
 
 Serial.println("About to write:");
 Serial.println(r);
  Serial.println(g);
  Serial.println(b);
  analogWrite(RED,r);
  analogWrite(GREEN,g);
  analogWrite(BLUE,b);
}
void  translateIR() // takes action based on IR code received

// describing Remote IR codes 

{
  Serial.println(results.value, HEX);
  switch(results.value)
  {
    //case IR_BPlus: setBright(true);break;
    //case IR_BMinus: setBright(false);break;
    case IR_OFF: setColor(0,0,0);break;
    //COLORS    
    case IR_R: setColor(255,0,0);break;
    case IR_G: setColor(0,255,0);break;
    case IR_B: setColor(0,0,255);break;
    case IR_W: setColor(255,255,255);break;    
    case IR_B1: setColor(255,20,0);break;   
    case IR_B2: setColor(0,255,20);break;
    case IR_B3: setColor(20,0,255);break;
    case IR_B4: setColor(255,20,255);break;    
    case IR_B5: setColor(255,90,0);break;
    case IR_B6: setColor(0,255,90);break;
    case IR_B7: setColor(90,0,255);break;
    case IR_B8: setColor(255,150,255 );break;    
    case IR_B9: setColor(255,191,0);break;
    case IR_B10: setColor(0,255,191);break;
    case IR_B11: setColor(191,0,255);break;
    case IR_B12: setColor(120,255,255);break;    
    case IR_B13: setColor(255,255,0);break;
    case IR_B14: setColor(0,255,255);break;
    case IR_B15: setColor(255,0,255);break;
    case IR_B16: setColor(150,255,255);break;

    //END COLORS
    case IR_FADE7: fade7();
    
  }// End Case

  delay(100); // Do not get immediate repeat


} //END translateIR

void setup()   /*----( SETUP: RUNS ONCE )----*/
{
  digitalWrite(RED, LOW);
  digitalWrite(GREEN, LOW);
  digitalWrite(BLUE, LOW);
  pinMode(RED, OUTPUT);
  pinMode(GREEN, OUTPUT);
  pinMode(BLUE, OUTPUT);
  Serial.begin(9600);
  Serial.println("IR Receiver Button Decode"); 
  ricevitore.enableIRIn(); // Start the receiver*/

}/*--(end setup )---*/

void loop()   /*----( LOOP: RUNS CONSTANTLY )----*/
{
   
  if (ricevitore.decode(&results)) // have we received an IR signal?
  
  {
    translateIR(); 
    ricevitore.resume(); // receive the next value*/
  }  
} /*--(end main loop )-- */