Sari la conținut
ELFORUM - Forumul electronistilor

Probleme cu LCD RC1602B-BIW-ESX


Vizitator david1

Postări Recomandate

Vizitator david1

Buna ziua tuturor, De ceva vreme imi bat capul cu un afisaj LCD de tipul RC1602B-BIW-ESX. Am folosit o schema simpla in proteus, am creat un program in MPLab, in proteus totul este ok, functioneaza, imi afiseaza textul, dar trebuie sa mentionez ca in proteus nu am avut modelul LCD de mai sus, drept urmare am folosit modelul LM016L. Am vazut in documentatiile celor doua tipuri de LCD ca ambele folosesc acelasi controller, HD44780, si cred ca ar trebui sa fie compatibile cele doua LCD. Dar, in practica lucrurile nu merg chiar asa de bine. De fapt, LCD RC1602B nu imi afiseaza nimic. Cand dau contrastul mai mare imi apar patratele dar nimic altceva. Cred ca LCD nu se initializeaza dar nu stiu de ce ? Oare nu sunt compatibile LCD ? A mai avut cineva aceasta problema ? Am mai cautat pe forum dar nu am gasit nimic. Atasez mai jos si schema in proteus si programul in MPLab. Help !!! :cry: :cry: Mersi.

Link spre comentariu
  • Răspunsuri 18
  • Creat
  • Ultimul Răspuns

Top autori în acest subiect

  • Mircea

    4

  • deejay2k1

    3

  • Ionut Remus

    2

  • 10vid

    1

Top autori în acest subiect

Vizitator david1

Nu am scurt intre pini. Am verificat legaturile de nu stiu cate ori. Totul este ok. Dar am observat in urma masuratorilor ca la alimentare, pinii LCD-ului sunt pe unu logic, atat cele de date cat si RS, RW si E. Sa fie oare defect LCD-ul ? Numai ce l-am cumparat de la Adelaida, e drept ca a fost printre cele mai ieftine. Sa cumpar alt LCD ? poate vre-o recomandare ce marca ce tip ? Sau problema este undeva in program ? Nu mai stiu ce sa fac. :sparge: :sparge:

Link spre comentariu
Vizitator david1

Am incercat si cu R/W legat la masa. Tot nimic. Este prima data cand incerc sa folosesc un LCD, de aceea am si incercat cu o schema simpla. La primele incercari a incercat sa afiseze ceva, dar erau numai hieroglife, nu inteleg de ce. Dar afisa numai cateodata. Pe urma, dupa alte inercari nu mai afiseaza nimic. Am alimentat schema cu un LM 317 si la un moment dat am avut din greseala tensiuni de peste 7 V, PIC-ul nu a patit nimic dar ma gandesc ca poate s-a ars LCD. Dar si dupa acest incident a mai fost o ocazie cand au aparut hieroglife, dar dupa aceea nimic. Am umblat si la WAIT-uri dar tot nimic.Nu pot sa imi dau seama ce se intampla, nici nu am experienta cu LCD-uri. Va rog, ajutati-ma!!!

Link spre comentariu

'hieroglife' am avut si eu cand ratam initializarea.cauta pe net undeva un proiect functional cu 16f877 si lcd, poate pb e din codul tauinca ceva: pune un port sa faca on/off la interval de 1s, poate asa iti dai seama daca e o problema de soft sau electrica (uiti un mclr, wdt, sau mai stiu eu ce ....)si ia o pauza pana anul viitor :)

Link spre comentariu

eu am folosit rc1602...e adevarat printre cele mai sumpe...dar de fiecare data cand le-am pus in functiune au functionat din prima...atentie totusi ca sunt ceva pini inversati....pp ca te-ai uitat bine in datasheet, cel putin la mine erau cele pentru led pinul 1 si 2 (darerau notate pe placa lcd-ului cu 16 si 15) si pe urma urma numaratoarea de la 1 la 14 si ai grija la Vcc si Vdd ca am ars odata 1 doar ca le-am inversat pentru 1 sec. atentie si la backlight ca nu se alimenteaza la 5V ci la maxim 3,5V(3,6 am bagat eu la 1 si am ars backlightul). in alta ordine ai grija cu RC-urile ca sunt foarte sensibile chiar daca unele modele (cele care le-am folosit eu ma refer) sunt bune!

Link spre comentariu

Uite un exemplu simplu care afiseaza un mesaj pe un LCD 2x16. Este pentru un 16F628a, banuiesc ca ai unul la indemana ca sa testezi.

 

Codul (in Mikrobasic) doar pentru testare:

 

program LCD_test' Lcd module connectionsdim LCD_RS as sbit at RB0_bit    LCD_EN as sbit at RB1_bit    LCD_D4 as sbit at RB2_bit    LCD_D5 as sbit at RB5_bit    LCD_D6 as sbit at RB6_bit    LCD_D7 as sbit at RB7_bit    LCD_RS_Direction as sbit at TRISB0_bit    LCD_EN_Direction as sbit at TRISB1_bit    LCD_D4_Direction as sbit at TRISB2_bit    LCD_D5_Direction as sbit at TRISB5_bit    LCD_D6_Direction as sbit at TRISB6_bit    LCD_D7_Direction as sbit at TRISB7_bit' End Lcd module connections'   Set-up the PICsub procedure InitMain()    OPTION_REG =   0x80              ' Pull-up disabled PORTB    INTCON     =   0x00              ' No INT    CMCON      =   0x00              ' No COMP    CCP1CON    =   0x00              ' No PWM    TRISA      =   0xFF              ' All inputs    TRISB      =   0x00              ' All outputs    PORTA      =   0x00              ' Clear PORTA    PORTB      =   0x00              ' Clear PORTBend sub'   Main programMain:  InitMain()  Lcd_Init()                     ' Initialize Lcd  Lcd_Cmd(_LCD_CLEAR)            ' Clear display  Lcd_Cmd(_LCD_CURSOR_OFF)       ' Cursor offLCD:  Lcd_Out(1,1,"Daca vezi acest ")  Lcd_Out(2,1,"mesaj, LCD e OK!")  goto LCDend.

Acum ce ai sa vezi pe LCD - vezi conexiunile (R/W, D0 la D3 la GND):

post-19977-139829550237_thumb.png

 

HEX ca sa incarci in PIC pentru test (sterge .txt ca sa revina la extensia .hex):

16F628a_LCD testing.hex.txt

Link spre comentariu
Vizitator david1

Din pacate nu am acasa decat 16f84, 16f77, 16f690 si 16f877. Dar oricum in proteus schema functioneaza. In ceea ce priveste pinii am verificat documentatia LCD si la mine pinii incep de la 1 la 14 si 15,16 sunt backlight. Eu cred ca sunt bine notati pinii pentru ca la 1 am masa la 2 am 5V si 3 este contrastul. Pe urma nu stiu daca corespund si pinii RS, R/W,E si cele de date. Am vazut pe internet ca au cei de la Raystar si LCD cu notatia pinilor asa cum ai spus tu Ionut Remus dar la modelul meu nu sunt numerotate asa, sau cel putin eu asa cred. Oricum, amsa incerc cu un proiect functional de pe net sa vad daca funtioneaza sau nu. Poate cineva a mai folosit acest tip de LCD si ma ajuta cu un program care a functionat sau cel putin cu partea de initializare al LCD si cu conexiunile cu PIC.

Link spre comentariu

din pacate nu am proteus instalat si nu pot vedea schema dar condesatorii la cristal sunt pusi la masa? poate nu oscileaza cristalul. daca ii ai pusipoti incerca sa-i schimbi, am intalnit o situatie de genul si candam schimbat cei 2 conzi de 22pf sa rezolvat problema. din pacate nu a facut decat un proiect cu PIC si prea multe nu pot sa-ti spun. poti sa mai incerci sa verifici alimentarea lui poate e intrerupta undeva, ca din cate stiu eu backlight-ul si contrastul vin direct se la sursa de 5V si ca ai picul pus sau nu de aprins backlight-ul si contrast tot vei avea, verifica direct pe pinii din soclu daca iti ajunge tensiunea la uC. O mica atentie la fuses, poate nu sunt setati aia bine...

Link spre comentariu

Cod pentry 16F690:

' * Test configuration:'     MCU:             PIC16F690'     Oscillator:      INTOSC 2 MHz'     Ext. Modules:    -' *program LCD' Lcd module connectionsdim LCD_RS as sbit at RA0_bit    LCD_EN as sbit at RA1_bit    LCD_D4 as sbit at RB4_bit    LCD_D5 as sbit at RB5_bit    LCD_D6 as sbit at RB6_bit    LCD_D7 as sbit at RB7_bit    LCD_RS_Direction as sbit at TRISA0_bit    LCD_EN_Direction as sbit at TRISA1_bit    LCD_D4_Direction as sbit at TRISB4_bit    LCD_D5_Direction as sbit at TRISB5_bit    LCD_D6_Direction as sbit at TRISB6_bit    LCD_D7_Direction as sbit at TRISB7_bit' End Lcd module connections'   Set-up the PICsub procedure InitMain()    OPTION_REG =   0x80              ' Pull-up disabled PORTB    INTCON     =   0x00              ' No INT    OSCCON     =   0x56              ' 2MHz clock    CM1CON0    =   0x00              ' No COMP C1    CM2CON0    =   0x00              ' No COMP C2    CM2CON1    =   0x00              ' No COMP C2    SRCON      =   0x00              ' No SR latch    ANSEL      =   0x00              ' No AN I/Os    ANSELH     =   0x00              ' No AN I/Os    TRISA      =   0x3C              ' A2-A5 inputs, A0-A1 outputs    WPUA       =   0x00              ' Pull-up disabled    IOCA       =   0x00              ' IOC disabled    TRISB      =   0x00              ' All outputs    WPUB       =   0x00              ' Pull-up disabled    IOCB       =   0x00              ' IOC disabled    TRISC      =   0x00              ' All outputs    PORTA      =   0x00              ' Clear PORTA    PORTB      =   0x00              ' Clear PORTB    PORTC      =   0x00              ' Clear PORTCend sub'   Main programMain:  InitMain()  Lcd_Init()                         ' Initialize Lcd  Lcd_Cmd(_LCD_CLEAR)                ' Clear display  Lcd_Cmd(_LCD_CURSOR_OFF)           ' Cursor offLCD:  Lcd_Out(1,1,"Daca vezi acest ")  Lcd_Out(2,1,"mesaj, LCD e OK!")  goto LCD  end.

Si HEX:

MyProject.hex.txt

 

LCD datasheet: http://robofun.ro/docs/rc1602b-biw-esx.pdf

 

Conexiuni la PIC 16F690:

post-19977-139829550347_thumb.png

Link spre comentariu
Vizitator david1

Mersi thunderer, am reusit sa programez picul 16f690 si LCD functioneaza. Inseamna ca exista o problema la programul meu. Ramane sa aprofundez un pic sa vad unde am gresit. Dar inca o intrebare : Pinii D0-D3 trebuie sa le pun la masa ? Cand am incercat cu 16f877 nu i-am legat. Cand am incercat cu 16f690 i-am pus la masa ? sa fie de aici problema ? trebuie sa incerc.

Mersi oricum.

Link spre comentariu

Creează un cont sau autentifică-te pentru a adăuga comentariu

Trebuie să fi un membru pentru a putea lăsa un comentariu.

Creează un cont

Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!

Înregistrează un nou cont

Autentificare

Ai deja un cont? Autentifică-te aici.

Autentifică-te acum



×
×
  • Creează nouă...

Informații Importante

Am plasat cookie-uri pe dispozitivul tău pentru a îmbunătății navigarea pe acest site. Poți modifica setările cookie, altfel considerăm că ești de acord să continui.Termeni de Utilizare si Ghidări