Input

In principal any sensor can be used as an input so you may want to look at information on sensors as well. These are the ones that are easy for people to manipulate.

Momentary Button

Pro Cheap, simple, uses only 1 bit port

Con If you use a bunch uses a lot of port bits

Find Code at:

Toggle switch

Pro Self indicating, not too expensive.

Con Not very flexible unless used for binary input.

Find Code at:

Rotary Switch

Pro

Con

Find Code at:

Can be self decoding: position of switch indicates state of microcontroller.

Rotary Encoder

Pro 2 wire interface.

Con Code a bit complex, needs interrupt processing or fast polling.

Find Code at:

Potentiometer Or Resistor Network and Switches

Use to feed a voltage to an analog to digitial converter. You sould be able to get quite a few discrete values out of this while still having it easy to use. Instead of a pot you can use a rotary switch with fixed resistors switched.

Keypad

TV remote control and IR remote receiver

Pro: lots of pretty buttons, relatively low-cost -- under $2 for the IR remote receiver module, then use TV remote control you already have or a $10 remote; uses only 1 port pin

Con: may be difficult to program and debug; you never know when the batteries will die.

Output

Single Led

In its simplest form either on or off, slightly harder to read are various patterns of blinks.

Pro: easiest to program and lowest-cost user interface: from under $.10 for a tiny LED to a few dollars for a high-intensity LED. Can "read" from all the way across the room.

Con: only shows 1 bit of information at a time

Multiple Led

Pro Cheap, simple, easy to drive. One port bit per led ( untill you get to large numbers where ticks kick in ) Match with a pushbutton and state of the microcontroller and means to change it is simple.

Con: Can use more port bits than you have. Some LEDs may be dimmer than others. Uses more power than most other user interfaces.