Picproje Elektronik Sitesi

DİJİTAL & ANALOG ELEKTRONİK => Malzeme Bilgisi => Konuyu başlatan: sifirzero - 02 Mayıs 2015, 14:12:02

Başlık: 2*16 lcd ekran arızası nasıl bulunur.
Gönderen: sifirzero - 02 Mayıs 2015, 14:12:02
selamünaleyküm  2*16 lcd ekran arızalımı değilmi nasıl anlarız arkadaşlarlütfen yardım
Başlık: Ynt: 2*16 lcd ekran arızası nasıl bulunur.
Gönderen: mehmet - 03 Mayıs 2015, 13:32:40
1. pin GND.
2. pin +5V
3. pin; +5 ile GND arasına bağlanmış 10K potun orta ucu
olacak şekilde bağladığınızda resimdeki gibi kareleri
görüyor olmanız gerekli. Potla oynayarak daha net görüntü
elde edebilirsiniz.
Ancak böyle kareleri gömüyorsanız arızalı olma ihtimali vardır.
Bağlantı şekliniz ve/veya resimleri paylaşırsanız daha fazla yardım
alabilirsiniz...
http://electronics-diy.com/schematics/1162/character-lcd-displays.jpg (http://electronics-diy.com/schematics/1162/character-lcd-displays.jpg)
Başlık: Ynt: 2*16 lcd ekran arızası nasıl bulunur.
Gönderen: sifirzero - 03 Mayıs 2015, 14:27:30
kardeşim böyle karaler görüyorum.kurudğum devredemi hata var acaba ekrana görüntü alamıyorum sadece gönderdiğin görüntü var.ekranda
Başlık: Ynt: 2*16 lcd ekran arızası nasıl bulunur.
Gönderen: sifirzero - 03 Mayıs 2015, 14:33:27
kardeşim birşey sorcam simülasyonda çalışıyor ama devreye kurduğumda çalışmıyor.nerede hatam olabilir.
Başlık: Ynt: 2*16 lcd ekran arızası nasıl bulunur.
Gönderen: sifirzero - 03 Mayıs 2015, 15:05:37
#include <16F84A.h>//Permite definir el pic con el que se va a trabajar y con el cual se llevara la compilacion
#device adc=16//Bits d
///5/65536=o.000076293 volts
#define use_portb_lcd TRUE
#define use_porta_lcd TRUE
#use delay (clock=4000000)//Define la frecuencia del oscilador del pic
//#use standard_io(c)//Declarar el puerto como entrada/salida digital

//Los fuses son los bits de configuracion del pic
//#FUSES NOWDT,XT,NOMCLR,NOPROTECT                //No Watch Dog Timer, desactiva el reset por MCLR y sin proteccion en el codigo.

//#FUSES BROWNOUT //reset en bajo voltaje

#include <math.h>//Libreria para calculos matematicos

#include <lcd_16f84.c>//Libreria o driver para el lcd
int i=0;
void main(){
set_tris_A(254);
lcd_init();
//LCD_configportb,7,6,5,4,porta,0,1,2)
//Lcd_Cmd(Lcd_CURSOR_OFF)
Lcd_putc("serkan cetin");
//lecturadigital();
//delay_ms(1000);
}
   kodlar bunlar.
Başlık: Ynt: 2*16 lcd ekran arızası nasıl bulunur.
Gönderen: sifirzero - 03 Mayıs 2015, 15:07:01
lcd uçlarınıda simülasyndaki gibi yaptım ama çalışmadı.nerede hata yapıyorumdur.az çok anlıyorum bu işten daha önce yaptım 16f877a ile ama 628 veya 84a da lcd çıktı alamadım.yardımcı olurmusun mehmet kardeş.
Başlık: Ynt: 2*16 lcd ekran arızası nasıl bulunur.
Gönderen: mehmet - 03 Mayıs 2015, 23:03:25
Kodlarınızı # kod ekleme şeklinde ekleyiniz öncelikle.

Hangi derleyici için yazılmış kodlar? Ayrıca; //LCD_configportb,7,6,5,4,porta,0,1,2)
satırı hatalı gibi??? Pin tanımlamaları yapılmamış gibi duruyor...
Başlık: Ynt: 2*16 lcd ekran arızası nasıl bulunur.
Gönderen: baran123 - 03 Mayıs 2015, 23:27:03
Şu şekilde deneyebilir misin ? Dağınık yazarsanız her şey birbirine girer kimsede uğraşmak istemez.Bilginiz olsun.
Pin ayarlarını lcd dosyasında yapabilirsin.
RW Pinini kullanmıyorsanız mutlaka GND ye bağlayınız.

#include <16F84A.h>
#device ADC=10// 16 bit ADC hatalı sanırım. 16F84A da maximum 10 bit diye hatırlıyorum.
#fuses XT,NOWDT// 4 MHz kristal takılı
#use DELAY(CLOCK=4MHz)

#include "lcd.c"//lcd kütüphanesi

void main(void)
{
   set_tris_a(0x00);//a portu çıkış
   output_a(0x00);//a portunu sıfıra çek

   lcd_init();//lcd hazırla
   
   lcd_gotoxy(1,1);//1.satır 1.sütuna git | \f ekranı temizler, \n alt satıra geçer
   printf(lcd_putc,"\fTEST\TEST");

   while(TRUE)
   {

   }
}


lcd.c

//---------LCD Pin Ayarları----------------------
#define LCD_DB4   PIN_B0
#define LCD_DB5   PIN_B1
#define LCD_DB6   PIN_B2
#define LCD_DB7   PIN_B3

#define LCD_E     PIN_B5
#define LCD_RS   PIN_B4
//-------------------------------------------------
#define lcd_type 2   
#define lcd_line_two 0x40

int8 const LCD_INIT_STRING[4] = { 0x20 | (lcd_type << 2), 0xc, 1, 6 };
                             
void lcd_send_nibble(int8 nibble)
{
   output_bit(LCD_DB4, !!(nibble & 1));
   output_bit(LCD_DB5, !!(nibble & 2)); 
   output_bit(LCD_DB6, !!(nibble & 4));   
   output_bit(LCD_DB7, !!(nibble & 8));   
   
   delay_cycles(1);
   output_high(LCD_E);
   delay_us(2);
   output_low(LCD_E);
}

#ifdef USE_LCD_RW
int8 lcd_read_nibble(void)
{
   int8 retval;

   #bit retval_0 = retval.0
   #bit retval_1 = retval.1
   #bit retval_2 = retval.2
   #bit retval_3 = retval.3
   
   retval = 0;
       
   output_high(LCD_E);
   delay_cycles(1);
   
   retval_0 = input(LCD_DB4);
   retval_1 = input(LCD_DB5);
   retval_2 = input(LCD_DB6);
   retval_3 = input(LCD_DB7);
     
   output_low(LCD_E);
       
   return(retval);   
}   
#endif

#ifdef USE_LCD_RW
int8 lcd_read_byte(void)
{
   int8 low, high;
   
   output_high(LCD_RW);
   delay_cycles(1);
   
   high = lcd_read_nibble();
   
   low = lcd_read_nibble();
   
   return( (high<<4) | low);
}
#endif

void lcd_send_byte(int8 address, int8 n)
{
   output_low(LCD_RS);
   
   #ifdef USE_LCD_RW
   while(bit_test(lcd_read_byte(),7)) ;
   #else
   delay_us(60); 
   #endif
   
   if(address)
      output_high(LCD_RS);
   else
      output_low(LCD_RS);
         
    delay_cycles(1);
   
   #ifdef USE_LCD_RW
      output_low(LCD_RW);
      delay_cycles(1);
   #endif
   
   output_low(LCD_E);
   
   lcd_send_nibble(n >> 4);
   lcd_send_nibble(n & 0xf);
}

void lcd_init(void)
{
   int8 i;
   
   output_low(LCD_RS);
   
   #ifdef USE_LCD_RW
   output_low(LCD_RW);
   #endif
   
   output_low(LCD_E);
   
   delay_ms(15);
   
   for(i=0 ;i < 3; i++)
   {
      lcd_send_nibble(0x03);
      delay_ms(5);
   }
   
   lcd_send_nibble(0x02);
   
   for(i=0; i < sizeof(LCD_INIT_STRING); i++)
   {
      lcd_send_byte(0, LCD_INIT_STRING[i]);
     
      #ifndef USE_LCD_RW
      delay_ms(5);
      #endif
   }
   
}

void lcd_gotoxy(int8 x, int8 y)
{
   int8 address;
   
   if(y != 1)
      address = lcd_line_two;
   else
      address=0;
   
   address += x-1;
   lcd_send_byte(0, 0x80 | address);
}

void lcd_putc(char c)
{
   switch(c)
   {
      case '\f': lcd_send_byte(0,1); delay_ms(2); break;
      case '\n': lcd_gotoxy(1,2); break;
      case '\b': lcd_send_byte(0,0x10); break;
      default: lcd_send_byte(1,c); break;
   }
}

#ifdef USE_LCD_RW
char lcd_getc(int8 x, int8 y)
{
   char value;
   
   lcd_gotoxy(x,y);
   
   while(bit_test(lcd_read_byte(),7)); 
   
   output_high(LCD_RS);
   value = lcd_read_byte();
   output_low(lcd_RS);
   
   return(value);
}
#endif


Başlık: Ynt: 2*16 lcd ekran arızası nasıl bulunur.
Gönderen: sifirzero - 05 Mayıs 2015, 11:33:30
abilerim çalışan birtane hex dosyası ögnderirmisniz 16f84a veya 16f628a ile çalışantabi bacak bağlantıları ile birlikte deneyim yoksa şevkim kaçcak.öğrenmek istiyorum.Allah razı olsun sizden
Başlık: Ynt: 2*16 lcd ekran arızası nasıl bulunur.
Gönderen: ankyra - 05 Mayıs 2015, 12:22:05
Alıntı yapılan: sene35 - 03 Mayıs 2015, 14:33:27
kardeşim birşey sorcam simülasyonda çalışıyor ama devreye kurduğumda çalışmıyor.nerede hatam olabilir.

LCD nin kontrasti çok açık olabilir mi? 3. bacaktaki trimpotla oyna...
pic çalışıyor mu? kontrol et (bir led yakıp söndür)... pic in + - beslemesine 100 nF bağla (entegrenin dibine)...
Başlık: Ynt: 2*16 lcd ekran arızası nasıl bulunur.
Gönderen: vitruvius - 05 Mayıs 2015, 12:57:20
Devre şemanızı paylaşmanız lazım.
Başlık: Ynt: 2*16 lcd ekran arızası nasıl bulunur.
Gönderen: sifirzero - 05 Mayıs 2015, 13:02:39
pic çalışıyor flipflop denedim ama lcd de görüntü alamdım.sadece tek sıra siyah kutucuklar var.kontrast falan çalışıyor.
Başlık: Ynt: 2*16 lcd ekran arızası nasıl bulunur.
Gönderen: Kürşat C. - 05 Mayıs 2015, 13:41:37
16F877A İLE ÇALIŞAN BİR DEVRE İSTERSENİZ GÖNDEREBİLRİM
Başlık: Ynt: 2*16 lcd ekran arızası nasıl bulunur.
Gönderen: sifirzero - 05 Mayıs 2015, 15:49:19
http://www.teknikders.com/index.php?sayfa=video&videoid=17 (http://www.teknikders.com/index.php?sayfa=video&videoid=17)   bu siteden aldım kodu hex dosyasını
Başlık: Ynt: 2*16 lcd ekran arızası nasıl bulunur.
Gönderen: sifirzero - 08 Mayıs 2015, 14:59:02
abilerim Allah razı olsun sizden yardım edin kafayı yicem lcd den görüntü alamıyorum ne denediysem olmuyor.http://electronics-diy.com/schematics/1162/character-lcd-displays.jpg (http://electronics-diy.com/schematics/1162/character-lcd-displays.jpg)   sadece böyle görüntü alıyorum yardım edin
Başlık: Ynt: 2*16 lcd ekran arızası nasıl bulunur.
Gönderen: baran123 - 08 Mayıs 2015, 17:25:56
verdigim kodu denedin mi ?
Başlık: Ynt: 2*16 lcd ekran arızası nasıl bulunur.
Gönderen: sifirzero - 09 Mayıs 2015, 16:08:21
arkadaşlar sorunu çözdüm boşta kalan data uçlarını birleştrip nötr bağladım ve çalıştı.daha öncede led yakmak istedim şevkim krılmasın öğreneyim diye ledide yakamdım led deki sorunda elimi pic götrüdüğümde ledyanıyordu.o sorunda voltaj düşük olduğu için oluyormuş.lcd birde mclr ucuna 10 k diren bağlamamıştım bağaldım o sorunda çözüldü.yardımcı olan arkadaşlardan Allah razı olsun.ölüm ölmüyor kabir kapısı kapanmıyor.gençlik akıp gidiyor.
Başlık: Ynt: 2*16 lcd ekran arızası nasıl bulunur.
Gönderen: sifirzero - 22 Mayıs 2015, 10:07:41
arkadaşlar bir sorum olacak.pic devresinde nötr söktüğümde led yanıyor.