Batron 20x4 -es lcd probléma.

Processing/Wiring (illetve C) nyelvű programozási fogások, tippek. (AVR-Duino, Arduino, EthDuino, Diecimila, Severino, Nano, LilyPad)
Válasz küldése
Avatar
tuccer
DrótVégénSzéndarab
Hozzászólások: 15
Csatlakozott: 2011. augusztus 14. vasárnap, 6:00

Batron 20x4 -es lcd probléma.

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

Sziasztok

Egy olyan problémam lenne hogy van egy ilyen kijelzőm : http://www.data-modul.com/tl_files/dm/d ... T48024.pdf, és szeretném az Arduinóval vezérelni.
Ezt megtudom csinálni a LiquidCrystal könyvtárral, de sajnos csak az első két sort tudom használni.
Amit a vezérlő ic (RW1068) adatlapjából https://www.newhavendisplay.com/app_notes/RW1067.pdf kiolvastam az az hogy egy kiterjesztett funkció megívásával lehet bekapcsolni a 4 soros módot(10. oldal alja). De ahhoz hogy ezt bekapcsoljam először egy "RE" bit-et kell bekapcsolnom (11. oldal).

Nos itt akadtam el mert nem tudom hogy hogyan állítsam be ezeket.
Próbaltam azzal hogy az lcd.command() paranccsal kiküldöm őket a void setup() -on belul, de sajnos semmi eredmény.

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.command(0010100);
   delayMicroseconds(4500);
   
   lcd.command(00001001);
   delayMicroseconds(4500);
   
   lcd.command(00100000);
   delayMicroseconds(4500);
   
  lcd.setCursor(0, 0);
  lcd.print("hello, world!");
}

void loop() {
  
  lcd.setCursor(0, 1);
  lcd.print(millis() / 1000);
 
  lcd.setCursor(0, 2);
 lcd.print("hello, world!");
  
  lcd.setCursor(0, 3);
  lcd.print("hello, world!");
}


Nagyon jól jönne ha valaki elmagyarázná hogy adjam be a parancsokat helyesen??

Illetve még az érdekelne hogy lehetséges e ha nem a command parancsot használom, hanem egyesével megadom hogy az egyes kimeneteknek milyen értéke legyen (RS:1, E:1 D4:1 .....).
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

Re: Batron 20x4 -es lcd probléma.

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

Egyesével értékadás: DigitalWrite ().
Kérdés:
- Muszály ezt használni?
- Mit tud?

Egy 4x20-as 3eFt. A másik leprogramozása mennyi idő? :)
Avatar
tuccer
DrótVégénSzéndarab
Hozzászólások: 15
Csatlakozott: 2011. augusztus 14. vasárnap, 6:00

Re: Batron 20x4 -es lcd probléma.

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

Mivel hogy van belőle 5Db így jó lenne ha tudnám mindenféle célra használni.
Tudásra ugyan az mint egy normál Hd44780 alapú 20x4 -es , de ez csak 55x27 mm.
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

Re: Batron 20x4 -es lcd probléma.

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

Hülye kérdés:
2x inicializálod az LCD-t?
Az BEGIN részbe nyúlsz bel a crystallcd.cpp-ben?

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

void LCD::begin(uint8_t cols, uint8_t lines, uint8_t dotsize) 
{
   if (lines > 1) 
   {
      _displayfunction |= LCD_2LINE;
   }
   _numlines = lines;
   _cols = cols;
   
   // for some 1 line displays you can select a 10 pixel high font
   // ------------------------------------------------------------
   if ((dotsize != LCD_5x8DOTS) && (lines == 1)) 
   {
      _displayfunction |= LCD_5x10DOTS;
   }
   
   // SEE PAGE 45/46 FOR INITIALIZATION SPECIFICATION!
   // according to datasheet, we need at least 40ms after power rises above 2.7V
   // before sending commands. Arduino can turn on way before 4.5V so we'll wait 
   // 50
   // ---------------------------------------------------------------------------
   delay (100); // 100ms delay
   
   //put the LCD into 4 bit or 8 bit mode
   // -------------------------------------
   if (! (_displayfunction & LCD_8BITMODE)) 
   {
      // this is according to the hitachi HD44780 datasheet
      // figure 24, pg 46
      
      // we start in 8bit mode, try to set 4 bit mode
      send(0x03, FOUR_BITS);
      delayMicroseconds(4500); // wait min 4.1ms
      
      // second try
      send ( 0x03, FOUR_BITS );
      delayMicroseconds(4500); // wait min 4.1ms
      
      // third go!
      send( 0x03, FOUR_BITS );
      delayMicroseconds(150);
      
      // finally, set to 4-bit interface
      send ( 0x02, FOUR_BITS ); 
   } 
   else 
   {
      // this is according to the hitachi HD44780 datasheet
      // page 45 figure 23
      
      // Send function set command sequence
      command(LCD_FUNCTIONSET | _displayfunction);
      delayMicroseconds(4500);  // wait more than 4.1ms
      
      // second try
      command(LCD_FUNCTIONSET | _displayfunction);
      delayMicroseconds(150);
      
      // third go
      command(LCD_FUNCTIONSET | _displayfunction);
   }
   
   // finally, set # lines, font size, etc.
   command(LCD_FUNCTIONSET | _displayfunction);  
   
   // turn the display on with no cursor or blinking default
   _displaycontrol = LCD_DISPLAYON | LCD_CURSOROFF | LCD_BLINKOFF;  
   display();
   
   // clear the LCD
   clear();
   
   // Initialize to default text direction (for romance languages)
   _displaymode = LCD_ENTRYLEFT | LCD_ENTRYSHIFTDECREMENT;
   // set the entry mode
   command(LCD_ENTRYMODESET | _displaymode);

   backlight();

} 
 
Ezt a részt a videochip init lépései szerint átírni...
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

Re: Batron 20x4 -es lcd probléma.

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

Válasz küldése