Kısa cevap
Hayır, sen (neredeyse) bilmiyorsun. Aslında tam tersi - onları GPIO olmayacak, ancak özel amaçlarına hizmet edecek şekilde ayarlamanız gerekiyor. Tek istisna UART pinleridir. Ayrıca ve I²C pimleri bir şekilde özel.
UART pimleri
Konsol için UART pinleri çekirdek tarafından kullanılır. Kullanıma hazır olmalarını istiyorsanız, sistemi kullanmamaları için yapılandırmanız gerekir:
- düzenleme
/boot/cmdline.txt
ve kaldırma console=ttyAMA0,115200
ve kgdboc=ttyAMA0,115200
parametreleri
satırı düzenleyin /etc/inittab
ve yorum yapın ( #
karakteri önüne koyun ):
T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100
RaspberryPi'nizi yeniden başlatın
Şimdi pimler sistem tarafından kullanılmamalıdır ve bunları kullanabilirsiniz
I²C pimleri
I²C pimlerinde yerleşik 1.8k çekme dirençleri bulunur. Engelli olamazlar. Bu, bazı durumlarda pimlerin kullanımını sınırlar (ancak diğerlerinde kullanışlı olabilir).
Ek çözümler
GPIO pinlerinde azalıyorsa, bazı ek (ancak basit) donanımları kullanarak bazen numarasını kolayca genişletebilirsiniz. Örneğin çıktı için hem satın almak hem de kullanmak için shift registers
veya I²C I/O expanders
(`` I²C veri yolu genişleticileri '' olarak da bilinir) kullanabilirsiniz. Kullanımının bir örneğini burada bulabilirsiniz .
PFC8574
(veya bu ailenin benzeri) o kadar popüler ki sizin için tüm iletişimi işleyen kullanıma hazır bir çekirdek modülü var ( resmi RaspberryPi çekirdeğinde etkin değil, kullanmak için kendi çekirdeğinizi derlemeniz gerekecek ). Modül çağrılır gpio_pcf857x
, modprobe
(I²C sürücüleri ile birlikte) yüklemeniz ve çipi I²C
veri yoluna bağlamanız şartıyla , şu şekilde etkinleştirebilirsiniz:
echo pcf8574 0x27 > /sys/class/i2c-adapter/i2c-0/new_device
nerede pcf8574
gerçek çip adıdır (bu modül birkaç farklı cips gibi işleyebilir pca967x
ve max732x
) ve 0x27
onun adresi üzerinde I²C
(o kablolama yaparken çip adresini yapılandırabilirsiniz).
Bu, /sys/class/gpio/
dizinde, sys
arabirimi (örneğin wiringPiSetupSys()
wiringPi'de) kullanmanız koşuluyla , bunları RaspberryPi'deki diğer GPIO bağlantı noktaları ile aynı şekilde kullanmanıza olanak tanıyan girişler oluşturur . Ne yazık ki, Python'un RPi.GPIO
modülü bu modu desteklemediğinden, bu pinleri bu kütüphane ile kullanamaz. Pimler 248-255 veya benzeri yüksek sayılara sahip olacaktır.
Not: PCF8574
olduğu sinking current
- 20mA olduğu kadar (düşük halde kabul) o sürücü lavabo verebilir ancak yüksek devlet geçmesi ancak kaynak 0.1 mA. Bu, genellikle ters mantıkta kullanacağınız anlamına gelir, yani +3.3V -> LED -> RESISTOR -> PCF8574_PIN
.