Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
LCD karakterli ekranlar, harici monitöre gerek kalmadan bilgileri görüntülemek için kullanışlıdır. Yaygın LCD karakterli ekranlar doğrudan GPIO pinlerine bağlanabilir, ancak böyle bir yaklaşım için en fazla 10 GPIO pini kullanılması gerekir. Cihazların bir birleşimine bağlanmayı gerektiren senaryolar için GPIO üst bilgisinin büyük bir kısmını bir karakter ekranına ayırmak genellikle pratik değildir.
Birçok üretici entegre GPIO genişletici ile 20x4 LCD karakterli ekranlar satıyor. Karakter ekranı doğrudan GPIO genişleticisine bağlanır ve ardından Inter-Integrated Bağlantı Hattı (I 2 C) seri protokolü aracılığıyla RaspberryPi'yebağlanır.
Bu konuda, I2C GPIO genişletici kullanarak LCD karakter ekranında metin görüntülemek için .NET kullanacaksınız.
Önkoşullar
- ARM tabanlı (ARMv7 veya üzeri) tek kartlı bilgisayar (SBC)
- I2C arayüzlü 20x4 LCD Karakter Ekranı
- Jumper telleri
- Devre tahtası (isteğe bağlı/önerilen)
- Raspberry Pi GPIO tartışma panosu (isteğe bağlı/önerilen)
- .NET SDK 8 veya üzeri
Uyarı
Bu öğretici, hedef cihazın Raspberry Pi olduğu varsayılarak yazılmıştır. Ancak bu öğretici Orange Pi, ODROID ve daha fazlası gibi .NET'i destekleyen linux tabanlı SBC'ler için kullanılabilir.
Uyarı
LCD karakter ekranlarının birçok üreticisi vardır. Çoğu tasarım aynıdır ve üreticinin işlevsellik açısından hiçbir fark oluşturmaması gerekir. Bilgi için, bu öğretici SunFounder LCD2004 ile geliştirilmiştir.
SBC'yi hazırlama
SBC'nizin aşağıdaki hizmetleri destekleyecek şekilde yapılandırıldığından emin olun:
- SSH
- I2C
Birçok cihaz için ek yapılandırma gerekmez. Raspberry Pi için komutunu kullanın raspi-config . hakkında raspi-configdaha fazla bilgi için Raspberry Pi belgelerine bakın.
Donanımı hazırlama
I2C GPIO genişleticideki dört raptiyeyi Raspberry Pi'ye bağlamak için jumper tellerini aşağıdaki gibi kullanın:
- GND'yi toprağa
- VCC'yi 5V'ye bağla
- SDA-SDA (GPIO 2)
- SCL'den SCL'ye (GPIO 3)
Aşağıdaki şekillere gerektiği gibi bakın:
| I2C arabirimi (ekranın arkası) | Raspberry Pi GPIO |
|---|---|
|
|
Görüntü, Raspberry Pi Foundation'ın izniyle. |
Tavsiye
GPIO üst bilgisine bağlantıları kolaylaştırmak için bir breadboard ile birlikte bir GPIO kapsam kartı önerilir.
Uygulamayı oluşturma
Tercih ettiğiniz geliştirme ortamında aşağıdaki adımları tamamlayın:
.NET CLI veya Visual Studio kullanarak yeni bir .NET Konsol Uygulaması oluşturun. Buna LcdTutorial adını verin.
dotnet new console -o LcdTutorial cd LcdTutorialIot.Device.Bindings paketini projeye ekleyin. Proje dizininden veya Visual Studio'dan.NET CLI kullanın.
dotnet add package Iot.Device.Bindings --version 3.2.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); }Önceki kodda:
Using bildirimi
I2cDeviceveI2cDevice.Createparametreleriyle yeni birI2cConnectionSettingsoluşturarak, buI2cConnectionSettings'yıdeviceAddressile çağırıp bir örneği oluşturur. BuI2cDevice, I2C veri yolunu temsil eder.usingbildirimi, nesnenin atılmasını ve donanım kaynaklarının doğru şekilde serbest bırakılmasını sağlar.Uyarı
GPIO genişleticisinin cihaz adresi, üretici tarafından kullanılan yongaya bağlıdır. PCF8574 ile donatılmış GPIO genişleticileri adresini
0x27kullanırken, PCF8574A yongaları kullananlar adresini kullanır0x3F. LCD'nizin belgelerine bakın.Başka bir
usingbildirim,Pcf8574öğesinin bir örneğini oluşturur veI2cDeviceöğesini oluşturucuya geçirir. Bu örnek GPIO genişleticisini temsil eder.Başka bir
usingbildirimi, görüntüyü temsil etmek üzereLcd2004bir örnek oluşturur. Oluşturucuya, GPIO genişleticisiyle iletişim kurmak için kullanılacak ayarları açıklayan çeşitli parametreler geçirilir. GPIO genişletici parametre olarakcontrollergeçirilir.Döngü
whilesüresiz olarak çalışır. Her yineleme:- Ekranı temizler.
- İmleç konumunu geçerli satırdaki ilk konuma ayarlar.
- Geçerli saati geçerli imleç konumundaki ekrana yazar.
- Geçerli satır sayacını yineler.
- 1000 ms uyuyor.
Uygulamayı oluşturun. .NET CLI kullanıyorsanız komutunu çalıştırın
dotnet build. Visual Studio'da derlemek için Ctrl+ ShiftB+ basın.Uygulamayı SBC'ye bağımsız bir uygulama olarak dağıtın. Yönergeler için bkz. Raspberry Pi'ye .NET uygulamaları dağıtma. kullanarak yürütülebilir dosyaya
chmod +xizni verdiğinizden emin olun.Raspberry Pi'de uygulamayı çalıştırmak için dağıtım dizinine geçin ve yürütülebilir dosyayı çalıştırın.
./LcdTutorialHer satırda geçerli saatin görüntülendiği LCD karakter ekranını gözlemleyin.
Tavsiye
Ekran yanıyorsa ancak metin görmüyorsanız, ekranın arka tarafındaki karşıtlık kadranını ayarlamayı deneyin.
Ctrl+C tuşlarına basarak programı sonlandırın.
Tebrikler! I2C ve GPIO genişletici kullanarak lcd ekranda metin görüntülediniz!
Kaynak kodu alma
Bu öğreticinin kaynağı GitHub'da kullanılabilir.