LCD probléma

Hogyha sikeresen O/PLED illetve hagyományos alfanumerikus - esetleg tán grafikus kijelzővel gyűlik meg a baja valakinek:)
dervid9
Újonc
Újonc
Hozzászólások: 5
Csatlakozott: 2016. június 15. szerda, 12:27

LCD probléma

HozzászólásSzerző: dervid9 » 2016. június 15. szerda, 13:01

Sziasztok!
Problémám akadt egy kijelző(20x4-es) vezérlésével.Nem tudom hogy mi lehet a baj,mert csak világít a kijelző nem reagál a programra.
Ilyen fajta az lcd: http://www.ebay.com/itm/172181792364?_trksid=p2060353.m2749.l2649&ssPageName=STRK%3AMEBIDX%3AIT
és pl. ezt az egyszerű programot se hajtja végre rendesen

Kód: Egész kijelölése

#include <LiquidCrystal.h>

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup() {
 
  lcd.begin(20, 4);
 
  lcd.print("hello, world!");
}

void loop() {
 
 
  lcd.setCursor(0, 1);
 
  lcd.print(millis() / 1000);
}

Köszönöm a segítséget!

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 probléma

HozzászólásSzerző: Robert » 2016. június 15. szerda, 14:35

Lábbekötést látni kellene....
RW láb min van? GND vagy lebeg vagy 5V?

dervid9
Újonc
Újonc
Hozzászólások: 5
Csatlakozott: 2016. június 15. szerda, 12:27

Re: LCD probléma

HozzászólásSzerző: dervid9 » 2016. június 15. szerda, 14:59

Ez alapján csináltam: http://i.imgur.com/j1FirLz.png.

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 probléma

HozzászólásSzerző: Robert » 2016. június 15. szerda, 16:37

Nem jó. Amit linkeltél: I2C bővítőre kötött LCD.
Erre minimum 4 féle megoldás van, mert legalább ennyi I2C bővítő létezik.
Ha a TavIR rendszerére hasonlít/egyezik, akkor:

Melyik címen van a I2C bővítő?

Kód: Egész kijelölése

 // --------------------------------------
    // i2c_scanner upgraded by TavIR
   
    #include <Wire.h> 
     
    void setup()
    {
      Wire.begin();
     
      Serial.begin(9600);
      Serial.println("\nI2C Scanner");
    }
     
    void loop()
    {
      byte error, address;
      int nDevices;
     
      Serial.println("Scanning...");
     
      nDevices = 0;
      for(address = 1; address < 127; address++ )
      {
        // The i2c_scanner uses the return value of
        // the Write.endTransmisstion to see if
        // a device did acknowledge to the address.
        Wire.beginTransmission(address);
        error = Wire.endTransmission();
     
        if (error == 0)
        {
          Serial.print("I2C device found at address 0x");
          if (address<16)
            Serial.print("0");
          Serial.print(address,HEX);
          Serial.println("  !");
     
          nDevices++;
        }
        else if (error==4)
        {
          Serial.print("Unknow error at address 0x");
          if (address<16)
            Serial.print("0");
          Serial.println(address,HEX);
        }   
      }
      if (nDevices == 0)
        Serial.println("No I2C devices found\n");
      else
        Serial.println("done\n");
     
      delay(5000);           // wait 5 seconds for next scan
    }



Kód: Egész kijelölése

/* TavIR I2C_LCD Example Software Sketch
 16 character 2 line I2C Display
 www.tavir.hu
 
 */

/*-----( Import needed libraries )-----*/
#include <Wire.h>  // Comes with Arduino IDE
// Get the LCD I2C Library here:
// https://bitbucket.org/fmalpartida/new-liquidcrystal/downloads
// Move any other LCD libraries to another folder or delete them
// See Library "Docs" folder for possible commands etc.
#include <LiquidCrystal_I2C.h>


/*-----( Declare Constants )-----*/
/*-----( Declare objects )-----*/
// set the LCD address to 0x27 for a 20 chars 4 line display
// 0x27 (4E) - PCF8574
// 0x3F (7E) - PCF8574A
// Set the pins on the I2C chip used for LCD connections:
//                    addr, en,rw,rs,d4,d5,d6,d7,bl,blpol
//LiquidCrystal_I2C lcd(0x20, 4, 5, 6, 0, 1, 2, 3, 7, NEGATIVE);  // GY-IICLCD (kek)
//LiquidCrystal_I2C lcd(0x27, 6, 5, 4, 3, 2, 1, 0, 7, POSITIVE);  // Set the LCD I2C address (green pcb)
LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);  // Set the LCD I2C address (black pcb)
//LiquidCrystal_I2C lcd(0x3F, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);  // Set the LCD I2C address (black pcb)

/*-----( Declare Variables )-----*/
//NONE

void setup()   /*----( SETUP: RUNS ONCE )----*/
{
  Serial.begin(9600);  // Used to type in characters

  lcd.begin(16,2);   // initialize the lcd for 16 chars 2 lines, turn on backlight

// ------- Quick 3 blinks of backlight  -------------
  for(int i = 0; i< 3; i++)
  {
    lcd.backlight();
    delay(250);
    lcd.noBacklight();
    delay(250);
  }
  lcd.backlight(); // finish with backlight on 

//-------- Write characters on the display ------------------
// NOTE: Cursor Position: (CHAR, LINE) start at 0 
  lcd.setCursor(0,0); //Start at character 4 on line 0
  lcd.print("Hello, world!");
  delay(1000);
  lcd.setCursor(0,1);
  lcd.print("Hi! www.tavir.hu");
  delay(8000); 

// Wait and then tell user they can start the Serial Monitor and type in characters to
// Display. (Set Serial Monitor option to "No Line Ending")
  lcd.clear();
  lcd.setCursor(0,0); //Start at character 0 on line 0
  lcd.print("Use Serial Mon");
  lcd.setCursor(0,1);
  lcd.print("Type to display"); 


}/*--(end setup )---*/


void loop()   /*----( LOOP: RUNS CONSTANTLY )----*/
{
  {
    // when characters arrive over the serial port...
    if (Serial.available()) {
      // wait a bit for the entire message to arrive
      delay(100);
      // clear the screen
      lcd.clear();
      // read all the available characters
      while (Serial.available() > 0) {
        // display each character to the LCD
        lcd.write(Serial.read());
      }
    }
  }

}/* --(end main loop )-- */


/* ( THE END ) */




Tesztprogram, amihez libraryként kell:
https://bitbucket.org/fmalpartida/new-l ... /downloads 1.3.4 verziója...


Csúnya vagyok: Előismereted mennyi a HW és a SW viszonyáról?

dervid9
Újonc
Újonc
Hozzászólások: 5
Csatlakozott: 2016. június 15. szerda, 12:27

Re: LCD probléma

HozzászólásSzerző: dervid9 » 2016. június 15. szerda, 17:32

Köszi, megnéztem 0x3F címen volt a bővítő, de még most se működik teljen jól,mert még nem ír ki semmit arra a programra amit küldtél,csak villog.

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 probléma

HozzászólásSzerző: Robert » 2016. június 15. szerda, 17:39

:twisted: :roll: :wink: :cry: :oops: 8O

Bekonfiguráltad az I2C lcd bővítőt? Megnézted a lábkiosztást?
Erre minimum 4 féle megoldás van, mert legalább ennyi I2C bővítő létezik.

Amit ismertem 4 félét, bejelöltem....

Kód: Egész kijelölése

/*-----( Declare Constants )-----*/
/*-----( Declare objects )-----*/
// set the LCD address to 0x27 for a 20 chars 4 line display
// 0x27 (4E) - PCF8574
// 0x3F (7E) - PCF8574A
// Set the pins on the I2C chip used for LCD connections:
//                    addr, en,rw,rs,d4,d5,d6,d7,bl,blpol
//LiquidCrystal_I2C lcd(0x20, 4, 5, 6, 0, 1, 2, 3, 7, NEGATIVE);  // GY-IICLCD (kek)
//LiquidCrystal_I2C lcd(0x27, 6, 5, 4, 3, 2, 1, 0, 7, POSITIVE);  // Set the LCD I2C address (green pcb)
LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);  // Set the LCD I2C address (black pcb)
//LiquidCrystal_I2C lcd(0x3F, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);  // Set the LCD I2C address (black pcb)

dervid9
Újonc
Újonc
Hozzászólások: 5
Csatlakozott: 2016. június 15. szerda, 12:27

Re: LCD probléma

HozzászólásSzerző: dervid9 » 2016. június 15. szerda, 18:58

Beállítottam a 4. megoldásra , nem értem mit ronthattam el.. :x

Kód: Egész kijelölése

// 0x27 (4E) - PCF8574
// 0x3F (7E) - PCF8574A

Ezekkel mit kell csinálni?

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 probléma

HozzászólásSzerző: Robert » 2016. június 15. szerda, 19:09

Az I2C LCD paraméterezése:

Kód: Egész kijelölése

//                    addr, en,rw,rs,d4,d5,d6,d7,bl,blpol
//LiquidCrystal_I2C lcd(0x20, 4, 5, 6, 0, 1, 2, 3, 7, NEGATIVE);  // GY-IICLCD (kek)

Azaz a 0x20 helyére beírod a modulod címét: 0x3F
A következő számok a PCF chip IO és a LCD lábbekötése összerendelés, sorban: en,rw,rs,d4,d5,d6,d7, majd a háttérvilágítás ki/bekapcsolási lába. Végül, hogy a háttérvilágítás H vagy L állapotban világít (POSITIVE/NEGATIVE)

És innentől lehet az LCD bekötést visszarajzolni..... :)
A beállítás nem az hogy melyik sor tetszik vagy sem. Az 4 különféle modul, 4 különféle bekötése....
De még tudok párat összehozni...
Tessék méregetni, kirajzolni.
Kérdés: eladó (mandarin nyelven) mit mond / küld rajzon?

dervid9
Újonc
Újonc
Hozzászólások: 5
Csatlakozott: 2016. június 15. szerda, 12:27

Re: LCD probléma

HozzászólásSzerző: dervid9 » 2016. június 16. csütörtök, 18:41

Köszönöm sikerült!

pmolnar
Újonc
Újonc
Hozzászólások: 1
Csatlakozott: 2017. október 17. kedd, 10:57

Re: LCD probléma

HozzászólásSzerző: pmolnar » 2017. október 17. kedd, 11:28

Sziasztok!
Nekem is hasonló problémám van.
A 2004A típusú 20X4-es kijelzőm szintén I2C bővítővel van ellátva.
A kijelző tápot rendesen kap, háttér világítás üzemel.
A rajta levő Chip 8574-es.
I2C scannerrel megnéztem és válaszol.
Címe: 0x27.
A bővítőn lévő poti látszólag csak 2 sor kontrasztját állítja. Úgy tűnik mintha csak két sor üzemelne.
Oszcilloszkóppal megnéztem a SCL-SDA lábakat és adatáramlás van.
A fenti kódokat rátöltöttem, probléma nélkül feltöltődnek, de a kijelzőn nem jelenik meg semmi.
Hol lehet még hiba?
Előre is köszi a segítséget.

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 probléma

HozzászólásSzerző: Robert » 2017. október 17. kedd, 17:36

A portbővítőre kb. 5 féle bekötés létezik.
Ezekhez megfelelő eljáráskönyvtárat kell telepíteni és/vagy azt a I2C portbővítő/liquidcrystal lib-et használni, amiben ez konfigurálható. És megmondani, hogy melyik láb melyik....


Eladó milyen kódot adott a bővítőhöz?
http://www.tavir.hu - a gazda :)


Vissza: “LCD kezelése”

Ki van itt

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