Porty rejestrów pozwalają na niskopoziomowe manipulowanie pinami I/O.
Arduino posiada 3 porty:
B (piny 8 – 13)
C (analogowe piny wejściowe)
D (piny 0 – 7)
Każdy port jest kontrolowany przez 3 rejestry:
DDR – określa kierunek pinu INPUT [0] / OUTPUT [1] (może być odczytywany i nadpisywany)
PORT – LOW / HIGH(może być odczytywany i nadpisywany)
PIN – zczytuje stan wejściowy INPUT (może być tylko odczytywany)
DDRD = B11111100; // ustawia kierunek pinów dla portu D (0-7), pin 0 i 1 - INPUT, piny 2-7 OUTPUT
PORTD = B11100000; // ustawia sygnał dla pinów portu D, pin 0-4 LOW, pin 5-7 HIGH
Manipulowanie pinami odpowiedzialnymi za komunikację jest niewskazane.