2.c. 3pi Robot Pin Mappings

General features of the Pololu 3pi robot, top view.

Labeled bottom view of the Pololu 3pi robot.

Specific features of the Pololu 3pi robot, top view.

Pin Assignment Table Sorted by Function

 Function   Arduino Pin   mega168 Pin 
free digital I/Os (x3)
(remove PC5 jumper to free digital pin 19)
digital pins 0, 1, 19 PD0, PD1, PC5
free analog inputs (if you remove jumpers, x3) analog inputs 5 – 7 PC5, ADC6, ADC7
motor 1 (left motor) control (A and B) digital pins 5 and 6 PD5 and PD6
motor 2 (right motor) control (A and B) digital pins 3 and 11 PD3 and PB3
QTR-RC reflectance sensors (left to right, x5) digital pins 14 – 18 PC0 – PC4
red (left) user LED digital pin 1PD1
green (right) user LED digital pin 7PD7
user pushbuttons (left to right, x3) digital inputs 9, 12, and 13 PB1, PB4, and PB5
buzzer digital pin 10 PB2
LCD control (RS, R/W, E) digital pins 2, 8, and 4 PD2, PB0, and PD4
LCD data (4-bit: DB4 – DB7) digital pins 9, 12, 13, and 7 PB1, PB4, PB5, and PD7
reflectance sensor IR LED control
(drive low to turn IR LEDs off)
digital pin 19
(through jumper)
PC5
user trimmer potentiometer analog input 7
(through jumper)
ADC7
2/3rds of battery voltage analog input 6
(through jumper)
ADC6
ICSP programming lines (x3) digital pins 11, 12, and 13 PB3, PB4, PB5
reset pushbutton reset PC6
UART (RX and TX) digital pins 0 and 1 PD0 and PD1
I2C/TWI inaccessable to user
SPI inaccessable to user



Pin Assignment Table Sorted by Pin

 Arduino Pin   Orangutan Function   Notes/Alternate Functions 
digital pin 0 free digital I/O USART input pin (RXD)
digital pin 1 free digital I/O connected to red user LED (high turns LED on)
USART output pin (TXD)
digital pin 2 LCD control line RS external interrupt 0 (INT0)
digital pin 3 M2 control line Timer2 PWM output B (OC2B)
digital pin 4 LCD control line E USART external clock input/output (XCK)
Timer0 external counter (T0)
digital pin 5 M1 control line Timer0 PWM output B (OC0B)
digital pin 6 M1 control line Timer0 PWM output A (OC0A)
digital pin 7 LCD data line DB7 connected to green user LED (high turns LED on)
digital pin 8 LCD control line R/W Timer1 input capture (ICP1)
divided system clock output (CLK0)
digital pin 9 LCD data line DB4 user pushbutton (pressing pulls pin low)
Timer1 PWM output A (OC1A)
digital pin 10 buzzer Timer1 PWM output B (OC1B)
digital pin 11 M2 control line Timer2 PWM output A (OC2A)
ISP programming line
digital pin 12 LCD data line DB5 user pushbutton (pressing pulls pin low)
Caution: also an ISP programming line
digital pin 13 LCD data line DB6 user pushbutton (pressing pulls pin low)
Caution: also an ISP programming line
digital pin 14 QTR-RC reflectance sensor (drive high for 10 us, then wait for line input to go low)
sensor labeled PC0 (leftmost sensor)
digital pin 15 QTR-RC reflectance sensor (drive high for 10 us, then wait for line input to go low)
sensor labeled PC1
digital pin 16 QTR-RC reflectance sensor (drive high for 10 us, then wait for line input to go low)
sensor labeled PC2 (center sensor)
digital pin 17 QTR-RC reflectance sensor (drive high for 10 us, then wait for line input to go low)
sensor labeled PC3
digital pin 18 QTR-RC reflectance sensor (drive high for 10 us, then wait for line input to go low)
sensor labeled PC4 (rightmost sensor)
digital pin 19 analog input and digital I/O jumpered to sensors’ IR LEDs (driving low turns off emitters)
ADC input channel 5 (ADC5)
analog input 6 dedicated analog input jumpered to 2/3rds of battery voltage
ADC input channel 6 (ADC6)
analog input 7 dedicated analog input jumpered to user trimmer potentiometer
ADC input channel 7 (ADC7)
reset reset pushbutton internally pulled high; active low
digital I/O disabled by default