У меня есть простая схема, со светодиодом, подключенным к контакту 18 на эталонной плате. Я запускаю простую программу, чтобы установить вывод 18 в положение ВЫСОКОЕ, что включает светодиод, а затем через пару секунд я устанавливаю вывод 18 в положение НИЗКИЙ, и, наконец, я завершаю свою программу с помощью GPIO.cleanup ().
В этот момент светодиод выключен, что означает, что вывод 18 выключен (НИЗКИЙ). Теперь я перезагружаю или перезагружаю мой Raspberry Pi, и когда он снова загружается, светодиод на контакте 18 снова включается, даже если контакт был выключен до того, как я перезагрузил Raspberry Pi.
Почему это может происходить? Как я могу настроить определенный вывод, например, вывод 18, чтобы он отключался при загрузке Raspberry Pi? И я не хочу, чтобы какие-либо контакты GPIO были на ВЫСОКОМ, когда Raspberry Pi загрузится.
Я обеспокоен этой проблемой, потому что, скажем, контакт 18 подключен к двигателю постоянного тока на роботе, и когда Raspberry Pi загрузится, двигатель включится, и это не то, что я хочу, потому что это будет мешать вся конструкция робота, и некоторые двигатели могут запускаться, а другие - нет, в зависимости от контактов, к которым они подключены. Я хочу вручную включить все двигатели синхронно.
Еще одна вещь состоит в том, что не все контакты имеют эту проблему. Некоторые останавливаются, когда Raspberry Pi загружается, а другие нет.
/sys/class/gpio
и экспортируете контакт 18, в каком состоянии система скажет, что находится, если вы ничего не меняете?
echo
, что пишет, то есть устанавливает что-то. После того, как вы экспортируете его, вы хотите воздержаться от этого и просто использовать cat
, который читает, чтобы проверить направление и значение.