İçindekiler:
2025 Yazar: John Day | [email protected]. Son düzenleme: 2025-01-13 06:58
Sevgili arkadaşlar başka bir Eğitilebilirliğe hoş geldiniz! Bu derste, bu büyük LCD ekrana ilk kez bakacağız ve onunla bir sıcaklık ve nem monitörü oluşturacağız.
Her zaman 3D yazıcımın kullandığı ekrana benzer bir ekran bulmak istemişimdir, çünkü büyük ve ucuzdur, bu nedenle birçok proje için çok faydalı olabilir. Etrafa baktıktan sonra, yazıcımın kullandığı ekranın bu olduğunu keşfettim. ST7920 sürücüsüne ve 128x64 piksel çözünürlüğe sahip büyük bir 3,2” ekran. Güzel! Gördüğünüz gibi, şimdiye kadar projelerimizde kullandığımız ekranların çoğundan çok daha büyük, bu yüzden gelecekteki birçok projede faydalı olacak. Sadece yaklaşık 6 $ maliyeti!
Buradan ulaşabilirsiniz →
Gereçler
- LCD Ekran ST7920 →
- Arduino Uno →
- DHT22 Sensör →
- Breadboard →
- Teller →
Adım 1: Arduino ile Bağlantı
Şimdi Arduino ile nasıl kullanılacağını görelim. Bugün bir Arduino Uno kullanacağım ama birçok Arduino kartıyla çalışıyor.
Ekran, mikrodenetleyici ile iletişim kurmak için SPI arayüzünü kullanır, bu nedenle onu Arduino kartının donanım SPI pinlerine bağlamamız gerekir.
Gördüğünüz gibi ekranın bağlanacak çok sayıda pini var ama merak etmeyin tüm bu pinleri Arduino Uno kartının dijital pinlerine sadece 9 tanesini ve sadece 4 tanesini bağlamamıza gerek yok.
GND olan ilk pin Arduino GND'ye gider. Vcc olan ikinci pin ise Arduino 5V çıkışına gider. RS pini dijital pin 10'a gider. R/W pini dijital pin 11'e gider. E pin dijital pin 13'e gider. PSB pini GND'ye, RST pini dijital pin 8'e, BLA Arduino'nun 3.3V çıkışına gider. ve BLK pini GND'ye gider. İşte bu, ekranımız kullanıma hazır!
Ekranın tüm GND pinlerini birbirine bağlayarak hayatımızı kolaylaştırabiliriz.
Adım 2: Ekran Kitaplığı
Şimdi bu ekranı sürmek için ihtiyacımız olan yazılımı görelim.
Bu ekranı sürmek için u8g kitaplığını kullanacağım. Öncelikle kütüphaneyi kuralım. Arduino IDE'yi açıyoruz ve menüden Sketch → Include Library → Manage Libraries'i seçiyoruz ve U8G2 kütüphanesini arıyoruz. Onu seçiyoruz ve kur'a basıyoruz! İşte bu kadar, kütüphanemiz kullanıma hazır.
Şimdi Dosya → Örnekler kısmına gidelim ve kütüphane ile verilen örneklerden GraphicsText örneğini çalıştıralım. Tahtaya yüklemeden önce taslakta sadece bir değişiklik yapmamız gerekiyor. U8G kütüphanesi birçok ekranı desteklediğinden, ekranımız için uygun kurucuyu seçmemiz gerekiyor. Bu yüzden “ST7920” kodunu arıyoruz ve mevcut yapıcılardan HW_SPI olanı kullanmayı seçiyoruz. Bu satırı bu şekilde kaldırıyoruz ve taslağı Arduino'ya yüklemeye hazırız. Birkaç saniye sonra eskiz çalışır ve çalışır.
Ekranda hiçbir şey göremiyorsanız, ekranın arkasında bulunan bu küçük potansiyometreyi kullanarak ekranın kontrastını ayarlamanız gerekir
Şimdi birkaç saniyeliğine demo taslağı izleyelim. Gördüğünüz gibi, bu örnek çizim, kitaplığın ve ekranın yeteneklerini göstermektedir. Bu ekranla bazı harika animasyonlar elde edebiliriz, oldukça yetenekli. Bu yüzden birçok 3D yazıcıda kullanılıyor.
3. Adım: Bir Hava Durumu İstasyonu İnşa Edelim
Şimdi yararlı bir şey inşa edelim. Arduino'ya bir DHT22 Sıcaklık ve Nem Sensörü bağlayalım. Sadece güç ve onu dijital pin 7'ye bağladığım bir sinyal kablosuna ihtiyacımız var. İşleri kolaylaştırmak için küçük bir breadboard da kullandım. Ekli şematik diyagramı burada bulabilirsiniz.
Gördüğünüz gibi proje iyi çalışıyor ve sıcaklığı ve nemi gerçek zamanlı olarak gösteriyor.
Şimdi projenin koduna hızlıca bir göz atalım. Sadece 60 satır kod ile böyle bir proje yapabiliriz! Ne kadar serin! Ekranı kullanmak için tek yapmamız gereken bu yapıcıyı kullanmak:
U8G2_ST7920_128X64_1_HW_SPI u8g2(U8G2_R0, /* CS=*/ 10, /* sıfırlama=*/ 8);
kurulum işlevinde ekranı başlatın:
u8g2.begin(); u8g2.enableUTF8Print(); u8g2.setFont(u8g2_font_helvB10_tf); u8g2.setColorIndex(1);
ve sonra tek yaptığımız sıcaklık ve nem için çerçeveleri ve ipleri çizmek:
u8g2.drawFrame(0, 0, 128, 31);
u8g2.drawFrame(0, 33, 128, 31); u8g2.drawStr(15, 13, "Sıcaklık");
Son yapmamız gereken sensörden sıcaklık ve nemi okumak ve okumayı ekranda göstermek.
geçersiz okumaSıcaklığı()
{ float t = dht.readTemperature(); dtostrf(t, 3, 1, sıcaklık); }
Her zaman olduğu gibi, ekte projenin kodunu bulabilirsiniz.
4. Adım: Son Düşünceler
Son bir düşünce olarak, büyük bir ekrana ihtiyacımız olan ve renge ihtiyacımız olmayan projelerde bu ekranın çok faydalı olduğunu düşünüyorum. Ucuz ve kullanımı kolaydır. İlerleyen projelerde kullanmayı düşünüyorum.
Bu ekran hakkında görüşlerinizi öğrenmek isterim. Sizce böyle bir ekrandan ne tür uygulamalar faydalanacak? Fikirleriniz ve bu Eğitilebilir Yazıyı okuduğunuz için teşekkür ederiz. Bir dahaki sefere görüşürüz!