Arduino UNO pins assignment conflict (IRremote.h library)

Hi All. I have a small home automation project, one of the rooms is monitored by device based on Arduino UNO. Device has LCD screen 16x2 with I2C interface and IR transmitter. My problem is that LCD screen (back light) and IR LED are both using PIN3:

#include <Wire.h>
#include <LCD.h>
#include <LiquidCrystal_I2C.h>
#include <DHT.h>
#include <Bounce2.h>
#include <SPI.h>
#include <PubSubClient.h>
#include <Ethernet.h>
#include <IRremote.h>

#define DHTPIN1 8     // what pin we're connected to
#define DHTPIN2 9     // what pin we're connected to
#define BUTTON_PIN 10     // the number of the pushbutton pin

#define I2C_ADDR    0x27 // <<----- Add your address here.  Find it from I2C Scanner
#define BACKLIGHT_PIN     3
#define En_pin  2
#define Rw_pin  1
#define Rs_pin  0
#define D4_pin  4
#define D5_pin  5
#define D6_pin  6
#define D7_pin  7


// Initialize DHT sensor for normal 16mhz Arduino
DHT dht_outdoor(DHTPIN1, DHT22);
DHT dht_indoor(DHTPIN2, DHT11);

// initialize the library with the numbers of the interface pins
LiquidCrystal_I2C lcd(I2C_ADDR, En_pin, Rw_pin, Rs_pin, D4_pin, D5_pin, D6_pin, D7_pin);

I tried to google for solution it seems that "IRremote.h" is hard coded to use PIN3 due to some limitation on timer resources. I also tried to assign different PIN for LCD backlight, but it did not work as well, screen remains black:

// Switch on the backlight
  lcd.setBacklightPin(BACKLIGHT_PIN, POSITIVE);
  lcd.setBacklight(HIGH);

Is there a way to change PIN3 for IR transmitter or backlight PIN for LCD?

My problem is that LCD screen (back light) and IR LED are both using PIN3:

Why? The IR NEEDS to use the timer-driven pin. The back-light does not. Move the back-light to some other pin.

Of course I tried to move back light PIN to all available free pins (10, 11, 12 and 13) on my Arduino UNO R3, but unfortunately LCD remains black. Thus, I guess it is also somehow hard coded. If you have sample code that works for I2C LCD 16x2 where back light PIN != 3 please share it with me.

Of course I tried to move back light PIN to all available free pins (10, 11, 12 and 13) on my Arduino UNO R3, but unfortunately LCD remains black.

First, we can't see that you changed your code correctly. Second, when using an Ethernet shield, those pins are NOT free.

You can use the analog pins as digital pins, you know.

I think that on an I2C LCD the pin 3 (backlight) is referring to the pin 3 of the port expander, not pin 3 of Uno.

PaulS:
First, we can't see that you changed your code correctly. Second, when using an Ethernet shield, those pins are NOT free.

You can use the analog pins as digital pins, you know.

Hi, first of all thanks for the hint regarding Ethernet shield and used digital pins. I just tried to use analog ports A0-A5 as digital, but this did not help as well.