Analogdan dijitale dönüştürücüdeki değerleri okuma

Analogdan dijitale dönüştürücü (ADC), analog giriş voltajı değerini okuyabilen ve dijital değere dönüştüren bir cihazdır. ADE'ler, bazı koşullar temel alarak direnç değişikliğine neden olan diğer cihazlardan, oidoidlerin, oid ölçerlerin ve diğer cihazların değerlerini okumak için kullanılır.

Bu konu başlığında, giriş voltajını bir ölçerle değiştiren ADC'den değerleri okumak için .NET kullanacağız.

Önkoşullar

  • Raspberry Pi işletim sistemi yüklü Raspberry Pi (2 veya daha büyük)
  • MCP3008 analogdan dijitale dönüştürücü
  • Üç pinli tirnak ölçer
  • Breadboard
  • Atlama telleri
  • Raspberry Pi GPIO çıkış panosu (isteğe bağlı/önerilir)
  • .NET SDK sürüm 5.0.100 RC2 veya üzeri

Raspberry PI 'yi hazırlama

raspi-configAşağıdaki iki hizmetin etkinleştirildiğinden emin olmak için komutunu kullanın:

  • SSH
  • ARABIRIMINI

Hakkında daha fazla bilgi için raspi-config Raspberry PI belgelerinebakın.

Donanımı hazırlama

Aşağıdaki diyagramda gösterildiği gibi bağlantı hattı oluşturmak için donanım bileşenlerini kullanın:

MCP3008 ADC'ye ve ölçere sahip devreyi gösteren Bir Bağlama diyagramı

MCP3008 iletişim kurmak için Seri Çevresel Arabirim (SPI) kullanır. McP3008'den Raspberry Pi'ye ve tırtıl ölçere bağlantılar aşağıdaki gibidir:

  • VDD'den 3,3V'ye (kırmızıyla gösterilir)
  • VREF' den 3.3V'ye (kırmızı)
  • AGND'den yere (siyah)
  • CLK'den SCLK'ye (turuncu)
  • DOUT to MISO (turuncu)
  • DIN'den MOSI'ye (turuncu)
  • CS/SHDN'den CE0'a (yeşil)
  • DGND'den yere (siyah)
  • Ch0 to variable (middle) pini on ometer (yellow)

3,3V'yi ve tırtıl ölçerdeki dış pinlere yer sağlar. Sipariş önemli değildir.

Aşağıdaki pinout diyagramlarını gereken şekilde kullanın:

MCP3008 Raspberry Pi GPIO
MCP3008'in sabitlemeyi gösteren diyagram Raspberry Pi GPIO üst bilgisi sabitlemesini gösteren diyagram. Görüntü: Raspberry Pi Foundation.
Görüntü: Raspberry Pi Foundation.

İpucu

GıO üstbilgisiyle bağlantıları kolaylaştırmak için, bir enine tahta ile birlikte bir GıO ayırıcısının kullanılması önerilir.

Uygulama oluşturma

Tercih ettiğiniz geliştirme ortamında aşağıdaki adımları tamamlayın:

  1. .NET CLI veya .NET kullanarak yeni bir .NET Konsol Uygulaması Visual Studio. AdcTutorial olarak ad girin.

    dotnet new console -o AdcTutorial
    
  2. IoT. Device. Bindings paketini projeye ekleyin. Proje dizininden ya da Visual Studio'DAN .net CLI kullanın.

    dotnet add package Iot.Device.Bindings --version 1.1.0-*
    
  3. Program.cs dosyasının içeriğini aşağıdaki kodla değiştirin:

    using System;
    using System.Device.Spi;
    using System.Threading;
    using Iot.Device.Adc;
    
    var hardwareSpiSettings = new SpiConnectionSettings(0, 0);
    
    using SpiDevice spi = SpiDevice.Create(hardwareSpiSettings);
    using var mcp = new Mcp3008(spi);
    while (true)
    {
        double value = mcp.Read(0);
        value = value / 10.24;
        value = Math.Round(value);
        Console.WriteLine($"{value}%");
        Thread.Sleep(500);
    }
    

    Yukarıdaki kodda:

    • hardwareSpiSettings yeni bir örneğine SpiConnectionSettings ayarlanır. Oluşturucu, busId parametresini 0 ve parametresini chipSelectLine 0 olarak ayarlar.
    • Using bildirimi çağrısı ve geçirme ile bir örneği SpiDevice SpiDevice.Create hardwareSpiSettings oluşturur. Bu, SpiDevice SPI veri bus'larını temsil eder. Bildirimi, using nesnenin atılması ve donanım kaynaklarının düzgün bir şekilde serbest bırakılması sağlar.
    • Başka using bir bildirim bir örneği oluşturur ve Mcp3008 SpiDevice oluşturucuya iletir.
    • Döngü while süresiz olarak çalışır. Her yineleme:
      1. çağırarak ADC üzerinde CH0 değerini mcp.Read(0) okur.
      2. Değeri 10,24'e böler. MCP3008, 10 bitlik bir ADC'dir ve 0-1023 arasında 1024 olası değeri döndürmektedir. Değerin 10,24'e bölünmesi, değeri yüzde olarak temsil eder.
      3. Değeri en yakın tamsayıya yuvarlar.
      4. Değeri yüzde olarak biçimlendirilmiş konsola yazar.
      5. 500 ms uykuda.
  4. Uygulamayı oluşturun. .NET CLı kullanıyorsanız, öğesini çalıştırın dotnet build . Visual Studio 'da derlemek için CTRL + SHIFT + Btuşlarına basın.

  5. Uygulamayı, bağımsız bir uygulama olarak Raspberry PI 'e dağıtın. Yönergeler için bkz. .NET uygulamalarını Raspberry PI 'ye dağıtma. Kullanarak yürütülebilir yürütme iznini verdiğinizden emin olun chmod +x .

  6. Dağıtım dizinine geçerek ve yürütülebilir dosyayı çalıştırarak uygulamayı Raspberry Pi'de çalıştırın.

    ./AdcTutorial
    

    Esner kadranını döndürün ve çıktıyı gözlemlersiniz. Bunun nedeni, ADC üzerinde CH0'a sağlanan voltajı değişen tir. ADC, CH0'deki giriş voltajını VREF'e verilen başvuru voltajı ile karşılaştırarak bir değer üretir.

  7. Ctrl+Ctuşlarına basarak programı sonlandırabilirsiniz.

Tebrikler! Analogdan dijitale dönüştürücüden değerleri okumak için SPI kullandın.

Kaynak kodunu alma

Bu öğreticinin kaynağı, GitHub.

Sonraki adımlar