Elektronik / Mikrodenetleyici Projeleri/

One Wire LCD

Mühendislik, bence, yeni bir şeyler keşfetmek, yaratmak, hiç olmadı eski sistemlerle cinlikler oluşturmak demek. Geçen haftalarda bu sitede gördüğüm tek pin ile LCD uygulaması da bunlardan biri. Ne zamandır LCD’lerle haşır neşir olmuştum, 3 kablo ile 74HC595 kullanarak sürmüştüm fakat tek kablo mu? İşte bunun nasıl olacağını düşünedururken o site gözüme çarptı. Hemde tüm elektronikçilerin bildiği bir sabiti kullanarak yapılmıştı; T=RC. T=RC, sonucu saniye olan, ilk önce fizik II dersinde bizlere gösterilen, daha sonrasında ise devre analizi, mikroelektronik, sinyal gibi bir çok dersin içinde yer almış bir sabit.

Kapasitör förmülünde R direnci üzerinden dolan C büyüklüğünde kapasitörün üzerindeki gerilim şu formülle değişecektir: Vc(T)=V[1-exp(-t/RC)]. Buradan da görüleceği üzere t sonsuza gittiğinde kapasitörün üzerindeki gerilim en sonunda beslemeye eşit olacaktır. Bu doluma ait grafiği ise yukarıda görebilirsiniz.

Öncelikle aşağıdaki devre şemasını bir inceleyelim.

One_Wire_1

Roman Black’in de dediğine göre kullandığı yöntem yeni bir yöntem olmayıp, çok eskiden beri kullanılmaktaymış. Mantığını ise tetiklemenin yükselen kenarda olduğunu düşünerek şöyle açıklayabiliriz:

– Kapasitör değerimiz C ve direnç değerimiz R ise, bu çift ile oluşturulmuş bir devrede dolu kapasitörün boşalması için en az 5T’lik bir zamana ihtiyaç vardır.

– Eğer sinyal çok hızlı sıfıra inip tekrar 5V seviyesine yükselirse, kapasitör boşalmadan karşı tarafa High seviyesinin iletimi sağlanır.

– Yine aynı şekilde hat sıfıra çekilip, 5T kadar süre beklenildiğinde ise kapasitör boşalacak ve yükselen kenarla karşı tarafa Low seviyesi iletimi sağlanacaktır.

– Low seviyesi gönderiminden sonra ise kapasitörün tekrar dolması için 5T kadar beklemek gerekmektedir.

Piyasada bulunabilecek LCD’ler 4 data ve 3 kontrol pini ile kontrol edilebilmektedir. Ayrıca yukarıdaki resimde gösterildiği gibi çalışma, sadece seven segment gibi uygulamalarda işe yaramaktadır. LCD’ler ise komutları aynı anda almak zorundadır. Bunun için önce kaydırma işlemini kendi içinde yapan, daha sonra ise verilen başka bir sinyalle bu kaydırılmış bilgileri aynı anda paralel çıkışa verebilecek bir entegre kullanılmalıdır. Bunun için ben 74HC595’i kullandım.

Shift register olarak 74HC595 kullanıp, kapasitör ve direnç değerlerini de alttaki gibi belirleyince, bilgi göndermek için oluşan zaman diyagramı, devre ile birlikte aşağıdaki gibi olmaktadır.

74HC595_One_Wire_2

Şimdi data hattına Low sinyali göndermek için küçük bir hesaplama yapalım:

R=1k5 ve C=2n2 verilmiş. Buradan T=RC=3.3us~3us yapmaktadır. 5T=15us yapar. Görüldüğü üzere yukarıdaki tüm diyagramlar buna göre oluşturulmuştur. Burada dikkat edilecek en önemli konu ise latch sistemini tetiklemeye yarayan RC değerinin, data göndermek için kullanılan zamandan en az 20 kat daha fazla sürmesi gerekmesidir. Böylelikle olası çakışmalar engellenebilmektedir.

Aşağıda ise örnek olarak 0xD4 sayısının karşıya gönderimi gösterilmiştir.

74HC595_One_Wire_lcd

Yukarıdaki resimden de görüleceği üzere 0. bit kullanım dışında kalmaktadır. Bunu dikkate alarak LCD kütüphanenizi yazmakta fayda vardır. Aşağıdaki kodlarda ise tek hattan veri gönderimi için gerekli kütüphane yer almaktadır. Bunu kullanmak istediğiniz kütüphaneye yerleştirip, dilediğiniz gibi tek hattan LCD veya benzeri araçları kontrol edebilirsiniz.

One Wire Fonksiyonu:

void one_wire_control(unsigned char temp)
{
	char i;
	One_Wire_LCD=1;
	for(i=0;i < 8;i++)
	{
		if((temp<<(i))&0x80)
		{
			One_Wire_LCD=0;
			One_Wire_LCD=1;
		}
		else
		{
			One_Wire_LCD=0;
			__delay_us(15);
			One_Wire_LCD=1;
			__delay_us(30);
		}
	}
	One_Wire_LCD=0;
	__delay_us(210);
	One_Wire_LCD=1;
	__delay_us(300);
}

Buradaki zamanlamaları istediğiniz RC değerine göre tekrar düzenleyebilirsiniz.
Aşağıda, yukarıdaki fonksiyon kullanılarak oluşturulmuş devreyi görebilirsiniz. Maalesef elimde 2.2nF olmadığı için gerçekte deneme şansım olmadı fakat en kısa sürede deneyip sonuçları buradan yine paylaşacağım.

One_Wire_LCD_circuit

Son olarak projeyi yapacaklar için, çok gürültülü ortamlarda devrenin çalışması üzerinde barındırdığı kapasitör yüzünden sorunlar oluşturabilir. Buna dikkat edilerek, uzun süreli çalışma için kutupsuz kapasitörler kullanılması önerimdir.

Proje ile ilgili simülasyon ve .hex dosyası: One Wire LCD

Dosya indirme LINK listesi (TXT formatında) link-21449.zip şifre-pass: 320volt.com

Herkese iyi çalışmalar.

  1. H.Tuna 2013/05/16
  2. FxDev 2013/05/16
  3. Eşref Soylu 2013/05/16
  4. FxDev 2013/05/16

Yorum

Soru: