Display nhd-0216aw-ib3

Procesory, grafické karty, matičné dosky, pevné disky,...

Moderátori: psichac, Moderátori

Používateľov profilový obrázok
jirka.jirka.
Ultimate člen
Ultimate člen
Príspevky: 1537
Dátum registrácie: 17 Okt 2008, 00:00
Bydlisko: Uherské Hradiště
Kontaktovať používateľa:

Display nhd-0216aw-ib3

Príspevok od používateľa jirka.jirka. » 15 Aug 2020, 13:37

Zdravím pánové,

dle datasheetu jsem nainicializoval display nhd-0216aw-ib3 viz. předposlední list.
DATASHEET

Výpis na LCD se mi podařil taky. Ale snažím se pochopit, jak mu zadat např. scrolling text a nemůžu ten datasheet pochopit. Dle ds mám nastavit: IS=1, RE=1, SD=0. Ale nevím, jak nastavit IS. A teď otázka, co všechno zaslat do toho displeje a druhá otázka, je někdo ochoten mi pomoci pochopit ten datasheet? :pain: Holt ne a ne ho pochopit. :crying:
A nemohu si pomoci, ale zdá se ten datasheet jenom mně nepochopitelný?

K dispozici mám:

Kód: Vybrať všetko

NHD0216_sendCommand
NHD0216_sendData

Kód: Vybrať všetko

NHD0216_sendCommand(____)-- (IS = 1) // unknown
NHD0216_sendCommand(0x2A) -- (RE = 1) //function set (extended command set)
NHD0216_sendCommand(0x78) -- (SD = 0) //OLED command set disabled

NHD0216_sendCommand(0x11) -- (0b00010001)	// scrol on 1. lin
0

Používateľov profilový obrázok
Ado_PO
Pokročilý člen
Pokročilý člen
Príspevky: 881
Dátum registrácie: 31 Mar 2008, 00:00
Bydlisko: U Koňarov/Prešov
Vek: 40

Re: Display nhd-0216aw-ib3

Príspevok od používateľa Ado_PO » 15 Aug 2020, 15:19

Pozeral som do toho hodinu a našiel som na 8. strane dole v príkaze "function set" najnižší bit pre zmenu stavu registra IS.
Takže na zmenu by malo stačiť poslať sendCommand (0x2B).
0
RoHS? Hrôza a des.

Používateľov profilový obrázok
jirka.jirka.
Ultimate člen
Ultimate člen
Príspevky: 1537
Dátum registrácie: 17 Okt 2008, 00:00
Bydlisko: Uherské Hradiště
Kontaktovať používateľa:

Re: Display nhd-0216aw-ib3

Príspevok od používateľa jirka.jirka. » 15 Aug 2020, 15:41

No musím se přiznat, že z tohoto DS mi leze hlava kolem...

Ano už jsem zahlédl ten IS bit, jak píšeš. Ale pro ten scroll vůbec nevím, co do toho displeje poslat.

Funkce, co vypisuje string na displej.

Kód: Vybrať všetko

int32_t NHD0216_print_string(const uint8_t I2Cnumber, const uint8_t address, uint8_t row, uint8_t col, const char *String)
Funkce, co má zapnout scrolling

Kód: Vybrať všetko

int32_t NHD02016_scroll(const uint8_t I2Cnumber, const uint8_t address) {
	int32_t ret;

	NHD0216_sendCommand(I2Cnumber, address, 0x2B); if (ret < 0) return ret;
	NHD0216_sendCommand(I2Cnumber, address, 0x2A); if (ret < 0) return ret;
	NHD0216_sendCommand(I2Cnumber, address, 0x78); if (ret < 0) return ret;

	NHD0216_sendCommand(I2Cnumber, address, 0x11); if (ret < 0) return ret;

	return ret;
}
No a potom test v mainu.

Kód: Vybrať všetko

NHD0216_print_string(1, 0x3C, 1, 0, "Ahojkkky");
	NHD02016_scroll(1, 0x3C);
A na displeji se správně zobrazí Ahojkky, ale scrolling nefunguje.
0

Používateľov profilový obrázok
Ado_PO
Pokročilý člen
Pokročilý člen
Príspevky: 881
Dátum registrácie: 31 Mar 2008, 00:00
Bydlisko: U Koňarov/Prešov
Vek: 40

Re: Display nhd-0216aw-ib3

Príspevok od používateľa Ado_PO » 15 Aug 2020, 16:09

A prehodiť príkazy aby šlo najprv 0x11 (enable scroll1.riadok) prípadne 0x12 pre 2.riadok a potom ten 0x78 OLED chara... ?
0
RoHS? Hrôza a des.

Používateľov profilový obrázok
jirka.jirka.
Ultimate člen
Ultimate člen
Príspevky: 1537
Dátum registrácie: 17 Okt 2008, 00:00
Bydlisko: Uherské Hradiště
Kontaktovať používateľa:

Re: Display nhd-0216aw-ib3

Príspevok od používateľa jirka.jirka. » 15 Aug 2020, 16:26

Určitě šlo a vyzkoušel jsem to, ale změna žádná. Scroll nula.

Kód: Vybrať všetko

int32_t NHD02016_scroll(const uint8_t I2Cnumber, const uint8_t address) {
	int32_t ret;

	NHD0216_sendCommand(I2Cnumber, address, 0x2B);
	NHD0216_sendCommand(I2Cnumber, address, 0x2A); 
	NHD0216_sendCommand(I2Cnumber, address, 0x11);
	NHD0216_sendCommand(I2Cnumber, address, 0x78);

	return ret;
}
0

Používateľov profilový obrázok
Ado_PO
Pokročilý člen
Pokročilý člen
Príspevky: 881
Dátum registrácie: 31 Mar 2008, 00:00
Bydlisko: U Koňarov/Prešov
Vek: 40

Re: Display nhd-0216aw-ib3

Príspevok od používateľa Ado_PO » 15 Aug 2020, 17:09

Je možné že register SD je v log.1 ešte pred tým než začneme špárať do IS a RE a podľa tabuľky má byť v log.0.
Tak prehodiť 0x78 na samý začiatok.
0
RoHS? Hrôza a des.

Používateľov profilový obrázok
jirka.jirka.
Ultimate člen
Ultimate člen
Príspevky: 1537
Dátum registrácie: 17 Okt 2008, 00:00
Bydlisko: Uherské Hradiště
Kontaktovať používateľa:

Re: Display nhd-0216aw-ib3

Príspevok od používateľa jirka.jirka. » 15 Aug 2020, 17:15

Nic. Stále nefunkční. Zkouším různé kombinace a k tomu pochopit ten DS, ale nic nevychází.

-- Spojený príspevok 15 Aug 2020, 16:48 --

Podařilo se mi nastavit dvojitý font. Ale ten scroll je nějaký zapeklitý.

Kód: Vybrať všetko

int32_t NHD02016_DoubleFont(const uint8_t I2Cnumber, const uint8_t address) {
	int32_t ret;

	//extended command set - enable 
	ret = NHD0216_sendCommand(I2Cnumber, address, 0x2A); if (ret < 0) return ret;
	//UD2, UD1 = high, DH = HIGH; 
	ret = NHD0216_sendCommand(I2Cnumber, address, 0x1D); if (ret < 0) return ret;
	//Regular command enable, doubleHeight font
	ret = NHD0216_sendCommand(I2Cnumber, address, 0x2C); if (ret < 0) return ret;

	return ret;
}
0

stefanSK
Pokročilý člen
Pokročilý člen
Príspevky: 752
Dátum registrácie: 24 Jún 2010, 00:00
Bydlisko: Trnava
Vek: 68

Re: Display nhd-0216aw-ib3

Príspevok od používateľa stefanSK » 15 Aug 2020, 20:27

Keď všetko zlyhá, prečítaj si návod.
V displeji je použitý riadiaci obvod US2066. Možnože pomôže si pozrieť popis tohto obvodu.
Prílohy
US2066.pdf
(1009.24 KiB) 59 stiahnutí
0
S.K.

Používateľov profilový obrázok
jirka.jirka.
Ultimate člen
Ultimate člen
Príspevky: 1537
Dátum registrácie: 17 Okt 2008, 00:00
Bydlisko: Uherské Hradiště
Kontaktovať používateľa:

Re: Display nhd-0216aw-ib3

Príspevok od používateľa jirka.jirka. » 15 Aug 2020, 21:05

:D Tento návod jsem četl. Ale stejně z něho nejsem moudrý. Tady není problém asi v datasheetu, ale spíše ve mně. Já mu prostě nerozumím. :rolleyes:
0

stefanSK
Pokročilý člen
Pokročilý člen
Príspevky: 752
Dátum registrácie: 24 Jún 2010, 00:00
Bydlisko: Trnava
Vek: 68

Re: Display nhd-0216aw-ib3

Príspevok od používateľa stefanSK » 15 Aug 2020, 21:46

Postup by mal byť takýto(1. Fundamental command Set):
1. povoliť shift príkazom (Shift Enable) NHD0216_sendCommand(0x11) // scrol on 1. lin (IS=1, DE=1,SD=0)
2. vykonať shift príkazom(Cursor or Display shift) NHD0216_sendCommand(0x1C) // shift display to right (IS=0, DE=0,SD=0)
alebo
3. vykonať shift príkazom (Cursor or Display shift) NHD0216_sendCommand(0x18) // shift display to left(IS=0, DE=0,SD=0)
0
S.K.

Atlan
Zaslúžilý člen
Zaslúžilý člen
Príspevky: 1146
Dátum registrácie: 01 Feb 2008, 00:00
Bydlisko: Kosice okolie

Re: Display nhd-0216aw-ib3

Príspevok od používateľa Atlan » 16 Aug 2020, 06:12

A nieje to tak ze kazde poslanie sposobi len posun o jeden znak, tj nespusti beh v lavo alebo v pravo?
0

Používateľov profilový obrázok
jirka.jirka.
Ultimate člen
Ultimate člen
Príspevky: 1537
Dátum registrácie: 17 Okt 2008, 00:00
Bydlisko: Uherské Hradiště
Kontaktovať používateľa:

Re: Display nhd-0216aw-ib3

Príspevok od používateľa jirka.jirka. » 16 Aug 2020, 09:34

Atlan na to přišel. :biggrin:

Mám funkci:

Kód: Vybrať všetko

int32_t NHD0216_scroll(const uint8_t I2Cnumber, const uint8_t address) {
	int32_t ret;

	//function set (fundamental command set)
	ret = NHD0216_sendCommand(I2Cnumber, address, 0x28); if (ret < 0) return ret;
	//function set (extended command set and regular size font)
	ret = NHD0216_sendCommand(I2Cnumber, address, 0x11); if (ret < 0) return ret;
	//UD2, UD1 = high, DH' = HIGH (0b00011101)
	ret = NHD0216_sendCommand(I2Cnumber, address, 0x18); if (ret < 0) return ret;

	//regular command set, double-height font - then
	//ret = NHD0216_sendCommand(I2Cnumber, address, 0x2C); if (ret < 0) return ret;

	return ret;
}
kterou když zavolám 3x, tak posune text o tři znaky doleva. Tzn. jezdící text si musím udělat sám. Nu což, myslel jsem, že ta chytristika je tam lepší.
0

stefanSK
Pokročilý člen
Pokročilý člen
Príspevky: 752
Dátum registrácie: 24 Jún 2010, 00:00
Bydlisko: Trnava
Vek: 68

Re: Display nhd-0216aw-ib3

Príspevok od používateľa stefanSK » 16 Aug 2020, 12:39

Myslím, že keď už povolíš scroll a nastavíš smer, tak ti stačí posielať už iba príkaz:

ret = NHD0216_sendCommand(I2Cnumber, address, 0x18); if (ret < 0) return ret;

čo spôsobí samotný posuv. Predtým si tento príkaz nepoužíval (v prvých príkladoch som ho nevidel až v poslednom)
0
S.K.

Používateľov profilový obrázok
jirka.jirka.
Ultimate člen
Ultimate člen
Príspevky: 1537
Dátum registrácie: 17 Okt 2008, 00:00
Bydlisko: Uherské Hradiště
Kontaktovať používateľa:

Re: Display nhd-0216aw-ib3

Príspevok od používateľa jirka.jirka. » 16 Aug 2020, 13:12

jj vyzkoušeno. Text se netočí, jenom se posouvá až zmizí.

Takže v tomto případě jsem volil cestu napsání si vlastního scroll displeje. A už to chodí. :agree:
0

Napísať odpoveď
  • Podobné témy
    Odpovedí
    Zobrazení
    Posledný príspevok