İkonik ismi “ Nokia 5110 ”, 90'larda çok popüler olan sağlam Nokia cep telefonunun hatıralarını satın almış olmalıydı. Model 5110, o zamanlar cep telefonu için bir görüntüleme ekranı olarak görev yapmak için yeterli olan bir Grafik Ekran ile geldi. Bu ekran, alfasayısal karakterlerden küçük grafiklere kadar cep telefonu için gereken her şeyi görüntüleyebiliyordu. Dünya, parlak dokunmatik ekranlara sahip yeni teknolojiler geliştirdikçe ve bu ekran artık kullanımda değil. Ama umarım küçük bir grafiğin görüntülenmesi gereken ve büyük LCD ekranlara para harcamaktan kaçınan elektronik uygulamalarda kullanılabilirler. Bu eğitimde , Nokia 5110 Grafik LCD'yi Arduino ile nasıl arayüzleştireceğimizi ve çalıştırmayı öğreneceğiz.
Bu LCD, 84 × 48 boyutlarında siyah beyaz piksellere sahiptir. Monoton görünebilirler ancak yine de projeleriniz için düzgün grafikler görüntülemek için kullanılabilir ve Arduino gibi mikrodenetleyicilerle kolayca kullanılabilir. Öyleyse başlayalım….!
Gerekli malzemeler:
- Arduino Board (herhangi bir versiyon)
- Nokia 5110 ekranı
- Bağlantı telleri
Nokia 5110 Grafik Ekran modülü:
Piyasada bu Grafik LCD'lerin iki türü bulunmaktadır. Biri ekranın üstünde ve altında lehim pedleri ve diğeri yalnızca ekranın altında lehim pedleri ile. Kullandığımız, sadece ekranın altında pedlerin bulunduğu tip 2'ye aittir. Her iki modül de aynı şekilde çalışır ve bu nedenle her ikisi için de bağlantılar aynıdır. Yani hangi modül olursa olsun öğreticiyi takip edebilirsiniz.
Daha önce belirtildiği gibi Nokia 5110 Grafik LCD, yatayda 84 piksel ve dikeyde 48 piksele sahip. Toplam ekran boyutu 1.72 'x 1.72' dir. Modül, SPI iletişimi yoluyla herhangi bir mikrodenetleyiciye arayüz oluşturabileceğimiz 6 giriş pinine sahiptir. Ekran ve Arduino arasında iletişim kuran arabirim IC, veri sayfası burada bulunabilen Philips PCD8544 ekran denetleyicisi IC'dir. Bununla birlikte, bu IC ile iletişim kurmak için Arduino kullanıyorsanız, indirilmeye ve kullanılmaya hazır kütüphaneler olduğundan veri sayfası hakkında endişelenmemize gerek yoktur. Burada kullandığımız modül aşağıda gösterilmiştir.
Devre şeması:
Nokia5110 Grafik LCD'yi Arduino ile bağlamak için eksiksiz devre şeması aşağıda verilmiştir.
Ekran modülünün Arduino ile bir SPI iletişimi kurmak için kullanılan 8 pimi vardır. Modül, Arduino kartının 3.3V pini ile güçlendirilmiştir. Bu modüllerin 3,3V mantığında çalıştığını ve bu nedenle ekranların Vcc pinine 5V sağlamadığını unutmayın. LCD 3.3V mantıkta ve Arduino 5V mantığında çalışmasına rağmen, ekranın Pinini doğrudan Arduino'ya bağladım çünkü ancak o zaman LCD'nin düzgün çalıştığını buldum. Gerekirse 5V'yi 3.3V'ye dönüştürmek için bir voltaj bölücü kullanabilirsiniz, ancak benim için yalnızca mantık dönüşümü olmadan çalışır. Bağlantılar oldukça basit ve yapılması kolay. Bağlantıları tamamladığınızda, kurulumunuz aşağıda gösterildiği gibi görünecektir.
Arduino Programı ve Çalışması:
Arduino'nuzu Nokia 5110 Ekran için programlamak için aşağıdaki adımları izleyin. Adımlar, Arduino IDE'yi zaten kurduğunuzu ve kullanmaya aşina olduğunuzu varsayar.
Adım 1: Bilgisayarınızda Arduino IDE'yi açın ve Arduino'nuzu bilgisayarınıza bağladıktan sonra araçlar menüsünden uygun kartı seçin.
Adım 2: Nokia 5110 Display Library by Adafruit kitaplığını GitHub deposundan indirmek için buraya tıklayın.
Adım 3: Zip dosyası indirildikten sonra, Çizim -> Kitaplığı Dahil Et ->.ZIP kitaplığı ekle'yi seçin ve ZIP'in indirildiği konuma göz atın.
Not: Ayrıca tüm daireler, metinler, dikdörtgenler vb. İşleyen Adafruit GFX Graphics çekirdeğini indirmeniz gerekecektir. Https://github.com/adafruit/Adafruit-GFX-Library adresinden edinebilir ve aynı şekilde yükleyebilirsiniz..
Adım 4: Şimdi Dosya -> Örnekler -> Adafruit PCD Nokia 5110 LCD Kitaplığı -> pcdtest'i seçerek örnek programı açın ve yükle düğmesine tıklayın
Adım 5: Program yüklendikten sonra, Arduino'daki sıfırlama düğmesine basın ve bu eğitimin sonunda verilen videoda gösterildiği gibi tüm animasyonları gösteren örnek programı görmelisiniz.
LCD'de çeşitli grafik tasarımlarını gerçekleştirmek için kullanılabilecek çeşitli yerleşik işlevleri anlamak için örnek programı okuyabilirsiniz. Ancak bir adım daha ileri gidelim ve CircuitDigest Logosunu LCD ekranda görüntülemeyi deneyelim.
Şimdi gerekli görüntüyü açmak Boya ve görüntüyü yeniden boyutlandırmak. Ekranımız için kullanabileceğimiz maksimum görüntü boyutu 84 × 48'dir.
Görüntüyü yeniden boyutlandırdıktan sonra, Paint'teki farklı kaydet seçeneğini kullanarak görüntüyü bit eşlem (siyah beyaz) olarak kaydedin . Görüntüyü LCD ekranımızda bit eşlem olarak görüntülemek için bit eşlem görüntüsünü koda dönüştürebilecek bir yazılıma ihtiyacımız olacak. Yazılımı buraya tıklayarak indirebilirsiniz. İndirildikten sonra dosyayı açın ve uygulamayı başlatmak için "BitmapEncoder" öğesine tıklayın. Kodlanmış değerler dizisini elde etmek için bu yazılımı kullanarak kaydettiğimiz bitmap görüntüsünü açın. Bu değerleri doğrudan kopyalayıp Arduino dizinize yapıştırabilirsiniz. Yazılımın logomuz için gösterdiği değer aşağıda gösterilmiştir.
Gördüğünüz gibi dizi 48, 48 ile başlıyor bu bizim resmimizin boyutu. Bunu dizimize eklememeliyiz. Bu nedenle, ilk iki değeri kaldırın ve kalanını programda dizi değeri olarak kullanın. Dizi aşağıdaki gibi görünecektir. Programın tamamı referansınız için bu sayfanın sonunda verilmiştir.
statik const unsigned char PROGMEM Logosu = {B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00001111, B11111000, B00000000, B1100, B001100, B11000000, B0011000000, B00000000, B11000000, B00000000, B11000000, B00000000 B11111111, B11000000, B00000000, B00000000, B00001110, B00111110, B00111111, B11110000, B00000000, B00000000, B00111110, B00111110, B10000000, B01111100, B00000000, B00000000, B01111100, B01111100, B11000000, B00111110, B00000000, B00000000, B11111100, B01111110, B00000000, B00001111, B00000000, B00000001, B11111000, B11111111, B00111111, B10000111, B10000000, B00000011, B11111000, B11111111, B11111111, B11000011, B11000000, B11111111, B11000011, B11000000, B00000111, B111100001, B11000000, B11100, B111100011111, B01100000, B00000000, B00000011, B11100000, B00001001, B11111100, B00000000, B00000000, B00000111,B11100000, B00011001, B11111110, B00000000, B00000000, B00000111, B11000000, B00000001, B11111111, B10000000, B00011111, B11111111, B11000111, B111111, B11111111, B11111000, B111111, B11111111, B11111000, B11111111, B11111111, B11111111, B11111100, B00111111, B11111111, B00011111, B11111111, B11111111, B11111100, B00111111, B11111110, B00111111, B00111111, B11111111, B11111110, B01111111, B11111110, B00111110, B00000000, B01111111, B11111100, B01111111, B11111100, B01111100, B11000000, B00000000, B00000000, B01111111, B11111100, B01111110, B10000000, B00000000, B00000000, B00000000, B00000000, B11111110, B00111111, B11111111, B11111110, B00000000, B00000001, B11111111, B11111111, B11111111, B11111110, B01111111, B11111111, B11111111, B11111111, B11111111, B11111110, B01111111, B11111111, B11111111, B11111111, B11111111, B11111110, B01111111, B11111111,B11000111, B11111111, B11111111, B11111110, B00111111, B11111111, B10000011, B11111110, B00000000, B00000000, B00111111, B11111111, B10110011, B1111000000, B1111000000, B1111000000, B11110000001, B1111000000001, B1111000000001, B1111000000001, B1111000000001, B11110000000000 B10000001, B11111111, B11111100, B00000000, B00011111, B11111000, B00000111, B11111111, B11111000, B00000000, B00000111, B11111110, B00011111, B11111111, B11111000, B00000000, B00000001, B11111111, B01111111, B11111111, B11110000, B00001111, B11100000, B11111111, B11111111, B11111111, B11110000, B00000111, B11111000, B00001111, B11111111, B11000000, B00000000, B00000011, B11111100, B00100111, B11111111, B00000000, B00000000, B00000011, B11111111, B00110111, B11111100, B00000000, B00000000, B00000001, B11111111, B10000111, B11011000, B00111111, B10000000, B00000000, B11111111, B11001111, B10000000, B11111111, B00000000, B00000000, B01111111,B11111111, B10110001, B11111110, B00000000, B00000000, B00011111, B11111111, B10110111, B11111100, B00000000, B00000000, B00001111, B11111111, B10000111, B11110000, B00000000, B00000000, B00000011, B11111111, B11111111, B11000000, B00000000, B00000000, B00000000, B11111111, B11111111, B00000000, B00000000, B00000000, B00000000, B00001111, B11110000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000};
Şimdi bu bitmap'i görüntülemek için aşağıdaki kod satırlarını kullanmalıyız. Ekrandaki önceki verilerin silindiği ve yeni bitmap görüntüsünün yazıldığı yer.
display.clearDisplay (); display.drawBitmap (20, 0, Logo, 48, 48, 1); display.display ();
Satır display.drawBitmap (20, 0, Logo, 48, 48, 1); bitmap görüntüsünün konumunu, boyutunu ve rengini görüntüleyin. Sözdizimi olarak verilebilir.
display.drawBitmap (X_Position, Y_Position, Array Adı, görüntünün uzunluğu, görüntünün genişliği);
Görüntünün uzunluğu ve genişliği, daha önce anlatıldığı gibi sırasıyla dizinin ilk iki öğesinden elde edilebilir. Bu kod çalıştırıldığında, aşağıda gösterildiği gibi LCD ekranımızda görüntülenen bit eşlemi alacağız.
Ayrıca, aşağıda gösterildiği gibi basit metni de görüntüleyebilirsiniz:
Umarım öğreticiyi anladınız ve Nokia 5110 LCD'nizi Arduino ile arayüzlendirmişsinizdir. Kolunuzdaki bu grafik ekranla, küçük grafik ayrıntıları gerektiren birçok proje oluşturabilirsiniz. Tam çalışma aşağıda verilen videoda bulunabilir. Bunu çalıştırmada herhangi bir sorunla karşılaşırsanız, sorununuzu veya aşağıdaki yorum bölümlerini göndermek için forumu kullanabilirsiniz.