Project Feasibility Using Arduino Uno R3 Plus

Hello All,

As you can tell from my avatar information to the left I am new to the forums. My project will be making my own ventilated (cooled) and heated seats using the Arduino Uno R3 Plus as the controller. Here is a list of the hardware I have:

Arduino Uno R3 Plus
COM-10982 RGB push button (illuminated) rotary encoder
COM-11493 Yellow LED circular bar graph indicator
BOB-11040 LED RingCoder Breakout Board
(4) 12VDC cooling fans
(2) 12VDC heating pads

The desired result:

Initial state = off. First press of encoder turns on cooling feature (blue LED illuminated on rotary encoder). Rotating the encoder clockwise will sequentially turn on each fan and fill the circular LED bar graph until max position of 255 is reached. Counterclockwise will "undo" previous input. I figured I could split the encoder reading as follows:

0000-0010 turns on fan #1; illuminate LEDs 1-4 on bar graph
0011-0100 turns on fan #2 (while keeping fan #1 on); illuminate LEDs 1-8 on bar graph
0101-0110 turns on fan #3 (while keeping the previous 2 on); illuminate LEDs 1-12 on bar graph
0111-1000 turns on fan #4 (all 4 fans on); illuminate all LEDs (1-16) on bar graph

Pressing the encoder a second time changes functions from cooling to heating (changing LED from blue to red on rotary encoder). Rotating the encoder clockwise will sequentially turn on the heating pads and fill the circular LED bar graph until max position of 255 is reached. Counterclockwise rotation will "undo" previous input. I would like to split the encoder readings as follows:

0000-0100 turn on heating pad #1 and illuminate circular bar graph LEDs 1-8
0101-1000 turn on heating pad #2 (keeping pad#1 on) and illuminate all circular bar graph LEDs (1-16)

I tried Google for guidance/answers but to no avail. Before we begin code discussion, I would just like to know if this project is feasible or if I need more hardware/better Arduino controller. I am thinking multiplexing could work but I'm not sure.

Thank you for taking the time to read this and if you decide to respond, thank you so much for your input.

-Matt