16x2 Lcd Türkçe Karakter Sorunu Çözüldü! Arduino LCD ekrana yazı yazma - Arduino 16x2 Lcd ekran kullanımı

 LiquidCrystalTUR kütüphanesi nihayetinde hazır, biraz uğraştırdığını söyleyebilirim ancak neticeye de ulaşmış bulunmaktayım. Arduino 'nun ide yüklemesiyle birlikte gelen LiquidCrystal kütüphanesi, print fonksiyonuyla ne yazık ki türkçe karakterleri yazamıyor, bunun yerine custom karakterler tasarlayıp her biri için ayrı birer fonksiyon kullarak çağırmak gerekiyor.

lcd.print türkçe

 Normal şartlarda bu kütüphaneyi kullanarak print fonksiyonuyla lcd.print("Türkçe Yazı"); yazdığınızda karşılaştığınız manzara sol taraftaki gibi olacaktır, ayrıca bu kütüphaneyle ilgili benim gördüğüm bir iki eksiklik daha var, örneğin noDisplay fonksiyonuyla ekranın kapanmasını sağlayabiliyorsunuz, ancak kütüphanenin içinde ve Arduino 'nun resmi sitesindeki referanslarındaki bağlantı şemasını kullandığınızı düşünürsek, sadece ekrandaki görüntü gidiyor ve ışıklar yanmaya devam ediyor. İkincisi de kontrast problemi, kontrastı mutlaka bağladığınız pot üzerinden ayarlamak durumundasınız, peki ya bunu kod tarafında ayarlanabilir yapsaydık? yani eski LCD telefonların olduğu dönemlerden hatırlarsınız: bir kontrast ayarı olurdu ve kullanıcı oradan kontrast seviyesini ayarlayabilirdi, hatta ekran ışığı seviyesi de ayarlanabilirdi. İşte bu iki özellik de düzenlendiğimiz kütüphanenin içinde geliyor, ayarlanabilir kontrast ve arkaplan ışığı seviyesi.



    ve tabii ki kütüphaneyi düzenlemedeki asıl amacımız direkt olarak türkçe karakterlerin yazılabiliyor olması lcd.print("Türkçe Yazı"); fonksiyonuyla sağ taraftaki sonuca ulaşmanız mümkün. Tabii bunun için biz de ekranın custom karakter hafızasını kullandık, ama meraklanmayın 2 adet daha boş yeriniz kaldı hepsini doldurmadık :) 6 ve 7. bloklar boş, 0 ~ 5 arasında 5 dahil custom karakter ekleminize kütüphane türkçe karakterlerin kullanımını engellememek için müsade etmiyor.

    Söz konusu kütüphane 16x2 HD44780 chip kullanan ve A00 Rom a sahip ekranların 4 bit Mode sürülmesi için geçerli, elinizde A02 rom lu bir ekran varsa zaten türkçe karakterleri kullanabiliyor olacaksınız? Acaba öyle mi bundan emin olamadım? ama denemesi bedava : lcd.write(246); yazdığınızda ö harfi görüyorsanız rom kodunuz A02 demektir, hayır toplam işareti (sum) => Σ görüyorsanız, bu kütüphaneyi kullanabilirsiniz, normal şartlarda LiquidCrystal kütüphanesini kullandığınız bir projede sadece LiquidCrytalTUR kütüphanesini indirip (indirme linki yazının sonunda) projenize include ettiğinizde Türkça karakter özelliğini kullanabiliyor olacaksınız. Zira ayarlanabilir kontrast ve arkaplan ışığını da kullanmak isterseniz bağlantınızda ve kodunuzda ufak değişiklikler yapmanız gerekecek

const int bl = 10, cr = 9, rs = 12, en = 11,d4 = 5, d5 = 4, d6 = 3, d7 = 2;

LiquidCrystal lcd(rs, en, bl, cr, d4, d5, d6, d7);

bl değişkeni backligh için seçilmiş, cr değişkeni kontrast için seçilmiş, BL Arduino'nun 10. pinine Cr, de 9. pinine bağlanıyor olacak, tabii ki bunları değiştirebilirsiniz, ancak her ikisi için de PWM pinlerinden birini seçtiğinizden emin olun. Ekran ışığı için ekstra direnç kullanmanıza gerek yoktur.


lcd.setBacklight(20);  fonksiyonuyla ekran ışığı seviyesini 0 ile 30 seviyesi arasında

lcd.contrastLevel(91); fonksiyonuyla kontrast seviyesini ayarlayabilirsiniz 0 ile 255 arasında ayarlayabilirsiniz benim ekranımda 91 gayet düzgün çalıştı, bu ekrandan ekrana değişkenlik gösterebilir, dolayısıyla deneyerek optimum seviyeyi belirleyebilirsiniz.

Kütüphane en başından bu seviyeye gelene kadar yapılan tüm güncellemeler youtube kanalımda mevzut yanılmıyorsam 7 bölümlük bir seri oldu, izlerseniz size çok şey katacağına eminim. Linkleri ve nasıl kullanıldığına dair videomu aşağıya bırakıyorum. Konuyla alakalı sorunuz/öneriniz olursa yorumlara yazabilirsiniz.

-Herkese kolay gelsin.

indirme linki LiquidCrystalTUR



C# ile Arduino UNO kod yükleyici Uygulaması

Visual Studio C# Windows Forms uygulamasıyla Arduino IDE 'den bağımsız Arduino UNO kartlara hex kodu yükleyebilmek için bait bir uygulama yazdık, diğer kartları da eklemek için izlediğim adımları takip edebilirsiniz..


ilgili dosyalara linklerden erişebilirsiniz


- Herkese Kolay gelsin.

Arduino DHT11 Kullanımı - Arduino Kod - Arduino Termometre yapımı

DHT11 & Arduino UNO

  



      
DHT 11 wiring pin out

DHT 11 içerisinde NTC (Negative Temprature Coefficient) direnç ve nem sensörü bulunduran data kağıdında kendi deyimiyle => "yüksek performanslı" 8 bit mikrodenetleyici bulunan, (ölçüm yapması insanın kendi başına hava sıcaklığını ve nemini algılayabileceği süreden daha uzun süren:) , 250µs demişler ancak 2 saniye kadar sürebilir de demişler), bağlı olduğu sistemlerle "Tek hat-çift yön" serial protokolüyle konuşan güzide bir sensördür. Hep mi kötü bu kadar mı kötü, hayır tabii ki, ucuz mesela, bugünkü fiyatla 10 TL'ye almanız mümkün, düşünsenize bir NTC, bir nem sensörü, 8 bitlik "yüksek performanlı" bir mikrodenetleyici, bir kaç direnç ve kapasite, bunların takılı olduğu bir pcb, plastik muhafazası, pin headeri hatta onun takılı olduğu bir pcb daha, hepsi 10TL! Çinli malı eline almış kadıköy-eminönü seferinde bitti mi, bitmedi diyerek hepsini 10 liraya veriyor. En az sensörün kendisi kadar kaliteli bu yorumun ardından biraz teknik detaylarına bakalım.

dht11 iç görünümü

    

  1. Ölçme aralığı 20-90%RH, (Relative Humdity, bağıl nem)  0-50 ℃   
  2. Ölçüm doğruluğu Nem: ±5%RH, Sıcaklık : ±2℃
  3. Besleme gerilimi 3 - 5v5 (3v3 ve 5v luk µC lar ile kullanabilirsiniz.)
  4. İletişim, Single-Wire Two Way)
    İki tipine rastladım ben biri yalın halde satılıyor diğeri küçük bir pcbye monte edilmiş ikisi arasındaki tek fark pcb olanın üzerinde VCC-Data pini arasında bir 10K pull up direncinin olması, olaki elinizde yalın olanı var, bağlantı yaparken data pinini, sistemin VCCsine 10k bir dirençler pull-up yapmalısınız. Bu pcb li olanın bir de üzerinde kondansatör olanı var, kondansatör VCC-GND arasına giriş voltajını stabil tutmak için bağlanmış.

DHT11 Arduino UNO bağlantısı

dht 11 arduino uno wiring
dht 11 arduino wiring



  




Arduino IDE Kütüphanelerin Yüklenmesi
DHT.h No such file or directory hatası alıyorsanız

    Menuden, Araçlar * Kütüphaneleri Yönet, arama çubuğuna "DHT Sens" yazıyoruz 

DHT Sensor Library



DHT Sensor library by Adafruit yazanı yüklüyoruz.. yüklemek istediğinizde bu kütüphane başka bir kütüphaneye daha ihtiyaç duyuyor onu da yüklemek ister misiniz? diye sorunca evet deyip onu da yüklüyoruz. Kaçırdıysak, arama alanına Adafruit unified yazıp en altlara doğru iniyoruz

Adafruit Unified Sensor Library

Adafruit Unified Sensor by Adafruit yazan kütüphaneyi yüklüyoruz.

Basitçe kodumuz şöyle olacak:

#include "DHT.h"
#define DHTPIN 2     // Digital pin connected to the DHT sensor
#define DHTTYPE DHT11   // DHT 11
 DHT dht(DHTPIN, DHTTYPE);

void setup() {
  Serial.begin(115200);
  Serial.println(F("DHTxx test!"));

  dht.begin();
}

void loop() {
  
  delay(2000);

  float h = dht.readHumidity();
  float t = dht.readTemperature();

  // Check if any reads failed and exit early (to try again).
  if( isnan(h) ||  isnan(t)) {
    Serial.println(F("Failed to read from DHT sensor!"));
    return;
  }

  Serial.print(F("Humidity: "));
  Serial.print(h);
  Serial.print(F("%  Temperature: "));
  Serial.print(t);
  Serial.println(F("°C "));
}
Sonuç: 
DHT11 sensör Seri port ekranı çıkışı

Seri Ekran çıkışınızın 115200bps ye ayarlandığından emin olun.
Video Hali için :


- Herkese Kolay gelsin.

Türksat Saat Kanalı ve IRIG-B Time Code

Türksat Saat Kanalından Saat Bilgisi Nasıl Alınır? Uyduda kanalları dolaşırken, şu Türksat Saat kanalı hep dikkatimi çekmiştir. Özellikle  S...