LCD üzerinde metin görüntüleme

DAHILI karakter görüntüleri, dış izleyiciye gerek kalmadan bilgileri görüntülemek için kullanışlıdır. Yaygın OLARAK GÖRÜLEN karakter ekranları doğrudan GPIO pinlerine bağlanabilir, ancak böyle bir yaklaşım için en fazla 10 GPIO pini gerekir. Bir cihaz birleşimine bağlanmayı gerektiren senaryolarda GPIO üst bilgilerinin büyük birını bir karakter görüntüsüne bağlamak genellikle pratik değildir.

Birçok üretici tümleşik GPIO genişleticisi ile 20x4 GPU karakter ekranları satar. Karakter ekranı doğrudan GPIO genişleticiye bağlanır ve ardından Inter-Integrated Circuit (I2C) seri protokolü aracılığıyla Raspberry Pi'ye bağlanır.

Bu konu başlığında, I2C GPIO genişleticisi kullanarak BIRİC karakter görüntüsünde metin görüntülemek için .NET kullanılır.

Önkoşullar

Not

BIRÇOK ZAMANCI karakter ekranı üreticisi vardır. Çoğu tasarım aynıdır ve üreticinin işlevsellikte hiçbir fark olmaması gerekir. Başvuru için bu öğretici SunFounder TARAFıNDAN 2004 ile geliştirilmiştir.

Raspberry PI 'yi hazırlama

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

  • SSH
  • I2C

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

Donanımı hazırlama

I2C GPIO genişleticisi üzerinde dört pini Raspberry Pi'ye bağlamak için atlama tellerini aşağıdaki gibi kullanın:

  • GND'den temele
  • VCC'den 5V'ye
  • SDA'dan SDA'ya (GPIO 2)
  • SCL'den SCL'ye (GPIO 3)

Gereken şekilde aşağıdaki şekillere bakın:

I2C arabirimi (ekranın gerisi) Raspberry Pi GPIO
I2C GPIO genişleticisini gösteren karakter görüntüsünün arka görüntüsü. 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. Bunu NedenTutorial olarak adlayın.

    dotnet new console -o LcdTutorial
    
  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.Gpio;
    using System.Device.I2c;
    using System.Threading;
    using Iot.Device.CharacterLcd;
    using Iot.Device.Pcx857x;
    
    Console.WriteLine("Displaying current time. Press Ctrl+C to end.");
    
    using I2cDevice i2c = I2cDevice.Create(new I2cConnectionSettings(1, 0x27));
    using var driver = new Pcf8574(i2c);
    using var lcd = new Lcd2004(registerSelectPin: 0, 
                            enablePin: 2, 
                            dataPins: new int[] { 4, 5, 6, 7 }, 
                            backlightPin: 3, 
                            backlightBrightness: 0.1f, 
                            readWritePin: 1, 
                            controller: new GpioController(PinNumberingScheme.Logical, driver));
    int currentLine = 0;
    
    while (true)
    {
        lcd.Clear();
        lcd.SetCursorPosition(0,currentLine);
        lcd.Write(DateTime.Now.ToShortTimeString());
        currentLine = (currentLine == 3) ? 0 : currentLine + 1; 
        Thread.Sleep(1000);
    }
    

    Yukarıdaki kodda:

    • Using bildirimi, ve parametreleriyle I2cDevice yenisini I2cDevice.Create çağırarak ve I2cConnectionSettings geçirmesi ile bir busId örneği deviceAddress oluşturur. Bu, I2cDevice I2C 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.

      Uyarı

      GPIO genişleticinin cihaz adresi, üretici tarafından kullanılan yongaya bağlıdır. PCF8574 ile donatılmış GPIO genişleticileri adresini 0x27 kullanırken, PCF8574A yongalarını kullananlar 0x3F kullanır. SIZE AIT BELGELERE başvurun.

    • Başka using bir bildirim bir örneği oluşturur ve Pcf8574 I2cDevice oluşturucuya iletir. Bu örnek GPIO genişleticisini temsil eder.

    • Başka using bir bildirim, ekranı temsil Lcd2004 etmek için bir örneği oluşturur. GPIO genişleticisi ile iletişim kurmak için kullanmak üzere ayarları açıklayan oluşturucuya birkaç parametre geçirildi. GPIO genişleticisi parametresi olarak controller geçirildi.

    • Döngü while süresiz olarak çalışır. Her yineleme:

      1. Ekranı temizler.
      2. İmleç konumunu geçerli satırda ilk konuma ayarlar.
      3. Geçerli saati geçerli imleç konumundaki görüntüye yazar.
      4. Geçerli satır sayacını yeniler.
      5. 1000 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.

    ./LcdTutorial
    

    Her satırda geçerli saat görüntüleniyorken, SATıR karakteri ekran görüntüsüne dikkat alın.

    İpucu

    Ekran yansa ama metin görmüyorsanız, ekranın arka tarafından karşıtlık kadranını ayarlamayı deneyin.

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

Tebrikler! I2C ve GPIO genişleticisini kullanarak BIR GPU üzerinde metin görüntüledisiniz!

Kaynak kodunu alma

Bu öğreticinin kaynağı, GitHub.

Sonraki adımlar