The RPi.GPIO
module provides a simple interface to the basic digital logic functionality of the GPIO header as well as software synthesized PWM, which allows the Pi to output an analog like signal.
Before starting to use the GPIO pins, it is important to know what each pin can do and what it is connected to. The following diagram shows the pinouts for each version and revision of the Raspberry Pi:
Typically, when using the GPIO pins, you should avoid using the GPIOs 14 and 15 as they are by default used for a serial terminal which provides access to the shell running on the Pi. GPIOs 0, 1, 2, and 3 should also be avoided as they are used for the I2C interface, which requires a pull-up resistor to be used on the pins that is fitted by default and can cause issues with some devices.