Today i got an 192X64 SLG19264B LCD display from a friend to test.
But i don't know how to start.
I can not find any library.
The only thing i know is that the display has been bought fro aliexpress.
Can anyone help?
Thanks,
yannis.
Today i got an 192X64 SLG19264B LCD display from a friend to test.
But i don't know how to start.
I can not find any library.
The only thing i know is that the display has been bought fro aliexpress.
Can anyone help?
Thanks,
yannis.
Your link did not work.
But Aunty Google found https://h5.aliexpress.com/item/32920418479.html
which says:
- Overview
Model: SLG19264B
Display Type: 192*64 Dots
Module Size: 130.0 X 65.0 X 13.0
Viewing Area: 104.0 X 39.0
Viewing Angle: 6 O'Clock
Controller: KS0108 or Equal
U8g2lib supports KS0108 with 192x64. It will have three CS pins.
David.
Thanks David.
I will try it.
I see that in U8g2lib there is support for KS0108.
But i can't undestand how to connect the display in my arduino Uno R3.
I know that i have to uncomment the line:
U8G2_KS0108_ERM19264_F u8g2(U8G2_R0, 8, 9, 10, 11, 4, 5, 6, 7, /*enable=*/ 18, /*dc=*/ 17, /*cs0=*/ 14, /*cs1=*/ 15, /*cs2=*/ 16, /* reset=*/ U8X8_PIN_NONE); // Set R/W to low!
But since there is no 14,15,16 pins in my Uno i don't know how to wire it up.
I got the display pin out from the seller.
I attach it in my post.
Can you please explain me how to wire it up?
Thank you.
Yannis
The constructor is:
//U8G2_KS0108_ERM19264_1(rotation, d0, d1, d2, d3, d4, d5, d6, d7, enable, dc, cs0, cs1, cs2 [, reset])
U8G2_KS0108_ERM19264_1(U8G2_R0, 5, 6, 7, 8, 9, 10, 11, 12, 4, 2, 13, A1, A2, A0);
if you connect LCD pins 4-15 to Arduino digital #2-13 and LCD pins 16-18 to analog #0-2.
Connect LCD pin 1 to GND. 2,20 to 5V. Pot from LCD pin 1, 19 with slider to pin 3.
In setup() pinMode(3, OUTPUT); and digitalWrite(3, LOW);
There are a lot of wires. It is easier to connect in a nice order. Hence my wiring suggestion.
David.
david_prentice:
The constructor is://U8G2_KS0108_ERM19264_1(rotation, d0, d1, d2, d3, d4, d5, d6, d7, enable, dc, cs0, cs1, cs2 [, reset])
U8G2_KS0108_ERM19264_1(U8G2_R0, 5, 6, 7, 8, 9, 10, 11, 12, 4, 2, 13, A1, A2, A0);
if you connect LCD pins 4-15 to Arduino digital #2-13 and LCD pins 16-18 to analog #0-2. Connect LCD pin 1 to GND. 2,20 to 5V. Pot from LCD pin 1, 19 with slider to pin 3. In setup() `pinMode(3, OUTPUT);` and `digitalWrite(3, LOW);` There are a lot of wires. It is easier to connect in a nice order. Hence my wiring suggestion. David.
Thank you David.
Sorry David but i didn't understand where to connect LCD's pin 3(Vo) and LCD's pin 19(Vout).
Take a 22k potentiometer. Connect one outer pin to 19 (-10V) and the other outer pin to pin 1 (GND)
Connect the slider to pin 3.
If in doubt, find a schematic for a dev board. Or any board with a KS0108 display.
The pot value is not too critical. 10k or 47k would be ok.
As far as I know, you need a 3-terminal pot for a KS0108.
However we will soon hear from Paul__B
David.
I follow your instructions but the only thing i see in my display is backlight with dots.
Below is my wiring to arduino UNO R3.
1 (Vss) GND
2 (Vdd) 5V
3 (Vo) ————————> Pot Slider Pin
4 (RS) 2
5 (R/W) 3
6 (E) 4
7 (DB0) 5
8 (DB1) 6
9 (DB2) 7
10 (DB3) 8
11 (DB4) 9
12 (DB5) 10
13 (DB6) 11
14 (DB7) 12
15 (/CS1) 13
16 (/RST) A0
17 (/CS2) A1
18 (/CD3) A2
19 (Vout) ————————> Pot Pin1 (Pot Pin2 To GND)
20 (LED+) 5V
I have also put:
void setup(void)
{
u8g2.begin();
pinMode(3, OUTPUT);
digitalWrite(3, LOW);
}
Is this right?
I am running the Graphic Test from U8g2lib
When you adjust the pot, the contrast should change.
Post a photo of your wiring if there is still a problem.
Paste the constructor line that you have used in the U8g2lib example.
Quote the name of the example.
David.
When i adjust the pot the contarst change.
This works fine.
Just now i tried the "Hello Word" example
I attach a photo of what i see in my display.
Woo-hoo. Success !!
You are using the U8G2_KS0108_ERM19264_1() constructor. It is only writing a small buffer's worth.
You can change to the U8G2_KS0108_ERM19264_2() or even the U8G2_KS0108_ERM19264_F()
Oliver's examples should work with paged constructors.
Your Uno should be ok with the _2() version. But the _F() version will take too much SRAM.
That is why I asked for example name and for your constructor statement.
David.
I am not Oliver.
If he used the RW pin, you can avoid the buffer in the Uno. And use the KS0108 RAM.
Of course, not all displays are "readable". Hence a universal library will not rely on reading display memory.
David.
But in the library there is only U8G2_KS0108_ERM19264_F
Where can i find U8G2_KS0108_ERM19264_2 ?
david_prentice:
When you adjust the pot, the contrast should change. Yes, pot is goodPost a photo of your wiring if there is still a problem. wiring is good
Paste the constructor line that you have used in the U8g2lib example. I am waiting
Quote the name of the example. I am waitingDavid.
If you provide the information, I can give you an accurate reply.
Constructor:
U8G2_KS0108_ERM19264_1 u8g2(U8G2_R0, 5, 6, 7, 8, 9, 10, 11, 12, 4, 2, 13, A1, A2, A0);
Example:
u8g2 library
HelloWorld
/*
HelloWorld.ino
#include <Arduino.h>
#include <U8g2lib.h>
#ifdef U8X8_HAVE_HW_SPI
#include <SPI.h>
#endif
#ifdef U8X8_HAVE_HW_I2C
#include <Wire.h>
#endif
U8G2_KS0108_ERM19264_1 u8g2(U8G2_R0, 5, 6, 7, 8, 9, 10, 11, 12, 4, 2, 13, A1, A2, A0);
void setup(void) {
u8g2.begin();
pinMode(3, OUTPUT);
digitalWrite(3, LOW);
}
void loop(void) {
u8g2.clearBuffer(); // clear the internal memory
u8g2.setFont(u8g2_font_ncenB08_tr); // choose a suitable font
u8g2.drawStr(0,10,"Hello World!"); // write something to the internal memory
u8g2.sendBuffer(); // transfer internal memory to the display
delay(1000);
}
This is from the Paged Buffer HelloWorld.ino example
void loop(void) {
u8g2.firstPage();
do {
u8g2.setFont(u8g2_font_ncenB10_tr);
u8g2.drawStr(0,24,"Hello World!");
} while ( u8g2.nextPage() );
//delay(1000);
}
Your code will only work with a Full Buffer constructor. e.g.
U8G2_KS0108_ERM19264_F u8g2(U8G2_R0, 5, 6, 7, 8, 9, 10, 11, 12, 4, 2, 13, A1, A2, A0);
Your Uno has only got 2048 bytes of SRAM
A 192x64 display needs 1536 bytes for "Full Buffer"
HelloWorld will probably be ok. But any real life programs will run out of SRAM unless you are very careful.
David.
I tried your constructor but it doesn't work.
I have nothing on the screen.
And you are right,It consumes much SRAM.
Is there any posibility to run with ESP8266?
I have wasted lots of time.
Why don't you just try the Paged Buffer examples with the constructor that I suggested. e.g.
#include <Arduino.h>
#include <U8g2lib.h>
#ifdef U8X8_HAVE_HW_SPI
#include <SPI.h>
#endif
#ifdef U8X8_HAVE_HW_I2C
#include <Wire.h>
#endif
/*
U8g2lib Example Overview:
Frame Buffer Examples: clearBuffer/sendBuffer. Fast, but may not work with all Arduino boards because of RAM consumption
Page Buffer Examples: firstPage/nextPage. Less RAM usage, should work with all Arduino boards.
U8x8 Text Only Example: No RAM usage, direct communication with display controller. No graphics, 8x8 Text only.
This is a page buffer example.
*/
U8G2_KS0108_ERM19264_1 u8g2(U8G2_R0, 5, 6, 7, 8, 9, 10, 11, 12, 4, 2, 13, A1, A2, A0);
void setup(void) {
pinMode(3, OUTPUT);
digitalWrite(3, 0);
u8g2.begin();
}
void loop(void) {
u8g2.firstPage();
do {
u8g2.setFont(u8g2_font_ncenB10_tr);
u8g2.drawStr(0,24,"Hello World!");
} while ( u8g2.nextPage() );
//delay(1000);
}
OK David. I will try more.
Thanks for your help.