Şimdi Ara

LCD dalgalanma sorunu

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
3 Misafir - 3 Masaüstü
5 sn
2
Cevap
0
Favori
1.200
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Merhaba arkadaşlar,

    Devre üzerinde basılan butonların sonucunu LCD üzerinde gösteriyorum. Ancak Lcd üzerinde dalgalanma oluyor. İlk önce A ve B portundaki girişler okunuyor daha sonra bunlar LCD'ye yansıyor. İlk satırda herhangi bir sorun yok. İkinci satır dalgalanıyor sadece

    #include <16f877.h>  

    #device ADC=10

    #fuses XT,NOWDT,NOPROTECT,NOBROWNOUT,NOLVP,NOPUT,NOWRT,NODEBUG,NOCPD

    #use delay (clock=4000000)

    #use fast_io(a)
    #use fast_io(b)
    #use fast_io(c)

    #use rs232(baud=2400, xmit=PIN_C6, rcv=PIN_C7, parity=N, stop=1)

    #include <benim_LCD.c>

    #define Vites_Ileri PIN_B6
    #define Vites_Geri PIN_B7

    int1 Sol,Sag,Ileri,Geri;
    int Vites=1;
    int Hareket_Durumu=0;
    long Deger_1,Deger_2;
    float V1,V2;

    #int_RB
    void Vites_Belirle()
    {
    disable_interrupts(int_rb);

    if(input(Vites_Ileri))
    {
    delay_ms(20);
    while(input(Vites_Ileri));

    Vites++;

    if(Vites>5)
    Vites=5;
    }

    else if(input(Vites_Geri))
    {
    delay_ms(20);
    while(input(Vites_Geri));

    Vites--;

    if(Vites<1)
    Vites=1;
    }
    }


    void Deger_Oku()
    {
    set_adc_channel(0);
    delay_us(20);
    Deger_1=read_adc();
    V1=0.0048828125*Deger_1;

    delay_ms(60);

    set_adc_channel(1);
    delay_us(20);
    Deger_2=read_adc();
    V2=0.0048828125*Deger_2;

    delay_ms(60);

    Sol=0;
    Sag=0;
    Ileri=0;
    Geri=0;

    }

    void Degerlendir()
    {
    if((V1<1.5) && (V1>=0))
    {
    Sol=1;
    Sag=0;
    }

    else if((V1<=5) && (V1>3.5))
    {
    Sol=0;
    Sag=1;
    }

    else
    {
    Sol=0;
    Sag=0;
    }


    if((V2<1.5) && (V2>=0))
    {
    Ileri=1;
    Geri=0;
    }

    else if((V2<=5) && (V2>4))
    {
    Ileri=0;
    Geri=1;
    }

    else
    {
    Ileri=0;
    Geri=0;
    }

    if((Ileri==1)&&(Sol==1))
    {
    lcd_komut(0x01);
    printf(lcd_veri," Yon: Kuzeybati ");
    imlec(2,1);
    printf(lcd_veri,"Hiz seviyesi: %d",Vites);
    Hareket_Durumu=180;
    }

    else if((Ileri==1)&&(Sag==1))
    {
    lcd_komut(0x01);
    printf(lcd_veri," Yon: Kuzeydogu ");
    imlec(2,1);
    printf(lcd_veri,"Hiz seviyesi: %d",Vites);
    Hareket_Durumu=120;
    }

    else if((Geri==1)&&(Sag==1))
    {
    lcd_komut(0x01);
    printf(lcd_veri," Yon: Guneydogu ");
    imlec(2,1);
    printf(lcd_veri,"Hiz seviyesi: %d",Vites);
    Hareket_Durumu=140;
    }

    else if((Geri==1)&&(Sol==1))
    {
    lcd_komut(0x01);
    printf(lcd_veri," Yon: Guneybati ");
    imlec(2,1);
    printf(lcd_veri,"Hiz seviyesi: %d",Vites);
    Hareket_Durumu=160;
    }

    else if(Ileri==1)
    {
    lcd_komut(0x01);
    printf(lcd_veri," Yon: Kuzey ");
    imlec(2,1);
    printf(lcd_veri,"Hiz seviyesi: %d",Vites);
    Hareket_Durumu=110;
    }

    else if(Sag==1)
    {
    lcd_komut(0x01);
    printf(lcd_veri," Yon: Dogu ");
    imlec(2,1);
    printf(lcd_veri,"Hiz seviyesi: %d",Vites);
    Hareket_Durumu=130;
    }

    else if(Geri==1)
    {
    lcd_komut(0x01);
    printf(lcd_veri," Yon: Guney ");
    imlec(2,1);
    printf(lcd_veri,"Hiz seviyesi: %d",Vites);
    Hareket_Durumu=150;
    }

    else if(Sol==1)
    {
    lcd_komut(0x01);
    printf(lcd_veri," Yon: Bati ");
    imlec(2,1);
    printf(lcd_veri,"Hiz seviyesi: %d",Vites);
    Hareket_Durumu=170;
    }

    else if((Sol==0)&&(Sag==0)&&(Ileri==0)&&(Geri==0))
    {
    lcd_komut(0x01);
    printf(lcd_veri,"Arac durduruldu ");
    imlec(2,1);
    printf(lcd_veri,"Hiz seviyesi: %d",Vites);
    Hareket_Durumu=100;
    }
    }


    void Hareket_Yonu_Gonder(int veri)
    {
    putc(0x55);
    putc(0x55);
    putc(0x55);
    putc(0x55);
    putc(0x55);
    putc(0x00);
    putc(0x00);
    putc(0x00);
    putc(0x00);
    putc(0x00);
    putc(0xFF);
    putc(0xFF);
    putc(0xFF);
    putc(0xFF);
    putc(0xFF);
    putc('A');
    putc('A');
    putc('A');
    putc(veri);
    putc(veri);
    putc(veri);
    }

    void Vites_Bilgisi_Gonder(int veri)
    {
    putc(0x55);
    putc(0x55);
    putc(0x55);
    putc(0x55);
    putc(0x55);
    putc(0x00);
    putc(0x00);
    putc(0x00);
    putc(0x00);
    putc(0x00);
    putc(0xFF);
    putc(0xFF);
    putc(0xFF);
    putc(0xFF);
    putc(0xFF);
    putc('B');
    putc('B');
    putc('B');
    putc(veri);
    putc(veri);
    putc(veri);
    }

    void main()
    {
    setup_psp(PSP_DISABLED);
    setup_timer_1(T1_DISABLED);
    setup_timer_2(T2_DISABLED,0,1);
    setup_CCP1(CCP_OFF);
    setup_CCP2(CCP_OFF);

    setup_adc_ports(AN0_AN1_AN3);
    setup_adc(ADC_CLOCK_INTERNAL);


    set_tris_a(0x03);
    set_tris_b(0xC0);
    set_tris_c(0x00);

    output_a(0x00);
    output_b(0x00);
    output_c(0x00);

    lcd_hazirla();

    enable_interrupts(GLOBAL);

    while(1)
    {
    enable_interrupts(int_rb);
    Deger_Oku();
    Degerlendir();
    Hareket_Yonu_Gonder(Hareket_Durumu);
    Vites_Bilgisi_Gonder(Vites);
    }

    }







  • Bunun gibi mi?Bende de hiç olmuyordu böyle bir sorun ortaya çıktı.İşin garibi çalışan devre de de aynı sorunu yaptı.Kablolarda bir sıkıntı olabilir düşüncesindeyim.

     LCD dalgalanma sorunu
  • Yapay Zeka’dan İlgili Konular
    Monitörde titreme sorunu.
    2 ay önce açıldı
    Ekran Dalgalanma sorunu
    7 yıl önce açıldı
    Daha Fazla Göster
    
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.