라즈베리 파이가 부팅 될 때 GPIO 핀이 왜 높습니까?


18

BOARD 레퍼런스의 핀 18에 LED가 연결된 쉬운 회로가 연결되어 있습니다. 간단한 프로그램을 실행하여 핀 18을 HIGH로 설정하면 LED가 켜지고 몇 초 후에 핀 18을 LOW로 설정하고 마지막으로 GPIO.cleanup ()으로 프로그램을 종료합니다.

이 시점에서 LED가 꺼집니다. 이는 핀 18이 꺼져 있음을 의미합니다 (LOW). 이제 Raspberry Pi를 재부팅하거나 다시 시작한 후 다시 부팅하면 Raspberry Pi를 재부팅하기 전에 핀이 꺼져 있어도 핀 18의 LED가 다시 켜집니다.

왜 이런 일이 일어날 수 있습니까? Raspberry Pi가 부팅 될 때 핀 18과 같은 특정 핀을 끄도록 구성하려면 어떻게해야합니까? 그리고 Raspberry Pi가 부팅 될 때 GPIO 핀이 HIGH로 유지되는 것을 원하지 않습니다.

핀 18이 로봇의 DC 모터에 연결되어 있고 라즈베리 파이가 부팅되면 모터가 켜지고 이것이 방해하는 것이기 때문에 원하는 것이 아닙니다.이 문제에 대해 걱정하고 있습니다. 로봇의 전체 구조와 연결된 일부 핀에 따라 일부 모터가 시작되고 다른 모터가 시작되지 않을 수 있습니다. 동기화 된 방식으로 모든 모터를 수동으로 켜고 싶습니다.

다른 하나는 모든 핀에이 문제가있는 것은 아닙니다. 일부는 Raspberry Pi가 부팅 될 때 꺼져 있지만 다른 것은 그렇지 않습니다.


LED를 높게 설정했을 때와 같이 밝게 켜 집니까?
goldilocks

3.3 볼트가 적용되었습니다.
Viktor Raspberry

/sys/class/gpio핀 18에 들어가서 내 보내면 아무것도 바꾸지 않으면 시스템의 상태는 무엇입니까?
goldilocks

"/ sys / class / gpio"작성하면 "-bash : / sys / class / gpio : Is a directory"라고 표시됩니다. 특정 핀을 내보내는 방법을 잘 모르겠습니다.
Viktor Raspberry

그에 대한 설명 이 풍부 하기 때문에 나는 역류하지 않을 것입니다. 이 예제는에 대해 무겁 echo습니다. 내 보낸 후에는 그것을 삼가고 cat방향과 값을 확인하기 위해 읽습니다.
goldilocks

답변:


25

전원을 켤 때 GPIO는 내부 저항을 통해 높거나 낮습니다. 특정 GPIO의 풀이 높거나 낮은 지 여부는 BCM2835 ARM 주변 장치의 102 페이지에 자세히 나와 있습니다.

Linux 커널이 시작되고 장치 트리가 활성화 된 경우 장치 트리 설정에 따라 GPIO가 재구성됩니다. 로드 된 모듈 /etc/modules도 GPIO 상태를 업데이트 할 수 있습니다.

시작할 때 실행중인 다른 소프트웨어는 장치 트리 설정 및 모듈로드에 이어 GPIO를 재구성 할 수 있습니다.

시스템 시작시 잘못 트리거 될 수있는 하드웨어가있는 경우 하드웨어 솔루션을 찾는 것이 가장 안전합니다.



2

꽤 늦었다는 것을 알고 있습니다. 대답합니다. python 스크립트 또는 bash 스크립트를 작성하여 수동으로 핀을 low로 설정하고 매 부팅마다 cron 작업이 실행되도록 예약 할 수 있습니다. 시스템 / 중요 파일을 수정할 필요가 없습니다. cron 외에

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.