Jak mogę używać pinów GPIO jako wyjść cyfrowych?

28

Czytałem, że Raspberry Pi ma wiele pinów wejściowych i wyjściowych.

  • Jak mogę je zmienić? (z Python?)
  • Jaka logika napięcia?
  • Czy potrzebuję rezystorów podwyższających lub obniżających?
  • Czy muszę przełączać piny z wejść na wyjścia?
  • Które szpilki są dostępne?
Alex L.
źródło
Twoje drugie pytanie nie jest jasne
Sohan Arafat

Odpowiedzi:

16

Piny GPIO mają napięcie 3,3 V, a maksymalny prąd wynosi 16 mA. Oznacza to, że nie będziesz w stanie zasilać prawie niczego bezpośrednio. Dlatego musisz przynajmniej użyć przełącznika tranzystorowego, jeśli nie bardziej zaawansowanego obwodu ochronnego. Więcej informacji na ten temat można znaleźć w samouczku RPi EGHS: Układy ochrony GPIO .

Ogólny przewodnik to urządzenia peryferyjne niskiego poziomu RPi .

Gil
źródło
3
Czy możesz rozszerzyć swoją odpowiedź? Chciałbym zobaczyć odpowiedzi na wszystkie pytania oraz podsumowanie informacji w podanych linkach. W tej chwili informacje o RTC są niepoprawne (RTC nie ma znaczenia)
Alex L
11

Te instrukcje nie są specyficzne dla Pythona, ale mogą pomóc w rozpoczęciu eksperymentowania z GPIO. /raspberrypi//a/350/668 zawiera informacje o bibliotece i specyficznym użyciu Pythona.

Po uruchomieniu Raspberry Pi przy użyciu zalecanej dystrybucji Debian GPIO jest wyłączone. Musisz włączyć każdy pin osobno.

Jeśli robisz to za pomocą / sys , „Ścieżki w Sysfs” będą interesujące (wyszukaj w https://www.kernel.org/doc/Documentation/gpio/sysfs.txt ). W szczególności można włączyć pin, „eksportując” go. Wszelkie poniższe polecenia zakładają, że korzystasz z uprawnień roota (sudo lub w inny sposób) lub zmieniłeś uprawnienia / własność modyfikowanych plików wirtualnych.

echo 4 > /sys/class/gpio/export

Umożliwia to pinowi GPIO nr 4, który następnie powoduje istnienie / sys / class / gpio / gpio4, który zawiera kilka plików wirtualnych. Pliki te obejmują „kierunek”, który określa, czy jest to pin wejściowy, czy wyjściowy, „wartość”, która jest albo tylko do odczytu dla danych wejściowych, albo do zapisu dla danych wyjściowych i zawiera bieżącą wartość, i inne.

echo out > /sys/class/gpio/gpio4/direction # set it as an output pin
echo 1 > /sys/class/gpio/gpio4/value # set the value to ON
echo 0 > /sys/class/gpio/gpio4/value # set the value to OFF
echo in > /sys/class/gpio/gpio4/direction # set it as input
cat /sys/class/gpio/gpio4/value # get the value
echo 4 > /sys/class/gpio/unexport # disables pin 4 and removes the gpio4 directory

Oczywiście prawdopodobnie wolisz użyć istniejącej biblioteki, aby wykonać GPIO dostarczone lub zgodne z wybranym językiem. Ale jeśli chcesz czegoś prostego, możesz po prostu połączyć się bezpośrednio z sysfs, aby zrobić bardzo proste GPIO.

Emmaly Wilson
źródło
0

Zaimportuj bibliotekę python i możesz łatwo kontrolować piny. Istnieje wiele samouczków online. Potrzebujesz i ide z obsługą języka Python i podstawową wiedzą na temat programowania w języku Python.

Piny GPIO są dostępne dla wejść i wyjść.

Sohan Arafat
źródło