6. AVR Pin Assignment Table Sorted by Function

Function ATmega324/1284 Pin
free analog input and digital I/O (x8)PA0 – PA7
free digital I/O (x8)PB3, PC0, PC1, PD0 – PD4, PD5**
free digital outputPB4*
free PWM outputs (x2)PB3, PB4
red user LEDPD1
green user LEDPC4
UART0PD0, PD1
UART1PD2, PD3
user pushbuttons (bottom to top, x3)PC2, PC3, PC5
motor 1 (direction, speed)PC7, PD7
motor 2 (direction, speed)PC6, PD6
buzzerPD4
LCD control (RS, R/W, E)PB0, PB1, PB2
LCD data (4-bit: DB4 – DB7)PC2 – PC5
SPI auxiliary processor control lines (x3)PB5, PB6, PB7
ICSP programming lines (x3)PB5, PB6, PB7
ADC reference pinAREF
reset pushbuttonRESET

*: Using PB4/SS as an input will interfere with communication to the auxiliary processor, so we recommend using it as a digital output. See Section 3.j of the Pololu USB AVR C/C++ User’s Guide for more information.

**: PD5 is a free digital I/O unless you want to use the built-in servo pulse hardware.