As folhas de dados dos microcontroladores AVR são razoavelmente boas de ler. Basta procurar no Google o controlador exato no seu Arduino (por exemplo, ATmege328) e encontrar a folha de dados "Completa" no site atmel.com . Não faça o download do "Resumo", pois não inclui muitas informações. Faça o download da folha de dados em atmel.com, que é o único local com a documentação mais recente.
Existem três registros usados nas E / S básicas (consulte o capítulo "Portas de E / S"):
Onde n é um identificador de porta, uma letra que varia de A, B, C, ... dependendo do número de pinos de E / S que seu controlador possui. Cada bit em cada registro representa um único pino GPIO (sim, você precisa de algum conhecimento básico em binário para entender isso completamente).
- DDR n , Data Direction Register: Isso basicamente configura um pino para a entrada (0) ou a saída (1).
- PORT n , Port n Data Register: Quando um pino é definido como saída, o bit relacionado alterna o pino de saída alto (1) ou baixo (0). Quando configurado como entrada, isso permite um resistor de pull-up fraco no pino de saída.
- PIN n , Porta n Registro de entrada: Use este registro para ler o nível atual de um pino configurado como entrada.