Arduino Forum

International => Français => Topic started by: AdraKK on Aug 14, 2017, 12:38 am

Title: RGB couleur affiché sur lcd avec une telecommande
Post by: AdraKK on Aug 14, 2017, 12:38 am
Bonjour je tente de créer un système qui, avec une télécommande change la couleur d'une RGB tout en affichant le nom de la couleur sur un lcd
Mais rien ne passe a l'appuie du bouton voici mon code:

Code: [Select]
#include <LiquidCrystal.h>                                                                                                          //inclue la bibliotheque du lcd

#include <IRremote.h>                                                                                                               //inclue la blibliotheque de l'infrarouge
#include <IRremoteInt.h>


int receiver = 7;                                                                                                                   //receveur IR sur pin 7

const int rs = 12, en = 11, d4= 5, d5 = 4, d6 = 3, d7 = 2;                                                                          //attribue des pins au lcd

const byte PIN_LED_R = 8;                                                                                                           //couleur rouge de la RGB sur le pin 8
const byte PIN_LED_G = 9;                                                                                                           //couleur verte de la RGB sur le pin 9
const byte PIN_LED_B = 10;                                                                                                          //couleur bleue de la RGB sur le pin 10

LiquidCrystal lcd(rs, en, d4, d5, d6, d7);                                                                                          //initialise le lcd

IRrecv irrecv(receiver);                                                                                                            //initialise le recepteur IR
decode_results results;                                                                                                             //initialise le decodage de l'IR

void setup()                                                                                                                          //Setup de démarage
{
    lcd.begin(16, 2);                                                                                                               //allume le lcd
   
    irrecv.enableIRIn();                                                                                                            //allume L'IR
   
    pinMode(PIN_LED_R, OUTPUT);
    pinMode(PIN_LED_G, OUTPUT);
    pinMode(PIN_LED_B, OUTPUT);
   
    displayColor(0, 0, 0);                                                                                                          //met la RBG sur "etteinte"
}



void translateIR()
{
    switch(results.value)

    {
        case 0xFFA25D: displayColor(255, 0, 0); lcd.print("     ROUGE"); delay(2000); lcd.clear(); break;                            //en cas d'appuis sur le bouton power met la RBG en rouge
                                                                                                                                    //affiche rouge sur le lcd puis au bout de 2s l'etteint
        default:
          Serial.println("Other Button");                                                                                           //si un autre bouton est préssé "Other button" s'affiche (sur logiciel)
         
    }

  delay(1000);
}

void displayColor(byte r, byte g, byte b)                                                                                         
    analogWrite(PIN_LED_R, r);
    analogWrite(PIN_LED_G, g);
    analogWrite(PIN_LED_B, b);
}


void loop()
{
 
}
Title: Re: RGB couleur affiché sur lcd avec une telecommande
Post by: infobarquee on Aug 14, 2017, 10:02 am
pourquoi ouvrir un nouveau topic au lieu de continuer sur le 1er ICI (http://forum.arduino.cc/index.php?topic=494765.msg3375166#msg3375166)
Title: Re: RGB couleur affiché sur lcd avec une telecommande
Post by: fdufnews on Aug 14, 2017, 04:40 pm
Tu ferais bien de regarder les exemples livrés avec la librairie IRremote.
Tu n'appelles pas la fonction qui vérifie si un message est arrivé, ni celle qui interprète le message reçu.
A minima, loop() devrait avoir cette allure:
Code: [Select]
void loop() {
  if (irrecv.decode(&results)) {
    Serial.println(results.value, HEX);
    irrecv.resume(); // Receive the next value
  }
}
Pour ton application le Serial.print() devrait être remplacé par ta fonction translateIR()