Como controlar pinos gpio em seu pi framboesa

Para ter o acesso ganho Raspberry Pi aos pinos GPIO, você deve instalar um módulo Python que age como uma interface entre a linguagem e os pinos. Isso permite que um programa para ler no que está acontecendo com os sinais nas linhas de GPIO.

Video: Controlando os pinos do Raspberry Pi via console

Existem algumas opções diferentes, mas talvez o mais fácil de instalar é RPi.GPIO. Talvez a maneira mais fácil de instalar, é a partir de uma janela do terminal com o comando

 sudo apt-get install python3-rpi.gpio

Se você tiver uma versão anterior deste módulo, você tem que primeiro desinstalar o antigo apagando os arquivos manualmente. Encontrá-los com este comando em uma janela de linha de comando

find / usr | grep python | grep -i GPIO

e excluir os que você encontrar.

Video: Controlar acionamento de Raspberry Pi via WEB (IoT)

Qualquer programa Python que precisa acessar os pinos GPIO devem fazer as seguintes operações:

  1. Importar o módulo para conversar com os pinos.

  2. Configurar como você deseja consultar os pinos.

  3. Inicializar os pinos GPIO que deseja usar.

  4. Ler ou escrever para os pinos.

Video: Soundweb London Hardware Overview - Chapter 3 - GPIO



Isso simplesmente define todos os pinos GPIO ser entradas e depois constantemente lê-los de volta para o Raspberry Pi. Ela mostra o novo estado quando qualquer das entradas mudar.

#! / Usr / / python # GPIO monitor de estado de entrada env bin sobre o estado Raspberry Pi # GPIO - mostra o estado de todas as entradas GPIO no P1 # pinos não GPIO como ximport RPi.GPIO como GPIOprint "Exibir os estados pino de entrada GPIO"impressão "Ctrl C para parar"boardRevision = GPIO.RPI_REVISION # definir os pinos para useif boardRevision == 1: pinagem = [-1, -1,0, -1,1, -1,4,14, -1,15,17,18,21, -1,22,23, -1,24,10, -1,9,25,11,8, -1,7] se boardRevision == 2: pinagem = [-1, -1,2, -1, 3, -1,4,14, -1,15,17,18,27, -1,22,23, -1,24,10, -1,9,25,11,8, -1,7] GPIO.setmode (GPIO.BCM) # utilizar verdadeiro GPIO numberinginputState = [5 para temperatura no intervalo (0,26)] # lista em branco para a entrada levelsfor pino na gama (0,26): # definir todos os pinos de inputsif pinagem [pino ] = -1:! GPIO.setup (pinagem [pino], GPIO.IN, pull_up_down = GPIO.PUD_UP) # substituir linha acima com a linha abaixo para ver o efeito de factores de produção flutuante # GPIO.setup (pinagem [pino], GPIO.IN, pull_up_down = GPIO.PUD_OFF) while True: # fazer foreverneedUpdate = Falsefor check-in range (0,26): #! olhada em cada entrada na turnif pinagem [verificação] = -1: se GPIO.input (pinagem [ verifique]): latestState = 1else: latestState = 0if (latestState = inputState [verificação]): needUpdate = Trueprint "GPIO ", Pinagem [verificação], "mudado para uma lógica", LatestStateinputState [verificação] = latestStateif needUpdate: # exibição todos pin statesprint "Estado atual"para linha no intervalo (1, -1, -1): para o show na faixa (linha, 26,2): se inputState [show] = 5: imprimir inputState [show], else: print "X",impressão " "#end de circuito principal

Dê uma olhada no código e ver o que está acontecendo. Depois de importar o módulo RPi.GPIO, o código encontra a revisão da placa e inicializa uma lista com base no que a revisão da placa é. A lista tem um valor de -1 nas posições dos pinos em que não há pino GPIO (isto é, onde há um pino de alimentação ou do solo).

Video: Como fazer e instalar um cooler no Raspberry Pi!!!

Caso contrário, ela tem o número GPIO na posição do pino correspondente da lista. Em seguida, o código cria uma lista que contém os valores de entrada para cada pino.

Este código é preenchido com um valor arbitrário de 5, sabendo que qualquer valor de entrada real será apenas uma zero ou um. Em seguida, todos os pinos são ajustados para ser entradas com os resistores pull-up internas ativado. Que termina a parte de instalação do programa.

O resto do código é um loop que é executado sempre. Ele verifica cada entrada, olhando para o pinagem lista e chamar a GPIOinput (pinos) para retornar o valor de cada entrada. Este é comparado com o valor da última vez. Se for diferente, ela mostra o estado atual de entrada que, juntamente com todos os valores de entrada dispostas na mesma ordem que os pinos do conector P1.

Para executar o programa, abrir uma janela de terminal, navegue até o diretório que contém o programa e tipo

sudo python GPIOstate.py

Você precisa do sudo prefixo porque o sistema operacional restringe o acesso aos pinos GPIO e você precisa de privilégios de root para ser capaz de usá-los.

Para testar isso, basta conectar uma extremidade de um fio a uma das ligações à terra e sair por aí, por sua vez, ligando a outra extremidade do fio para cada entrada. Todas as entradas mostram inicialmente como aqueles lógica na tela e mudar para zeros lógicos quando você aterrar a entrada.

Tenha cuidado para não ligar o fio terra a qualquer uma das saídas de potência: Este será curto para fora o poder do seu Raspberry Pi. Para evitar isso, colocar um pequeno pedaço de plasticina (Play-Doh, massa de modelar, ou tack azul) nos topos de parafuso dos conectores de alimentação.


Publicações relacionadas