İçindekiler:

Raspberry Pi Üzerinden Analog Okumalar Nasıl Alınır: 5 Adım
Raspberry Pi Üzerinden Analog Okumalar Nasıl Alınır: 5 Adım

Video: Raspberry Pi Üzerinden Analog Okumalar Nasıl Alınır: 5 Adım

Video: Raspberry Pi Üzerinden Analog Okumalar Nasıl Alınır: 5 Adım
Video: Raspberry Pi Pico Ders 5 - PWM ve Analog Pinlerin Kullanımı | Potansiyometre Kullanımı 2024, Kasım
Anonim
Raspberry Pi'de Analog Okumalar Nasıl Alınır
Raspberry Pi'de Analog Okumalar Nasıl Alınır

Herkese merhaba! Bu derste size Raspberry Pi kullanarak analog değerleri doğrudan nasıl yakalayabileceğimizi göstereceğim. Hepimizin bildiği gibi Raspberry Pi, amatörler ve profesyoneller arasında popüler olan ve hemen hemen her elektronik meraklısının istediği özelliklere sahip oldukça güçlü bir mini bilgisayar modülüdür. Bununla birlikte, pi'nin tek dezavantajı, Pi'yi herhangi bir sensörden gelen analog değerleri doğrudan kaydetmek için uygun hale getiren özel bir analogdan dijitale dönüştürücü donanımının olmamasıdır. Bunun çözümü, ya Pi ile bağlantılı olarak bir Arduino kullanmak ya da özel bir ADC kullanmaktır. Bu proje için MCP3204-12 bit ADC kullanacağım.

Gereçler

  • Raspberry Pi (Elinizde olan herhangi bir modeli kullanabilirsiniz)
  • MCP3204 ADC veya MCP3008 ADC
  • Analog Sensör (Bunun yerine 10K potansiyometre kullanıyorum)
  • ekmek tahtası
  • Jumper Telleri

Adım 1: Yerine Arduino'dan Değer Almak…

Bunun Yerine Arduino'dan Değer Almak…
Bunun Yerine Arduino'dan Değer Almak…

Raspberry pi'ye analog değerler almanın bir alternatifi, özel bir 10 bit ADC'ye sahip arduino'yu kullanmaktır. Arduino ve Raspberry Pi, bilgileri iletmek için seri port üzerinden iletişim kurabilir. Bu yöntem, bazı sensör verileriyle deney yaparken ve aynı zamanda Pi'nin işlem gücünü kullanmak istediğinizde kullanılabilir. Bu konfigürasyonun dezavantajı, daha fazla donanım kaynağı kullanmanız ve ayrıca arduino ve Pi için ayrı kodlar yazmanız gerekmesidir.

Adım 2: Bir ADC Kullanmak.

ADC kullanmak.
ADC kullanmak.
ADC kullanmak.
ADC kullanmak.

Arduino'yu ADC olarak kullanmanın alternatifi, aynı amaca hizmet eden özel bir ADC IC kullanmaktır. Bu proje için Raspberry Pi ile SPI Protokolünü kullanarak haberleşebilen 4 kanallı 12 bitlik bir ADC olan MCP3204 IC'yi kullanacağım. Düşman gösteri amaçlı IC'yi 10 bit modunda kullanacağım.

Pin açıklamasını gösteren bu IC'nin pin çıkışını ekledim.

Adım 3: Raspberry Pi ve ADC'yi Bağlama

Raspberry Pi ve ADC'yi Bağlama
Raspberry Pi ve ADC'yi Bağlama
Raspberry Pi ve ADC'yi Bağlama
Raspberry Pi ve ADC'yi Bağlama

Şimdi donanımımızı sıraladığımıza göre, ADC ve Pi'nin bağlantı şemasına geçelim.

Raspberry Pi'nin 2 SPI arayüzü vardı: SPI0 ve SPI1. Uygulamamız için SPI0'ı kullanacağız ve ADC'yi Pi'nin belirli donanım SPI pinlerine bağladığımız fiziksel (veya donanım) SPI'yi kullanacağız.

Projede kullandığım Pi'nin Pinout'unu ve devre şemasını ekledim.

Bağlantı şeması aşağıdaki gibidir:

  • ADC'nin VDD(Pin14) ve Vref(Pin13) Pi'nin 5V beslemesine
  • ADC'nin DGND(Pin7) ve AGND(Pin12) Pi'nin zeminine
  • Pi'nin ADC'den GPIO 11'e (Fiziksel pim 23) CLK'si (Pin11)
  • Pi'nin ADC'den GPIO 9'a (Fiziksel pin 21) Dout'u (Pin10)
  • Pi'nin ADC'den GPIO 10'a (Fiziksel pin 19) Din(Pin 9)
  • Pi'nin ADC'den GPIO 8'e (Fiziksel pim 24) kadar olan Çip Seçimi (Pin 8)

Adım 4: Son Kurulum ve Kod.

Son Kurulum ve Kod.
Son Kurulum ve Kod.

Artık tüm güç ve iletişim bağlantıları yapıldıktan sonra, değerini görmek istediğimiz herhangi bir sensörü takmanın zamanı geldi. Sensör olarak 10K potansiyometre kullanıyorum.

Kodlar iki parça halinde yazılmıştır, ilk kod hemen hemen kitaplıkların kurulması, SPI iletişiminin sağlanması ve ardından MCP3204'ten ADC değerinin alınması ve ardından python terminalinde yazdırılması ile ilgilidir.

İkinci kod daha etkileşimlidir ve sensörden gelen gerçek zamanlı verilerin bir grafiğini oluşturur.

Kodla oynayabilir ve ihtiyaçlarınıza uygun hale getirebilirsiniz.

Adım 5: Talimat Videosu

Image
Image

Bu, bu projeyi uygulamak için gerekli tüm adımları ayrıntılı olarak açıklayan videodur. Umarım bu yardımcı olmuştur!

Önerilen: