Há pouco tempo postei como fazer e utilizar um
botão para inicializar o Raspberry Pi, só que para desligar o sistema é necessário monitorar o GPIO3(pino 5) utilizado no artigo anterior.
Isso pode ser feito sem qualquer modificação fisíca no nosso botão pois na placa o GPIO3(pino 5) já é ligado a um resistor de 1.8k (Errata: o resistor na verdade é do pull up e não em série. Aconselho o uso de um resistor de 470 Ohm no botão para segurança). O código que fiz a seguir faz todo trabalho sujo, roda como daemon e no caso do Raspbian pode ser executado como usuário comum se preciso.
Compile o código:
gcc codigo.c -o codigo
E execute:
./codigo
Caso não tenha erros, o processo iniciado ficará rodando como um daemon indefinidamente, monitorando o gpio3. Após apertar o botão o processo de desligamento é iniciado, chamando "shutdown -h now".
Referência:
http://ryniker.ods.org/raspberrypi/MagPi/GPIO_interrupts
qual o programa para compilar o código?
ResponderExcluirGCC, via terminal gcc codigo.c -o codigo
ExcluirPois...eu ainda sou mesmo novato...
ExcluirPode indicar-me um tutorial?
É relativamente simples, você somente precisará salvar o código com algum nome, ex: codigo.c, irá precisar abrir um terminal no seu raspberry pi, ir até a pasta que está salvo o arquivo, pelo terminal, utilizando cd /caminho/da/pasta, se tiver salvo na sua pasta "home" não precisará mudar de pasta, aí é somente compilar com o comando "gcc codigo.c -o codigo" e executar ./codigo e já poderá testar o botão.
ExcluirTem como fazer esse código funcionar com o botão sendo usado no pino p6?
ResponderExcluirNo meu conhecimento não, pois o P6 é ligado em um pino do SoC que não é um GPIO, o que funcionaria é para ligar a placa ou fazer hardreset, mas desligar não.
ExcluirBoa Noite,
ResponderExcluirGostaria de saber se vc teria um codigo para desligar a ventoinha que estah ligado ao PI pelos pinos de +5V e GRUND.
Grato,
Luis Ferreira
Olá, com a ventoinha ligada diretamente dessa forma não tem como, só há controle nos pinos GPIOs, entretanto você também não pode ligar diretamente neles pois não suportam a corrente da ventoinha, podendo até queimar.
ExcluirUma das soluções mais básicas é utilizar um transistor (em conjunto com um resistor e diodo de protecao) para controlar essa ventoinha pelo GPIO.
Só funciona no raspbian ou em qualquer sistema instalado nele?
Excluirtiago, se estiver falando do código do post, na teoria em qualquer sistema (desde que linux) instalado no Raspberry Pi deve funcionar desde que tenha acesso ao sudo pelo usuário, para utilizar o comando shutdown, eu não testei em outros, caso não funcione em algum me avise!
ExcluirEste comentário foi removido pelo autor.
ResponderExcluirEste comentário foi removido pelo autor.
ResponderExcluirUma pergunta, fazendo esse código, o botão da matéria anterior vai servir para ligar e desligar?
ResponderExcluirE esse código vai servir para w10?
Sim, funciona para ligar e desligar, pois para ligar ele não depende do código. O código não roda em windows 10 iot, só em linux.
ExcluirEste comentário foi removido pelo autor.
ResponderExcluirOutra pergunta, é possível fazer um boot de inicialização para alternar entre o w10 e recalbox emulador
ResponderExcluirOlá, na teoria é possível, entretanto não vi ninguém até agora fazer tal coisa. Os dual boots que vi no raspberry pi eram feitos com sistemas linux.
ExcluirOutra pergunta, é possível fazer um boot de inicialização para alternar entre o w10 e recalbox emulador
ResponderExcluirEu salvo no caso esse código em qual extensão? sou novato no raspberry. Esse código serve pro B+?
ResponderExcluirObrigado
Pode salvar como .c e sim serve no B+.
ExcluirNão funcionou no Pi3. Tenho o Pi2 e funcionou perfeitamente.
ResponderExcluirTem ideia do que pode ser ?
Aliás tenho outros scripts em Phyton para ler os GPIOS que só funciona no Pi2, será que meu Pi3 esta ferrado os GPIOS ?
Mas que estranho, nem rodando como root eles funcionam?
ExcluirConseguiu fazer funcionar? o meu tbm não funcionou
ExcluirConsegui fazer funcionar dessa maneira, porém não sei se é a mais correta, inclui a linha abaixo no arquivo /etc/rc.local
Excluir/home/pi/./codigo &
e agora esta desligando pelo botão
Olá Rodrigo, é bem estranho esse problema. Assim que meu Raspberry Pi 3 chegar irei testar para ver o que ocorre e dou um parecer a cerca disso.
ExcluirOla!!! Gostaria de testar essa possibilidade do botão, tanto de ligar, quanto de desligar no meu Rpi3B. Você saberia dizer quais seriam os pinos que devo usar no meu GPIO pois sei que houve uma mudança em relação aos primeiros RPi. Muito obrigado!!!
ExcluirEste comentário foi removido pelo autor.
ResponderExcluirFunciona no PI4? O resistor eu ligo entre o botão e o p5 ou o p6? Ou não faz diferença?
ResponderExcluir