GPIO

Uma característica poderosa do Raspberry Pi é a linha de pinos GPIO (entrada/saída de propósito geral) ao longo da borda superior da placa. Um cabeçalho GPIO de 40 pinos é encontrado em todas as placas Raspberry Pi atuais (não povoado em Pi Zero e Pi Zero W). Antes do modelo Pi 1 B+ (2014), as placas compreendiam um cabeçalho mais curto de 26 pinos.

Any dos pinos GPIO pode ser designado (em software) como um pino de entrada ou saída e usado para uma ampla gama de propósitos.

Nota: a numeração dos pinos GPIO não está em ordem numérica; os pinos GPIO 0 e 1 estão presentes na placa (pinos físicos 27 e 28) mas são reservados para uso avançado (ver abaixo).

Voltages

Dois pinos 5V e dois pinos 3V3 estão presentes na placa, bem como um número de pinos de terra (0V), que são inconfiguráveis. Os restantes pinos são todos pinos 3V3 de uso geral, significando que as saídas são definidas para 3V3 e as entradas são tolerantes a 3V3.

Pinos de saída

Um pino GPIO designado como pino de saída pode ser definido como alto (3V3) ou baixo (0V).

Entradas

Um pino GPIO designado como pino de entrada pode ser lido como alto (3V3) ou baixo (0V). Isto é facilitado com o uso de resistências internas de pull-up ou pull-down. Os pinos GPIO2 e GPIO3 têm resistências de pull-up fixas, mas para outros pinos isto pode ser configurado em software.

Outros

Asim como simples dispositivos de entrada e saída, os pinos GPIO podem ser usados com uma variedade de funções alternativas, alguns estão disponíveis em todos os pinos, outros em pinos específicos.

  • PWM (modulação por largura de pulso)
    • Software PWM disponível em todos os pinos
    • Hardware PWM disponível em GPIO12, GPIO13, GPIO18, GPIO19
  • SPI
    • SPI0: MOSI (GPIO10); MISO (GPIO9); SCLK (GPIO11); CE0 (GPIO8), CE1 (GPIO7)
    • SPI1: MOSI (GPIO20); MISO (GPIO19); SCLK (GPIO21); CE0 (GPIO18); CE1 (GPIO17); CE2 (GPIO16)
  • I2C
    • Data: (GPIO2); Relógio (GPIO3)
    • DadosEEPROM: (GPIO0); Relógio EEPROM (GPIO1)
  • Série
    • TX (GPIO14); RX (GPIO15)

GPIO pinout

É importante estar ciente de qual pin é qual. Algumas pessoas usam etiquetas de pinos (como o RasPiO Portsplus PCB, ou o Raspberry Leaf imprimível).

Uma referência útil pode ser acessada no Raspberry Pi abrindo uma janela de terminal e executando o comando pinout. Esta ferramenta é fornecida pela biblioteca GPIO Zero Python, que é instalada por padrão na imagem desktop do Raspberry Pi OS, mas não no Raspberry Pi OS Lite.

>

Para mais detalhes sobre as capacidades avançadas dos pinos GPIO veja o diagrama pinout interativo do gadgetoid.

Programação com GPIO

É possível controlar os pinos GPIO usando uma série de linguagens e ferramentas de programação. Veja os seguintes guias para começar:

  • GPIO com Scratch 1.4
  • GPIO com Scratch 2
  • GPIO com Python
  • GPIO com C/C++ usando interface padrão do kernel via libgpiod
  • GPIO com C/C++ usando biblioteca de terceiros pigpio
  • GPIO com Processing3

Aviso: embora conectar componentes simples aos pinos da GPIO seja perfeitamente seguro, é importante ter cuidado com a forma como se liga as coisas. Os LEDs devem ter resistências para limitar a corrente que passa através deles. Não use 5V para componentes 3V3. Não ligue motores directamente aos pinos GPIO, em vez disso utilize um circuito de ponte-H ou uma placa controladora de motores.

Permissões

Para utilizar as portas GPIO o seu utilizador deve ser um membro do grupo gpio. O usuário pi é um membro por padrão, outros usuários precisam ser adicionados manualmente.

sudo usermod -a -G gpio <username>

Deixe uma resposta

O seu endereço de email não será publicado.