ISO C++ forbids comparison between pointer and integer

Bonjour, j'ai encore besoin d'aide !

Dans ces codes, j'envoie des caractères en fonction de l'état des capteurs par RF et j'aimerais qu'une fois envoyés, le récepteur vérifie les caractères afin de choisir quelles LED allumer.

Emetteur :

 #include <VirtualWire.h>

    //Grove - 315(433) RF link kit Demo v1.0
    //by :http://www.seeedstudio.com/
    //connect the sent module to D2 to use  
    #include <VirtualWire.h>

    int RF_TX_PIN = 2; //Sortie de la communication
    char *msg = "none";
    
    int ENTREE_C = 8; //Entrée du capteur contact
    int ENTREE_I = 4; //Entrée du capteur infrarouge
    
    int etat_capteur_c = 0; //Etat du capteur contact
    int etat_capteur_i = 0; //Etat du capteur infra
   

    void setup()
    {
      pinMode(ENTREE_C, INPUT); //Capteur en entrée
      pinMode(ENTREE_I, INPUT); //Capteur en entrée
      
      vw_set_tx_pin(RF_TX_PIN); // transmission en pin 2
      vw_setup(2000); // transmission 2000bit/s
    }

    void loop()
    {
      etat_capteur_c = digitalRead(ENTREE_C); //La lecture du capteur = cette constante
      etat_capteur_i = digitalRead(ENTREE_I); 
      
        
      if ((etat_capteur_i == HIGH) and (etat_capteur_c == LOW)) //Infra = 1 et Contact = 0
      {
        char *msg = "L"; //message = Led lettres + buzzer
        vw_send((uint8_t *)msg, strlen(msg));  // Envoyer message toutes les 1s
        delay(1000);
        
      }
      else if ((etat_capteur_i == HIGH) and (etat_capteur_c ==HIGH))  //Infra = 1 et Contact = 1
      {
        
        char *msg = "C"; //message = Led colis + buzzer
        vw_send((uint8_t *)msg, strlen(msg));  // Envoyer message toutes les 1s
        delay(1000);
        
      }
      else //Infra = 0 et Contact = 0 ou Infra = 0 et Contact= 1
      
      {
        char *msg = "0"; //message = rien
        vw_send((uint8_t *)msg, strlen(msg));  // Envoyer message toutes les 1s
        delay(1000);
      }
      
    }

Recepteur :

 //Grove - 315(433) RF link kit Demo v1.0
    //by :http://www.seeedstudio.com/
    //connect the receive module to D2 to use ..
    #include <VirtualWire.h>

    int RF_RX_PIN = 2;

    int led_colis = 8;
    int led_lettre = 13;
    int buzzer = 7;
   

    void setup()
    {
      pinMode(led_colis, OUTPUT); //pin 8
      pinMode(led_lettre, OUTPUT); //pin 13
      pinMode(buzzer, OUTPUT); //pin 7
       
      Serial.begin(9600);
      Serial.println("setup");
      vw_set_rx_pin(RF_RX_PIN);  // Setup receive pin.
      vw_setup(2000); // Transmission speed in bits per second.
      vw_rx_start(); // Start the PLL receiver.
    }

    void loop()
    {
      uint8_t buf[VW_MAX_MESSAGE_LEN];
      uint8_t buflen = VW_MAX_MESSAGE_LEN;
      if(vw_get_message(buf, &buflen)) // non-blocking I/O
      {
        int i;
        // Message with a good checksum received, dump HEX
        Serial.print("Got: ");
        for(i = 0; i < buflen; ++i)
        {
          Serial.print(buf[i], HEX);
           Serial.print(" ");

          if (buf[i] == "L")
           {

            
           }

        
          
          //Serial.print(buf[i]);
        }
        Serial.println("");
      }

        
        
      }

L'erreur   if (buf[i] == "L") est la suivante :

ISO C++ forbids comparison between pointer and integer

Si j'ai bien compris je n'ai pas le droit de comparais le "pointer" avec l'"integer" ?
Je m'y connais très peu, merci à l'avance pour votre aide !

Bonjour,

Effectivement "L" est une chaine de caractères représentée par son adresse dans cette expression.
Ce que tu veux c'est comparer à un caractère donc

 if (buf[i] == 'L')