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ásSzerző: imericus » 2017. január 12. csütörtök, 14:37

Ü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: 9768
Csatlakozott: 2005. december 9. péntek, 7:00
Tartózkodási hely: Budapest
Kapcsolat:

Re: LCD kijelzömre nem ír ki karaktareket

HozzászólásSzerző: Robert » 2017. január 13. péntek, 0:12

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ásSzerző: imericus » 2017. január 13. péntek, 13:20

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: 660
Csatlakozott: 2012. szeptember 5. szerda, 6:00

Re: LCD kijelzömre nem ír ki karaktareket

HozzászólásSzerző: csabeszq » 2017. január 13. péntek, 16:15

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ásSzerző: VinczeFeri » 2017. február 14. kedd, 15:33

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ásSzerző: Kushin » 2017. október 4. szerda, 19:53

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: 9768
Csatlakozott: 2005. december 9. péntek, 7:00
Tartózkodási hely: Budapest
Kapcsolat:

Re: LCD kijelzömre nem ír ki karaktareket

HozzászólásSzerző: Robert » 2017. október 4. szerda, 20:41

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ásSzerző: Kushin » 2017. október 5. csütörtök, 12:30

#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: 9768
Csatlakozott: 2005. december 9. péntek, 7:00
Tartózkodási hely: Budapest
Kapcsolat:

Re: LCD kijelzömre nem ír ki karaktareket

HozzászólásSzerző: Robert » 2017. október 7. szombat, 15:51

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ásSzerző: Kushin » 2017. október 8. vasárnap, 10:50

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.


Vissza: “LCD kezelése”

Ki van itt

Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 4 vendég