LCD kijelzömre nem ír ki karaktareket

Hogyha sikeresen O/PLED illetve hagyományos alfanumerikus - esetleg tán grafikus kijelzővel gyűlik meg a baja valakinek:)
imericus
Újonc
Újonc
Hozzászólások: 2
Csatlakozott: 2015. szeptember 5. szombat, 18:25

LCD kijelzömre nem ír ki karaktareket

Hozzászólás Szerző: imericus »

Üdvözlet.Kezdő vagyok.60nap Arduino tanfolyam anyaga teljesen megvan.
Kérdésem?Arduino UNO R3 alaplapom van,AVR.-Duino_Ext1 kiegészítő panel ,ezen van az LCD kijelző amit együtt vettem itt a
WebShop-ba.
Az Arduino tanfolyam gyakorló LCD kezelése témakörből másoltam be a programot,(17 számú lecke)és nem ír ki karaktereket,a kijelzőn..Az amit tesz :világit,program bevitelkor villan egyet,és semmi több.
Beviteli sketch program Arduino 1.0.5-r2
Köszönöm a segítséget.
imericus
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10191
Csatlakozott: 2005. december 9. péntek, 7:00

Re: LCD kijelzömre nem ír ki karaktareket

Hozzászólás Szerző: Robert »

Az LCD kontrasztot beállítottad? Az LCD alatti potméter majdnem teljesen szélső állásba rakandó.
http://www.tavir.hu - a gazda :)
imericus
Újonc
Újonc
Hozzászólások: 2
Csatlakozott: 2015. szeptember 5. szombat, 18:25

Re: LCD kijelzömre nem ír ki karaktareket

Hozzászólás Szerző: imericus »

Köszönöm a segítő akarást.De a LCD panelon nincsen potméter.Az ami van az alatta lévő EXT1 panelon van az is trimer
potméter.Ő állítására nem reagál semmi.
LCD panel típusa.QAPASS 1602A
Köszönöm
imericus.
Avatar
csabeszq
Bitfaragó
Hozzászólások: 678
Csatlakozott: 2012. szeptember 5. szerda, 6:00

Re: LCD kijelzömre nem ír ki karaktareket

Hozzászólás Szerző: csabeszq »

Elég nehéz messziről segíteni. Leginkább a leállt az autóm, mit tegyek, hogy elinduljon kérdésre hasonlít. Egy LCD beüzemelése mindig macera,
- legyen háttér világítás
- érintkezzenek a drótok
- a megfelelő LIB-et töltsd le a netről, mert LCD és LCD között is vannak különbségek
- a jó drótot jó helyre kössed
...
VinczeFeri
Újonc
Újonc
Hozzászólások: 1
Csatlakozott: 2017. február 14. kedd, 15:29

Re: LCD kijelzömre nem ír ki karaktareket

Hozzászólás Szerző: VinczeFeri »

imericus írta:Üdvözlet.Kezdő vagyok.60nap Arduino tanfolyam anyaga teljesen megvan.
Kérdésem?Arduino UNO R3 alaplapom van,AVR.-Duino_Ext1 kiegészítő panel ,ezen van az LCD kijelző amit együtt vettem itt a
WebShop-ba.
Az Arduino tanfolyam gyakorló LCD kezelése témakörből másoltam be a programot,(17 számú lecke)és nem ír ki karaktereket,a kijelzőn..Az amit tesz :világit,program bevitelkor villan egyet,és semmi több.
Beviteli sketch program Arduino 1.0.5-r2
Köszönöm a segítséget.
imericus
Szia!
Én is ugyanebbe a problémába futottam bele, annyi volt a megoldás, hogy feltöltés után stéthúztam az lcd panelt és az Ext1 panelt, majd újra össze, és működik.
Kushin
Újonc
Újonc
Hozzászólások: 3
Csatlakozott: 2017. október 4. szerda, 19:41

Re: LCD kijelzömre nem ír ki karaktareket

Hozzászólás Szerző: Kushin »

Hello!

Én egy atmega128A fejlesztő boardot szeretnék összekötni egy hd44780 típusú kijelzővel, amin egy pcf8574 I2C illesztő van. Az i2c master library-t használom és arra sikerült eddig rájönnöm, hogy írásnál van a probléma (konkrétan ennél a sornál akad meg a program "while(!(TWCR & (1<<TWINT)));" ergo nincs kommunikáció) . Tettem be felhúzó ellenállásokat az I2C és a kijelző is jó. Jó ideje nem tudok rájönni mi lehet a probléma. Előre is köszönöm a segítséget.
Üdv:
Kushin
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10191
Csatlakozott: 2005. december 9. péntek, 7:00

Re: LCD kijelzömre nem ír ki karaktareket

Hozzászólás Szerző: Robert »

I2Cdetect / I2Cscannet látja a modult? Milyen címen?

Milyen nyelv, és mi a kód? És mia kapcsolásod?
http://www.tavir.hu - a gazda :)
Kushin
Újonc
Újonc
Hozzászólások: 3
Csatlakozott: 2017. október 4. szerda, 19:41

Re: LCD kijelzömre nem ír ki karaktareket

Hozzászólás Szerző: Kushin »

#define SCL_CLOCK 400000L // I2C sebessege Hz-ben
#define I2C_READ 1 // adatiranyt jelzo bit - olvasas
#define I2C_WRITE 0 // adatiranyt jelzo bit - iras
#define F_CPU 16000000UL
#define lcd 0x27 // lcd I2C cime
#include <avr/io.h>
#include <stdlib.h>
#include <stdio.h>
#include <util/delay.h>
#include <compat/twi.h>

// DEBUG LED
int led(void)
{
DDRA=0xFF;
while(1)
{
PORTA=0xFF;
for(int i=0;i<=5;i++)_delay_ms(500);

PORTA=0x00;
for(int i=0;i<=5;i++)_delay_ms(500);
}
}



/*************************************************************************
I2C periferia inicializalasa
*************************************************************************/

void i2c_init(void)
{
TWSR = 0;
TWBR = ((F_CPU/SCL_CLOCK)-16)/2;
TWCR |= (1<<TWIE);
TWCR |= (1<<TWEA);

}

/*************************************************************************
Startjel kiadasa, majd az eszkozazonosito cim es adatirany elkuldese
Fuggv. parameter: I2C eszkozazonosito cim, adatirany
Fuggv. altal visszadott ertek: 0 = eszkoz elerheto, 1= eszkoz elerese sikertelen
*************************************************************************/

unsigned char i2c_start(unsigned char address)
{
uint8_t twst;
// START jel kuldese
TWCR = (1<<TWINT) | (1<<TWSTA) | (1<<TWEN);
// varakozas amig az atvitel be nem fejezodik
while(!(TWCR & (1<<TWINT)));
// TWI Statusz Register ertekenek ellenorzese, elooszto bitek kimaszkolasa.
twst = TW_STATUS & 0xF8;
if ( (twst != TW_START) && (twst != TW_REP_START)) return 1;
// eszkozazonosito cim kuldese
TWDR = address;
TWCR = (1<<TWINT) | (1<<TWEN);
// varakozas amig az atvitel be nem fejezodik es az ACK/NACK nyugtazas be nem erkezik
while(!(TWCR & (1<<TWINT)));
// TWI Statusz Register ertekenek ellenorzese, elooszto bitek kimaszkolasa.
twst = TW_STATUS & 0xF8;
if ( (twst != TW_MT_SLA_ACK) && (twst != TW_MR_SLA_ACK) ) return 1;

return 0;

}

/*************************************************************************
Startjel kiadasa, majd az eszkozazonosito cim es adatirany elkuldese
Ha az eszkoz foglalt, varakozas amig kesz nem lesz (ack polling)
Fuggv. parameter: I2C eszkozazonosito cim, adatirany
*************************************************************************/

void i2c_start_wait(unsigned char address)
{
uint8_t twst;
while ( 1 )
{
// START jel kuldese
TWCR = (1<<TWINT) | (1<<TWSTA) | (1<<TWEN);
// varakozas amig az atvitel be nem fejezodik
while(!(TWCR & (1<<TWINT)));
// TWI Statusz Register ertekenek ellenorzese, elooszto bitek kimaszkolasa.
twst = TW_STATUS & 0xF8;
if ( (twst != TW_START) && (twst != TW_REP_START)) continue;
// eszkozazonosito cim kuldese
TWDR = address;
TWCR = (1<<TWINT) | (1<<TWEN);
// varakozas amig az atvitel be nem fejezodik
while(!(TWCR & (1<<TWINT)));
// TWI Statusz Register ertekenek ellenorzese, elooszto bitek kimaszkolasa.
twst = TW_STATUS & 0xF8;
if ( (twst == TW_MT_SLA_NACK )||(twst ==TW_MR_DATA_NACK) )
{
// az eszkoz foglalt, Stop jel kuldese, irasi muvelet befejezese
TWCR = (1<<TWINT) | (1<<TWEN) | (1<<TWSTO);
// varakozas amig a Stop utasitas vegre nem hajtodik es az I2C busz szabad nem lesz
while(TWCR & (1<<TWSTO));
continue;
}
//if( twst != TW_MT_SLA_ACK) return 1;
break;
}

}

/*************************************************************************
Ismetelt Startjel kiadasa, majd az eszkozazonosito cim es adatirany elkuldese
Fuggv. parameter: I2C eszkozazonosito cim, adatirany
Fuggv. altal visszadott ertek: 0 = eszkoz elerheto, 1= eszkoz elerese sikertelen
*************************************************************************/

unsigned char i2c_rep_start(unsigned char address)
{
return i2c_start( address );
}

/*************************************************************************
Stopjel kuldese, kommunikacio lezarasa ,I2C bus szabadda tetele
*************************************************************************/

void i2c_stop(void)
{
// STOP jel kuldese
TWCR = (1<<TWINT) | (1<<TWEN) | (1<<TWSTO);
// varakozas amig a Stop utasitas vegre nem hajtodik es az I2C busz szabad nem lesz
while(TWCR & (1<<TWSTO));
}

/*************************************************************************
Egy bajt kuldese az I2C eszkozre
Fuggv. parameter: byte to be transfered
Fuggv. altal visszaadott ertek: 0 iras sikeres, 1 iras sikertelen
*************************************************************************/

unsigned char i2c_write( unsigned char data )
{
uint8_t twst;

// adat irasa a korabban megcimzett eszkozbe
TWDR = data;
TWCR = (1<<TWINT) | (1<<TWEN);
// varakozas amig az atvitel be nem fejezodik
while(!(TWCR & (1<<TWINT)));
led();
// TWI Statusz Register ertekenek ellenorzese, elooszto bitek kimaszkolasa.
twst = TW_STATUS & 0xF8;
if( twst != TW_MT_DATA_ACK) return 1;

return 0;
}

/*************************************************************************
Egy bajt kiolvasasa az I2C eszkozbol, tovabbi adatok kerese
Fuggv. altal visszaadott ertek: az I2C eszkozbol kiolvasott bajt
*************************************************************************/

unsigned char i2c_readAck(void)
{
TWCR = (1<<TWINT) | (1<<TWEN) | (1<<TWEA);
while(!(TWCR & (1<<TWINT)));
return TWDR;
}

/*************************************************************************
Egy bajt kiolvasasa az I2C eszkozbol, a kiolvasast Stop bit koveti
Fuggv. altal visszaadott ertek: az I2C eszkozbol kiolvasott bajt
*************************************************************************/

unsigned char i2c_readNak(void)
{
TWCR = (1<<TWINT) | (1<<TWEN);
while(!(TWCR & (1<<TWINT)));
return TWDR;
}

int main(void)
{


i2c_init(); // I2C inicializalasa

i2c_start_wait(lcd+I2C_WRITE); // lcd I2C cim es adatirany (iras)

i2c_write(0x02); //Reset+kurzor a képernyő elejére

_delay_ms(100);

_delay_ms(100); //kurzor mozgatás
i2c_write(0x85);
i2c_stop();

return 0;
}
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10191
Csatlakozott: 2005. december 9. péntek, 7:00

Re: LCD kijelzömre nem ír ki karaktareket

Hozzászólás Szerző: Robert »

A 0x27 cím nem jó.
0x20...0x27 vagy 0x30....0x37 lehet a címe....
http://www.tavir.hu - a gazda :)
Kushin
Újonc
Újonc
Hozzászólások: 3
Csatlakozott: 2017. október 4. szerda, 19:41

Re: LCD kijelzömre nem ír ki karaktareket

Hozzászólás Szerző: Kushin »

Mivel tudnám kideríteni, akkor a helyes címet, mert nekem a scan 0x27es címen látja. Többször is megnéztem.
neletven
Újonc
Újonc
Hozzászólások: 12
Csatlakozott: 2016. január 24. vasárnap, 16:12

Re: LCD kijelzömre nem ír ki karaktareket

Hozzászólás Szerző: neletven »

Sziasztok! Hasonló probléma. Nekem 0x3F-et ad a scan
Akkor az is felejtős?
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10191
Csatlakozott: 2005. december 9. péntek, 7:00

Re: LCD kijelzömre nem ír ki karaktareket

Hozzászólás Szerző: Robert »

A bővítő chip megszólalási címe ez.
A NewCrystalLcd paraméterezésében ez az eszközcím....
http://www.tavir.hu - a gazda :)
Picicsavarkulcs
Újonc
Újonc
Hozzászólások: 4
Csatlakozott: 2020. május 22. péntek, 13:44

Re: LCD kijelzömre nem ír ki karaktareket

Hozzászólás Szerző: Picicsavarkulcs »

Sziasztok!

Kezdő arduinos vagyok, és pár napja vettem egy 2x16 karakteres LCD-t ezt.:
https://shop.tavir.hu/product_info.php/ ... -1602-p-47

Egy Arduino Nano-val próbálom életre lehelni, de mindeddig sikertelenül.
Bekötöttem a tanfolyamos útmutató alapján, háttérfény van, de karaktereket nem írt ki.
Némi kutakodás után, elindultam a kályhától.
Először csak a tápfeszt kapcsoltam a 15 16 lábra, egy 1k ellenállással.
Megjött a háttérvilágítás.
Aztán jött a kontraszt potméter bekötése, két széle a +5, GND közepe pedig a kijelző 3. pinjére.
De hiába tekergetem itt már nem jelenik meg semmi egyik szélső állásban sem.

Próbálkozzak még valamivel, vagy lehetséges, hogy rossz eleve a kijelző?

Itt egy kép a bekötésekről.

https://drive.google.com/file/d/1hkwSbn ... sp=sharing
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10191
Csatlakozott: 2005. december 9. péntek, 7:00

Re: LCD kijelzömre nem ír ki karaktareket

Hozzászólás Szerző: Robert »

Az 1/2 lábon is kellene a GND + tápfesz. A 15/16 láb csak a háttérvilágításé, az 1/2 az a logikai áramkör tápfeszültsége.
http://www.tavir.hu - a gazda :)
Picicsavarkulcs
Újonc
Újonc
Hozzászólások: 4
Csatlakozott: 2020. május 22. péntek, 13:44

Re: LCD kijelzömre nem ír ki karaktareket

Hozzászólás Szerző: Picicsavarkulcs »

Bekötöttem mostmár oda is.

De még mindig nincs kép.
Elméletileg ha tekergetem a potit akkor látnom kellene egy sornyi négyzetet nem?
Válasz küldése