4x20 lcd 3 pic ile kontrolü

Başlatan ChiliPepper, 23 Aralık 2022, 13:25:53

ChiliPepper

Herkese iyi günler 3 adet 16f1939 ile 1 adet 4x20 lcd'yi ortak kullanmaya çalışıyorum ama mümkün mü acaba ?
Lcd bacakları 3 entegreyle ortak. Bir pic lcd'ye yazarken diğerlerini beklettiğim halde ekrana yazamıyorlar. Ortak kullanabilmeleri için ne yapabilirim ?

Erol YILMAZ

Ortak bağlı Mcu pinleri aynı anda OUTPUT durumunda olursa lojik seviyeler çakışır. Çalışmaz.

Bunun için bir mcu portu ile LCD ye birşey yazarken diğer mcu ların ilgili portları INPUT (high-z) durumunda olmalı.

bence bir şema çizersen daha rahat konuşuruz.

ChiliPepper

#define LCD_RS    PIN_E1
#define LCD_RW    PIN_A0
#define LCD_E     PIN_E2
#define LCD_DB4   PIN_A7
#define LCD_DB5   PIN_A6
#define LCD_DB6   PIN_C0
#define LCD_DB7   PIN_C1
Bilgisayar başında olmadığım için şemayı atamadım ama lcd'deki bu 7 pin 3 entegrenin aynı bacaklarına paralel bağlı herhangi bir direnç pull-up pull-down vs. olmadan. Diğer 2 entegre veri göndermediği halde bu bacakları çakıştırıyor diyorsunuz sanırım. Peki nasıl high z konumunda  bırakabilirim bu bacakları

dnacikaya

Pcf8574a veya t kullanılabilirmi. I2c hattında pcf8574 int girişi işlemcilerden kesme alarak istenilen işlemcinin datası aktarılabilir belki. Kullanılan pin sayısıda 2ye düşer  Pcf8574 kullanıyorum ama tek lcd ile.

ChiliPepper

Son çarem öyle yapmak olacak. Sda Scl pinleri boşta olmadığı için bu şekilde yazılımsal olarak çözülebilir mi onu merak ediyorum

ChiliPepper

Alıntı yapılan: Erol YILMAZ - 23 Aralık 2022, 13:32:18Ortak bağlı Mcu pinleri aynı anda OUTPUT durumunda olursa lojik seviyeler çakışır. Çalışmaz.

Bunun için bir mcu portu ile LCD ye birşey yazarken diğer mcu ların ilgili portları INPUT (high-z) durumunda olmalı.

bence bir şema çizersen daha rahat konuşuruz.

Lcd'ye veri yazmadığı sürelerde, entegrelere lcd bacaklarını input oku dedim sorun çözüldü görünürde bir sıkıntı çıkarmadı şimdilik. Yardımlar için teşekkür ederim.

ChiliPepper

Şöyle bir sıkıntısı var şuan. 3 pic ayrı ayrı yazıyı lcdye 'lcd_init()' koduyla gönderdiğinde ekranı temizleyip yazıyı yazdırabiliyor fakat ben her picle 1 satıra yazdırmaya çalıştığımda diğer satırları silmeden ekran sapıtıyor . Acaba bir çözüm yolu var mı 

ferit06

#7
Alıntı yapılan: ChiliPepper - 11 Ocak 2023, 09:37:09Şöyle bir sıkıntısı var şuan. 3 pic ayrı ayrı yazıyı lcdye 'lcd_init()' koduyla gönderdiğinde ekranı temizleyip yazıyı yazdırabiliyor fakat ben her picle 1 satıra yazdırmaya çalıştığımda diğer satırları silmeden ekran sapıtıyor . Acaba bir çözüm yolu var mı 
4. Bir pic veya işi az olan pic ı LCD için arayüz olarak kulanmak.

yas

Soruyu tam anlamamış olabilirim. Anladığım kadarıyla diğer mcu'ların lcd ekrana yazdığı veriyi bozmadan sadece ilgili yerleri güncelleyerek tekrardan lcd ye yazılmak isteniyor. Muhtemelen lcd ye yeni bir veri girdiğinizde lcd deki ram datalarında kaymalar meydana geliyor. Önereceğim yöntem biraz dolambaçlıda olsa diğer mcu'ların lcd ye neler yazdığını anlamak gibi bir avantajla birlikte çözüm olabilir. Lcd nin aslında ram olduğunu düşünürsek. Yazmadan önce ekran datasını okuyup ilgili alanları değiştirip tekrar lcd nin tamamını yazmak çözüm olabilir.

erpay

Alıntı yapılan: ferit06 - 11 Ocak 2023, 18:54:23:-*
4. Bir pic veya işi az olan pic ı LCD için arayüz olarak kulanmak.

Bence de en mantıklısı bu.