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
- Raspberry Pi işletim sistemi yüklü Raspberry Pi (2 veya daha büyük)
- I2C arabirimiyle 20x4 SONRA KARAKTER Görüntüleme
- Atlama telleri
- Breadboard (isteğe bağlı/önerilen)
- Raspberry Pi GPIO çıkış panosu (isteğe bağlı/önerilir)
- .NET SDK sürüm 5.0.100 RC2 veya üzeri
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 |
|---|---|
|
|
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:
.NET CLI veya .NET kullanarak yeni bir .NET Konsol Uygulaması Visual Studio. Bunu NedenTutorial olarak adlayın.
dotnet new console -o LcdTutorial-
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-* 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
I2cDeviceyenisiniI2cDevice.Createçağırarak veI2cConnectionSettingsgeçirmesi ile birbusIdörneğideviceAddressoluşturur. Bu,I2cDeviceI2C veri bus'larını temsil eder. Bildirimi,usingnesnenin 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
0x27kullanırken, PCF8574A yongalarını kullananlar0x3Fkullanır. SIZE AIT BELGELERE başvurun.Başka
usingbir bildirim bir örneği oluşturur vePcf8574I2cDeviceoluşturucuya iletir. Bu örnek GPIO genişleticisini temsil eder.Başka
usingbir bildirim, ekranı temsilLcd2004etmek 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 olarakcontrollergeçirildi.Döngü
whilesüresiz olarak çalışır. Her yineleme:- Ekranı temizler.
- İmleç konumunu geçerli satırda ilk konuma ayarlar.
- Geçerli saati geçerli imleç konumundaki görüntüye yazar.
- Geçerli satır sayacını yeniler.
- 1000 ms uykuda.
-
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. -
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. Dağıtım dizinine geçerek ve yürütülebilir dosyayı çalıştırarak uygulamayı Raspberry Pi'de çalıştırın.
./LcdTutorialHer 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.
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.