user50783: I have the Arduino Uno and I'm working on a project to build a controller with different inputs and some outputs for readouts. In classic style, I got the Arduino Uno before realising that I might not have enough I/O points to connect everything I want. 
I believe there is a way to expand my Uno by using an I/O Expander? Has anyone done something similar? The controller will be for a specific game called Kerbal Space Station. There are quite a few articles helping with the build but not specific to what I am looking at.
Components I'll be using:
INPUTS:

2x 3 Axis Joysticks
11x Microswitches
6x Toggle switches
1x Analogue slider
1x 10 point rotary switch

OUTPUTS:

4x 12 pin LED Bargraphs
1x Serial LCD module display


user4143: Yes, all those things have been done before.  Here's some suggestions for components:

MCP23S17 / MCP23017 - SPI / I2C IO expander (16 IO pins, many can be connected together) (MCP23S17 library)
MCP3208 - 8 channel 12-bit SPI ADC (MCP3208 library)
TLC59116 - I2C Constant Current LED PWM driver (16 channel) (TLC59116 library)

Some other useful tutorials that may help:

Keypad - read lots of buttons / switches with not many pins
Multiplex - Control many LEDs with not many IO pins


50783: <p>I have the Arduino Uno and I'm working on a project to build a controller with different inputs and some outputs for readouts. In classic style, I got the Arduino Uno before realising that I might not have enough I/O points to connect everything I want. </p>

<p>I believe there is a way to expand my Uno by using an I/O Expander? Has anyone done something similar? The controller will be for a specific game called Kerbal Space Station. There are quite a few articles helping with the build but not specific to what I am looking at.</p>

<p>Components I'll be using:</p>

<p>INPUTS:</p>

<ul>
<li>2x 3 Axis Joysticks</li>
<li>11x Microswitches</li>
<li>6x Toggle switches</li>
<li>1x Analogue slider</li>
<li>1x 10 point rotary switch</li>
</ul>

<p>OUTPUTS:</p>

<ul>
<li>4x 12 pin LED Bargraphs</li>
<li>1x Serial LCD module display</li>
</ul>
 4143: <p>Yes, all those things have been done before.  Here's some suggestions for components:</p>

<ul>
<li>MCP23S17 / MCP23017 - SPI / I2C IO expander (16 IO pins, many can be connected together) (<a href="https://github.com/MajenkoLibraries/MCP23S17" rel="nofollow noreferrer">MCP23S17 library</a>)</li>
<li>MCP3208 - 8 channel 12-bit SPI ADC (<a href="https://github.com/MajenkoLibraries/MCP3208" rel="nofollow noreferrer">MCP3208 library</a>)</li>
<li>TLC59116 - I2C Constant Current LED PWM driver (16 channel) (<a href="https://github.com/MajenkoLibraries/TLC59116" rel="nofollow noreferrer">TLC59116 library</a>)</li>
</ul>

<p>Some other useful tutorials that may help:</p>

<ul>
<li><a href="https://playground.arduino.cc/Main/KeypadTutorial" rel="nofollow noreferrer">Keypad</a> - read lots of buttons / switches with not many pins</li>
<li><a href="https://www.instructables.com/id/LED-Multiplexing-101-6-and-16-RGB-LEDs-With-Just-a/" rel="nofollow noreferrer">Multiplex</a> - Control many LEDs with not many IO pins</li>
</ul>
