Support » Programming Orangutans and the 3pi Robot from the Arduino Environment » 2. ATmega168/328-Arduino Pin Mapping »
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 1 | PD1 |
green (right) user LED | digital pin 7 | PD7 |
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 lowdigital I/O disabled by default |