İlan

Raspberry Pi'nizde GPIO pinlerini kullanmayı öğrenmek, tüm olasılıkları açar. Başlangıç ​​projeleri ile öğrenilen temel ilkeler, hem DIY elektroniği hem de programlama hakkında faydalı bilgilere giden yolu açmaktadır.

Bu eğitimde Raspberry Pi projenize bir düğme eklemenin iki yolu gösterilecektir. Düğme bir LED'i kontrol etmek için kullanılacaktır. Yazılı talimatlar videonun altında bulunmaktadır.

İhtiyacın olacak

Başlamak için aşağıdaki bileşenlere sahip olduğunuzdan emin olun:

  • 1 x Raspberry Pi (Herhangi bir yapacak, bu öğreticide 3B modeli kullanılıyor)
  • 1 x Basma Düğmesi
  • 1 x LED
  • 1 x 220 Ohm Direnç (Daha yüksek değerler iyi, LED'iniz daha sönük olacak)
  • 1 x Breadboard
  • Bağlama telleri

Toplandıktan sonra, şuna benzeyen bileşenlere sahip olmalısınız:

Pi Düğmesi Eğitimi için Gerekli Parçalar

Raspbian işletim sistemi kurulu bir SD karta da ihtiyacınız olacak. Bunu yapmanın en hızlı yolu NOOBS (Kutudan Çıktığı Yeni Yazılım) görüntüsüdür. Bunun nasıl yapılacağına ilişkin talimatlar bu videoda mevcuttur:

Devrenin Kurulumu

Devreyi yapmak için Pi'nin GPIO pinlerini kullanacaksınız ve eğer bunlara aşina değilseniz

instagram viewer
Pi GPIO pimleri kılavuzu yardım edecek. Buradaki devre neredeyse öncekimizle aynı Raspberry Pi LED projesi, bugün kullanacağınız düğmenin eklenmesiyle.

Devrenizi bu şemaya göre ayarlayın:

Pi Düğmesi Eğitimi için Fritzing Diyagramı
  • 5v ve GND pimler breadboard'un güç raylarına bağlanır.
  • Pin 12 (GPIO 18) LED'in pozitif ayağına bağlanır.
  • Bir ayağı rezistans LED'in negatif bacağına bağlanır ve diğer bacak breadboard'un toprak rayına bağlanır.
  • Pin 16 (GPIO 23) düğmenin bir tarafına takılır, diğer taraf breadboard'un toprak rayına bağlanır.

Kurulduktan sonra, nasıl görünmesi gerektiği aşağıda açıklanmıştır:

Raspberry Pi bir düğmeye ve bir breadboard LED bağladım.

Doğru olduğundan emin olmak için devrenizi kontrol edin ve ardından Raspberry Pi'nizi açın.

Yöntem 1: RPi. GPIO Kütüphanesi

Pi önyükleme yaptıktan sonra menüye gidin ve Programlama> Thonny Python IDE. Yeni bir Python betiği açılacaktır. Python'da tamamen yeniyseniz, yeni başlayanlar için harika bir dildir ve Python hakkında daha fazla bilgi edinmek için birçok harika yer Bu öğretici ile işiniz bittiğinde!

Thonny Python IDE

RPi'yi alarak başlayın. GPIO kitaplığı ve kart modunun ayarlanması.

ithalat RPi. GPIO olarak GPIO GPIO.setmode (GPIO.BOARD)

Şimdi LED ve düğme pin numaraları için değişkenleri bildirin.

ledPin = 12. buttonPin = 16. 

Pano modu olarak ayarladığımızdan YAZI TAHTASI GPIO numaraları yerine pin numaralarını kullanıyoruz. Bu sizin için kafa karıştırıcıysa, bir Raspberry Pi pinout tablosu bunu temizlemeye yardımcı olabilir.

Pi Pinout'um

Düğmeyi Ayarlama

GPIO pinlerini ayarlama zamanı. LED pimini çıkışa ve düğme pimini bir çekme direnci ile girişe ayarlayın

GPIO.setup (ledPin, GPIO.OUT) GPIO.setup (buttonPin, GPIO.IN, pull_up_down = GPIO.PUD_UP)

GPIO.IN'dan sonraki metin dahili çekme direnci Ahududu Pi. Düğmeden temiz bir okuma elde etmek için bunu etkinleştirmeniz gerekir. Düğme topraklama pimine gittiğinden, giriş pimini siz basana kadar YÜKSEK tutmak için bir çekme direncine ihtiyacımız vardır.

Devam etmeden önce, çekme ve çekme dirençlerine bakalım.

Intermission: Çekme / Çekme Dirençleri

Giriş yapmak için bir GPIO pini yapılandırdığınızda, durumunu belirlemek için bu pimi okur. Bu devrede, bir pimin olup olmadığını okumalısınız YÜKSEK veya DÜŞÜK düğmesine basıldığında LED'i tetiklemek için. Bu, bir iğnenin sahip olabileceği tek eyaletler olsaydı basit olurdu, ancak maalesef üçüncü bir durum var: YÜZER.

Yüzen bir pimin yüksek ve düşük arasında bir değeri vardır ve bu da girişin beklenmedik şekilde hareket etmesine neden olur. Yukarı çekme / aşağı çekme dirençleri bunu çözer.

Yukarı Çekme Direnci Örnek Diyagramı

Yukarıdaki görüntü, bir düğme ve bir Raspberry Pi'nin basitleştirilmiş bir diyagramıdır. GPIO pimi, düğmeyle toprağa bağlanır. Dahili çekme direnci GPIO pimini dahili Pi güç kaynağına bağlar. Bu akım akar ve pim güvenli bir şekilde YÜKSEK'e kadar çekilir.

Düğmeye bastığınızda, GPIO pimi doğrudan toprak pimine bağlanır ve düğme düşük okunur.

Aşağı Çekme Direnci Örnek Diyagramı

Aşağı açılır dirençler, anahtar güç pimine bağlandığında kullanılır. Bu kez, dahili direnç GPIO pinini toprağa bağlar ve düğmeye basana kadar DÜŞÜK basılı tutar.

Pull-up ve Pull-down direnç teorisi ilk bakışta kafa karıştırıcıdır, ancak mikrodenetleyicilerle çalışırken sahip olması gereken önemli bilgilerdir. Şimdilik, tam olarak anlamıyorsanız, endişelenmeyin!

Kaldığımız yerden devam edelim.

Program Döngüsü

Ardından, program döngüsünü ayarlayın:

while True: buttonState = GPIO.input (buttonPin) eğer buttonState == False: GPIO.output (ledPin, GPIO.HIGH) diğer: GPIO.output (ledPin, GPIO.LOW)

Doğru iken döngü, programı sonlandırana kadar içindeki kodu sürekli çalıştırır. Her döngüye girdiğinde buttonState girişini okuyarak buttonPin. Düğmeye basılmazken, YÜKSEK.

Düğmeye basıldığında, buttonState olur DÜŞÜK. Bu, if ifadesi, dan beri Yanlış aynıdır DÜŞÜKve LED yanar. Başka ifadesi, buttonPin Yanlış olmadığında LED'i kapatır.

Komut Dosyasını Kaydet ve Çalıştır

Komut dosyanızı tıklatarak kaydedin Dosya> Farklı Kaydet ve bir dosya adı seçerek. Yeşil renkli tıklayarak çizimi çalıştırabilirsiniz Oyna araç çubuğundaki düğmesine basın.

Thonny Kontrol Paneli

Şimdi düğmeye basın, LED'iniz yanmalıdır! Kırmızı basın Dur herhangi bir anda programı durdurmak için

Basma Düğmesi Testi Gif

Zorluk yaşıyorsanız, kodunuzu ve devre kurulumunuzu hatalar için iyice kontrol edin ve tekrar deneyin.

Yöntem 2: GPIO Sıfır Kitaplığı

RPi. GPIO kütüphanesi harika, ama blokta yeni bir çocuk var. GPIO Sıfır Kütüphanesi Raspberry Pi topluluk yöneticisi Ben Nuttall tarafından oluşturuldu kodun daha basit, daha kolay okunması ve yazılması amacıyla.

Yeni kütüphaneyi test etmek için yeni bir Thonny dosyası açın ve kütüphaneyi içe aktarın.

gpiozero ithalat LED, Düğme. sinyal içe aktarma duraklamasından. 

Tüm kütüphaneyi içe aktarmadığınızı fark edeceksiniz. Yalnızca bir LED ve düğme kullandığınız için, komut dosyasında yalnızca bu modüllere ihtiyacınız vardır. Ayrıca ithalat Duraklat olay yönetimi için bir Python kütüphanesi olan sinyal kütüphanesinden.

GPIO Zero ile pinleri ayarlamak çok daha kolaydır:

led = LED (18) düğmesi = Düğme (23)

GPIO Zero kütüphanesinde LED ve düğme için modüller bulunduğundan, giriş ve çıkışları daha önce olduğu gibi ayarlamanıza gerek yoktur. Pimler değişmese de, buradaki sayıların yukarıdakilerden farklı olduğunu göreceksiniz. Bunun nedeni GPIO Zero'nun yalnızca GPIO pin numaralarını (Broadcom veya BCM numaraları olarak da bilinir) kullanmasıdır.

Betiğin geri kalanı sadece üç satırdan oluşur:

button.when_pressed = led.on. button.when_released = led.off duraklatma ()

Duraklat() burada çağır, komut dosyasının alt kısmına ulaştığında çıkmasını durdurur. Düğmeye her basıldığında ve bırakıldığında iki düğmeli olaylar tetiklenir. Komut dosyanızı kaydedin ve çalıştırın, daha önce olduğu gibi aynı sonucu göreceksiniz!

Raspberry Pi'ye Düğme Eklemenin İki Yolu

Düğmeyi ayarlamanın iki yolundan GPIO Zero yöntemi en kolay yöntem gibi görünüyor. RPi hakkında hala öğrenmeye değer. GPIO kütüphanesi yeni başlayanlar Raspberry Pi projeleri kullanın. Bu proje kadar basit, bilgi bir çok şey için kullanılabilir.

GPIO pinlerini kullanmak, kendi cihazlarınızı öğrenmek ve icat etmek için harika bir yoldur, ancak Pi ile yapabileceğiniz her şeyden uzaktır. bizim Raspberry Pi için resmi olmayan rehber Raspberry Pi: Resmi Olmayan Eğitimİster daha fazla bilgi edinmek isteyen mevcut bir Pi sahibi olun, ister bu kredi kartı boyutundaki cihazın potansiyel bir sahibi olun, bu kaçırmak istediğiniz bir rehber değildir. Daha fazla oku Kendiniz deneyebileceğiniz yaratıcı fikirler ve öğreticilerle doludur! Bunun gibi başka bir öğretici için göz atın Wi-Fi bağlantılı düğme nasıl yapılır ESP8266 ile Kendi Wi-Fi Bağlantı Düğmenizi Nasıl YapabilirsinizBu öğreticide, NodeMCU ve IFTTT kullanarak Wi-Fi özellikli bir düğmenin nasıl oluşturulacağını öğreneceksiniz. Daha fazla oku .

Ian Buckley, Berlin, Almanya'da yaşayan serbest bir gazeteci, müzisyen, sanatçı ve video yapımcısıdır. Yazmadığı veya sahnede olmadığı zaman, çılgın bir bilim adamı olma umuduyla DIY elektroniği veya koduyla uğraşıyor.