Raspberry Pi açıldığında neden bazı GPIO pinleri YÜKSEK?


18

KURULUM referansındaki pim 18'e bir LED bağlı olarak kablolanmış kolay bir devrem var. LED'i açan PIN'i 18 YÜKSEK konumuna getirmek için basit bir program çalıştırıyorum ve birkaç saniye sonra PIN 18'i DÜŞÜK olarak ayarladım ve sonunda programımı GPIO.cleanup () ile bitiriyorum.

Bu noktada LED kapalıdır, yani pim 18 kapalıdır (DÜŞÜK). Şimdi Raspberry Pi'mi yeniden başlatıyorum veya yeniden başlatıyorum ve geri yüklendiğinde, Raspberry Pi'yi yeniden başlatmadan önce pim sönmüş olsa bile, pim 18'deki LED tekrar yanıyor.

Bu neden oluyor olabilir? Raspberry Pi açıldığında pim 18 gibi belirli bir pimi nasıl yapılandırabilirim? Ve Raspberry Pi açıldığında GPIO pinlerinin YÜKSEK olmasını istemiyorum.

Bu sorundan endişeliyim, çünkü pim 18'in bir robot üzerindeki bir DC motora bağlı olduğunu ve Raspberry Pi açıldığında motor açılacak ve bu istediğim bir şey değil, çünkü bu müdahale edecek robotun tüm yapısı ve bazı motorlar çalışabilir ve bazıları bağlı oldukları pimlere bağlı olarak çalışmayacaktır. Tüm motorları senkronize bir şekilde manuel olarak açmak istiyorum.

Başka bir şey, tüm pimlerin bu problemi olmamasıdır. Bazıları Ahududu Pi önyükleme yaparken kapalı, ama diğerleri yok.


Bu LED, yüksek olarak ayarladığınız kadar parlak mı yoksa sadece parlıyor mu?
goldilocks

3.3 volt uygulanır.
Viktor Ahududu

Peki /sys/class/gpio18 pinine girip dışa aktarırsanız, sistem hiçbir şeyi değiştirmezseniz hangi durumda olduğunu söyler?
goldilocks

"/ Sys / class / gpio" yazdığımda "-bash: / sys / class / gpio: Bir dizin" yazıyor. Belirli bir pinin nasıl dışa aktarılacağından emin değilim.
Viktor Ahududu

Bunun açıklamaları var , bu yüzden pişman olmaya zahmet etmeyeceğim. Bu örnek, üzerinde echoyazan, yani bir şey belirleyen bir tür ağırdır . Dışa aktardıktan sonra, bundan kaçınmak ve sadece catyönü ve değeri kontrol etmek için okur kullanın .
goldilocks

Yanıtlar:


25

Açılışta GPIO'lar dahili dirençlerden yüksek veya alçak çekilir. Çekmenin belirli bir GPIO için yüksek veya düşük olup olmadığı BCM2835 ARM Çevre Birimleri'nin 102. sayfasında ayrıntılı olarak verilmektedir .

Linux çekirdeği başlatıldığında ve aygıt ağacı etkinleştirilmişse (büyük olasılıkla) GPIO'ları aygıt ağacı ayarlarına göre yeniden yapılandırır. Yüklenen modüller /etc/modulesGPIO durumunu da güncelleyebilir.

Başlatma sırasında çalıştırdığınız diğer tüm yazılımlar, aygıt ağacı ayarları ve modül yüklerinden sonra GPIO'ları yeniden yapılandırabilir.

Sistem başlangıcında yanlış tetiklenebilecek bir donanımınız varsa bir donanım çözümü bulmak en güvenlisidir.



2

Çok geç olduğunu biliyorum. Cevaplamak. Pimi manuel olarak düşük değere ayarlayan bir python betiği veya bash betiği yazabilir ve her önyüklemede çalışacak bir cron işi zamanlayabilirsiniz. Herhangi bir sistem / kritik dosyayı değiştirmeniz gerekmez. Cron dışında

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.