Ovdje pročitajte kako se registrirati na forum.

LCD 16x2, problem sa ocitavanjem

Tehnička podrška za sve module i aktuatore iz ponude e-radionica.com
Odgovorite
advancedgwt#8706
Ozbiljni hardveraš
Ozbiljni hardveraš
Postovi: 100
Pridružen/a: pon lip 11, 2018 12:42 pm

LCD 16x2, problem sa ocitavanjem

Post Postao/la advancedgwt#8706 » pon ruj 03, 2018 10:46 am

Pozdrav svima,
Upravo sam narucio OLED iz e radionice pa dok cekam prikacio sam neki 16x2 LCD na Croduino Basic 2. Spajanje pinova na LCDu sa Croduinom sam proverio i trebalo bi da je sve u redu. Znaci primer je sa vaseg web sajta i trebao je da napise Hello World.

What can be wrong?


slika
Avatar
david.zovko#4297
e-radionica.com team
e-radionica.com team
Postovi: 206
Pridružen/a: ned tra 15, 2018 2:59 pm
Lokacija: Osijek, Croatia
Kontakt:

Re: LCD 16x2, problem sa ocitavanjem

Post Postao/la david.zovko#4297 » sri ruj 05, 2018 1:29 pm

Pratio si ove upute: https://e-radionica.com/hr/blog/2015/08 ... 0Croduinom

Pin broj 3 LCD-a je pin pomoću kojega se podešava kontrast. U kodu je nazvan kao KONTRAST te je po defaultu postavljen na 110. Kako mi izgleda na slici, čini mi se da je podešen malo prejako. Defaultna vrijednost je 110. Možeš li to malo smanjiti?

Druga opcija je dodati potenciometar s kojime ćeš podesiti kontrast na LCDu - sada je na max. pa ne možeš vidjeti slova, čak i u slučaju da je sve spojeno dobro. Jednostavno poveži 10k potenciometar tako da mu na srednji pin staviš pin 3 LCD-a, a na ostala dva pina 5V i gnd.

Ovo sve je s pretpostavkom da je sve dobro spojeno. Provjeri konekcije još jednom - za svaki slučaj ;)
advancedgwt#8706
Ozbiljni hardveraš
Ozbiljni hardveraš
Postovi: 100
Pridružen/a: pon lip 11, 2018 12:42 pm

Re: LCD 16x2, problem sa ocitavanjem

Post Postao/la advancedgwt#8706 » čet ruj 13, 2018 2:00 pm

Hvala Davide,
provericu jos jednom sve. U medjuvremenu sam narucio i OLED, jel ima neko uputstvo za to? Upravo stigao :)
Avatar
david.zovko#4297
e-radionica.com team
e-radionica.com team
Postovi: 206
Pridružen/a: ned tra 15, 2018 2:59 pm
Lokacija: Osijek, Croatia
Kontakt:

Re: LCD 16x2, problem sa ocitavanjem

Post Postao/la david.zovko#4297 » čet ruj 13, 2018 6:56 pm

Naravno!

slika

konekcije:
OLED..........CRODUINO
GND.............GND
VCC.............3.3V
D0 (CLK)........D13
D1 (DATA).......D11
RST (RESET).....D8
DC..............D9
CS (SS).........D10

Library kojega trebaš: https://github.com/HobbyComponents/HCuOLED

I kod:

Kod: Označite sve

#include "HCuOLED.h"
#include "SPI.h"

/* Example bitmap */
const PROGMEM byte Tiny_Logo_Resistor[] =
{
  0xC0, 0xE0, 0x30, 0x30, 0xF0, 0xE0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x80, 0xE0, 0x38, 0x0E, 0x07, 0x1E, 0x78, 0xE0, 0x80, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x70, 0x1C, 0x07, 0x0F, 0x3C, 0xF0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x80, 0xF0, 0x3C, 0x0F, 0x07, 0x1C, 0x70, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x80, 0xE0, 0x78, 0x1E, 0x07, 0x0E, 0x38, 0xE0, 0x80, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xE0, 0xF0, 0x30, 0x30, 0xE0, 0xC0, 
  0x00, 0x01, 0x03, 0x03, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x0F, 0x3C, 0x38, 0x0E, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x1E, 0x38, 0x1C, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x0E, 0x38, 0x38, 0x0E, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x1C, 0x38, 0x1E, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x0E, 0x38, 0x3C, 0x0F, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x03, 0x03, 0x01, 0x00, 
};


/* Digital pin number for the displays chip select pin */
#define CS_DI 10
/* Digital pin number for the displays data/command pin */
#define DC_DI 9
/* Digital pin number for the displays reset pin */
#define RST_DI 8

/* Array indexes for the X and Y coordinates */
#define X1 0
#define Y1 1
#define X2 2
#define Y2 3

/* Arrays to store coordinates and direction for the line, rectangle and bitmap */
byte Box[4] = {1,1,20,20};
byte BoxDir[4] = {1,1,1,1};
byte Line[4] = {100,25,120,55};
byte LineDir[4] = {-1,-1,-1,-1};
byte Bitmap[2] = {40,40};
byte BitmapDir[2] = {-1,-1};



/* Create an instance of the library (uncomment one of the lines below) */
HCuOLED HCuOLED(SSD1307, CS_DI, DC_DI, RST_DI); // For SSD1307 displays (HCMODU0050 & HCMODU0052)
//HCuOLED HCuOLED(SH1106, CS_DI, DC_DI, RST_DI); // For SH1106 displays (HCMODU0058 & HCMODU0059)


void setup() 
{

  /* Reset the display */
  HCuOLED.Reset();
}

void loop() 
{
  /* Display some text using a small 8x8 fixed width font */
  HCuOLED.SetFont(Terminal_8pt);
  HCuOLED.Cursor(1,0);
  HCuOLED.Print("e-radionica.com");
  HCuOLED.Cursor(20,10);
  HCuOLED.Print("OLED radi!");

  /* Display a number using a large 4 line LCD style font */
  HCuOLED.Cursor(30,24);
  HCuOLED.SetFont(LCDLarge_24pt);
  HCuOLED.Print("e-r.io");
 
  /* Change the draw mode from NORMAL to INVERT */
  HCuOLED.DrawMode(INVERT);
  while(1)
  {
    /* Move the positions of the 3 objects */
    MoveRect();
    MoveLine();
    MoveBitmap();
    
    /* Draw the objects to the display buffer */
    HCuOLED.Rect(Box[X1],Box[Y1],Box[X2],Box[Y2], SOLID);
    HCuOLED.Line(Line[X1],Line[Y1],Line[X2],Line[Y2]);
    
    HCuOLED.Cursor(Bitmap[X1],Bitmap[Y1]);
    HCuOLED.Bitmap(84, 2, Tiny_Logo_Resistor);
    
    /* Write the display buffer to the screen */
    HCuOLED.Refresh();
    
    /* Draw the objects again. As we are in INVERT mode this will remove them */
    HCuOLED.Rect(Box[X1],Box[Y1],Box[X2],Box[Y2], SOLID); 
    HCuOLED.Line(Line[X1],Line[Y1],Line[X2],Line[Y2]);
    
    HCuOLED.Cursor(Bitmap[X1],Bitmap[Y1]);
    HCuOLED.Bitmap(84, 2, Tiny_Logo_Resistor); 
  }
}


/* Update the X and Y coordinates for the box */
void MoveRect(void)
{
  if(Box[X1] == 0 || Box[X1] == 127)
    BoxDir[X1] *= -1;
  Box[X1] += BoxDir[X1];
  
  if(Box[Y1] == 0 || Box[Y1] == 63)
    BoxDir[Y1] *= -1;
  Box[Y1] += BoxDir[Y1];
  
  if(Box[X2] == 0 || Box[X2] == 127)
    BoxDir[X2] *= -1;
  Box[X2] += BoxDir[X2];
  
  if(Box[Y2] == 0 || Box[Y2] == 63)
    BoxDir[Y2] *= -1;
  Box[Y2] += BoxDir[Y2];   
}

/* Update the X and Y coordinates for the Line */
void MoveLine(void)
{
  if(Line[X1] == 0 || Line[X1] == 127)
    LineDir[X1] *= -1;
  Line[X1] += LineDir[X1];
  
  if(Line[Y1] == 0 || Line[Y1] == 63)
    LineDir[Y1] *= -1;
  Line[Y1] += LineDir[Y1];
  
  if(Line[X2] == 0 || Line[X2] == 127)
    LineDir[X2] *= -1;
  Line[X2] += LineDir[X2];
  
  if(Line[Y2] == 0 || Line[Y2] == 63)
    LineDir[Y2] *= -1;
  Line[Y2] += LineDir[Y2];   
}

/* Update the X and Y coordinates for the bitmap */
void MoveBitmap(void)
{
  if(Bitmap[X1] == 0 || Bitmap[X1] == 43)
    BitmapDir[X1] *= -1;
  Bitmap[X1] += BitmapDir[X1];
  
  if(Bitmap[Y1] == 0 || Bitmap[Y1] == 47)
    BitmapDir[Y1] *= -1;
  Bitmap[Y1] += BitmapDir[Y1];
}
advancedgwt#8706
Ozbiljni hardveraš
Ozbiljni hardveraš
Postovi: 100
Pridružen/a: pon lip 11, 2018 12:42 pm

Re: LCD 16x2, problem sa ocitavanjem

Post Postao/la advancedgwt#8706 » čet ruj 13, 2018 10:20 pm

Super!
kristijan669#3735
Novak
Novak
Postovi: 2
Pridružen/a: sri sij 30, 2019 6:18 pm

Re: LCD 16x2, problem sa ocitavanjem

Post Postao/la kristijan669#3735 » sri sij 30, 2019 6:21 pm

Pozdrav, imam isti problem sa LCD-om, igrao sam se i sa kontrastom ali i dalje nema teksta na ekranu.
Jest li riješili problem?
Avatar
dekip#7441
Hobist
Hobist
Postovi: 44
Pridružen/a: pon srp 30, 2018 10:04 pm
Lokacija: Beograd
Kontakt:

Re: LCD 16x2, problem sa ocitavanjem

Post Postao/la dekip#7441 » sri sij 30, 2019 8:51 pm

Problem može biti pogrešan kontrast, pogrešno povezan ekran, loši dupont kablovi ili loša ploča/ekran.

Double-check povezivanje. Pa onda još jednom.
Avatar
david.zovko#4297
e-radionica.com team
e-radionica.com team
Postovi: 206
Pridružen/a: ned tra 15, 2018 2:59 pm
Lokacija: Osijek, Croatia
Kontakt:

Re: LCD 16x2, problem sa ocitavanjem

Post Postao/la david.zovko#4297 » sri sij 30, 2019 10:36 pm

Pozdrav, ako ste kod nas uzeli kablove i ekran, ne bi trebalo biti problema -- sve je testirano. Iako ako spajate preko breadboarda, provjerite još jednom kako su žice "ubodene". Više od jednom nam se znalo dogoditi da od malo namještanja žica sve proradi.

Vrlo vjerojatno su problem (pogrešne) konekcije ili kontrast (na slici izgleda baš kao pogrešan kontrast). Provjerite još malo pa javite
kristijan669#3735
Novak
Novak
Postovi: 2
Pridružen/a: sri sij 30, 2019 6:18 pm

Re: LCD 16x2, problem sa ocitavanjem

Post Postao/la kristijan669#3735 » čet sij 31, 2019 3:23 am

Kod vas sam uzeo hobby set, vise puta sam spajao lcd, mijenjao pinove u kodu, cak i zalemio zice za pinove na lcd-u da nebi bilo do loseg spoja....i dalje nista, evo na slici rezultat. Kontras podesavam preko potenciometra.

Pri testiranju koristim program hello world iz vaseg lib-a za lcd.

slika
Avatar
david.zovko#4297
e-radionica.com team
e-radionica.com team
Postovi: 206
Pridružen/a: ned tra 15, 2018 2:59 pm
Lokacija: Osijek, Croatia
Kontakt:

Re: LCD 16x2, problem sa ocitavanjem

Post Postao/la david.zovko#4297 » čet vel 07, 2019 3:16 pm

Definitivno problem u komunikaciji. Osim što Vas mogu pitati da još jednom provjerite konekcije, može i info koji library koristite?
Odgovorite