Se afișează postările cu eticheta u8glib. Afișați toate postările
Se afișează postările cu eticheta u8glib. Afișați toate postările

joi, 20 iulie 2023

Afisaj monocrom de 2" cu rezolutie de 192x64 (UC1609C) comandat de Arduino

    Am comanat un afisaj cu driver UC1609C, cu rezolutie de 192x64 pixeli, despre care citisem ca se poate controla cu biblioteca u8g2lib asa ca banuiam ca pot adapta usor programe de la alte afisaje cu rezolutii similare.



    Pana sa soseasca afisajul, am gasit o biblioteca alternativa ERM19264_UC1609, care are o documentatie buna, asa ca am facut niste teste cu exemplele ei, cand a sosit afisajul.

rezultatele se observa in posele si filmuletele urmatoare:

test afisaj monocrom cu rezolutie 192x64 cu UC1609C

test with 192x64 UC1609C monochrome display

   Am gaasit si biblioteca LCD_UC1609, ce permite si adaugarea unei memorii externe:

doar ca eu am testat doar schema simpla, observand ca si ea foloseste resurse putine si este rapida:

test afisaj monocrom cu rezolutie 192x64 cu UC1609C (2)

test with 192x64 UC1609C monochrome display (2)

   Bun, testasem si biblioteca u8g2lib, doar ca am reusit sa compilez si incarc un exemplu doar cu text, dar consuma si acela multe resurse, ulterior am gasit articolul Display LCD 19264-05 V3.2 (Arduino) care indica sub-biblioteca u8x8lib ce foloseste doar text si consuma resurse putine.
   Am luat programiorul de pe site si l-am adaptat sa arata ca un ceas (pseudoceas), 
realizand si filmuletele:
   Programiorul adaptat si folosit in filmulete este u8x8lib_pseudoclock1.ino.
   Pentru toate cele 3 biblioteci, am folosit aceeasi conectare intre placa Arduino Nano (Jade Nano+) si afisaj:

miercuri, 16 iulie 2014

Afisaj grafic color QVGA de 2,2" cu integrat ILI9341 conectat la Arduino

pus poze pierdute in 08.07.2015

   Am achizitionat un afisaj grafic color cu rezolutie de 320x240 (QVGA) cu diagonala de 2,2" (5,6cm) care are integratul de control de tip ILI9341.
   El se alimenteaza la maxim 3,3V si se poate comanda pe 5 sau 6 fire. Dupa cateva cautari pe net am aflat ca as putea folosi solutia aplicata la afisajul grafic monocrom utilizat la telefonele Nokia 3310 (5110), care au integratul de comanda PCD8544, in care inseriasem rezistente de 10k pe pinii de comanda, cum am prezentat in articolul Afisajul folosit la telefoanele Nokia 5110/3310 si Arduino
   Montajul practic arata asa, unde nu folosesc pinul MISO, dupa cum am gasit in libraria grafica ucglib:
Ucglib_ILI9341_18x240x320_SWSPI ucg(/*sclk=*/ 13, /*data=*/ 11, /*cd=*/ 9 , /*cs=*/ 10, /*reset=*/ 8);
   Dupa ce am descarcat libraria ucglib, care seamana, cel putin la prima vedere cu libraria u8glib pe care am folosit-o la afisajul de Nokia 3410 si la afisajul grafic monocrom cu ST7920.
   Mai multe despre aceasta librarie se gasesc la adresa https://code.google.com/p/ucglib/.
   Dupa incarcarea skech-urilor din exemple cu test de grafica, am obtinut:
   Am facut si un filmulet numit test afisaj 2,2" cu ILI9341 si libraria ucglib
apoi am mai umblat la sketch-uri, pentru a mari cifrele si am constatat ca se misca foarte greu, dupa cum se vede in filmuletul test afisaj 2,2" cu ILI9341 si libraria ucglib (2)
asa ca o sa trebuiasca sa modific partea de interfatare, cu CD4050, cum e prezentat pe site-ul Gordons Projects
   Integratul CMOS CD4050 contine 6 buffer-e neinversoare, ce permit tensiuni mai marei la intrare decat cele de alimentare, de aceea este folosit drept convertizor de nivel logic de la 5V cat are placa Arduino la 3,3V cat are afisajul.
PS: Se poate folosi o schema simplificata cu rezistente, prin eliminarea celor 3 diode, alimentand direct din conectorul de 3,3V de pe placa Arduino:
PS2: Schema inspirata de pe site-ul Gordons projects ar fi:
17.7.2014
   Pana sa realizeze partea de interfata cu 4050, m-am mai "jucat" cu afisajul, de fapt cu sketch-urile, reusind sa modific unul care arata un secundar de ceas si era facut pentru a fi utilizat cu libraria u8glib:
 
   Am facut si 2 filmulete:
   Am cumparat un CD4050 si am realizat interfata:
si am testat mai multe librarii, dupa cum am prezentat in filmuletul testare librarii pentru afisajul grafic color de 2,2" cu ILI9341.

   Pun si sketch-ul cu configuratia de la Gordons projects, care mi-a mers si mie bine (vezi schema cu CD4050)
Ucglib_ILI9341_18x240x320_HWSPI ucg(/*cd=*/ 6 , /*cs=*/ 5, /*reset=*/ 4);
/*
// original sketch by niq_ro from http://nicuflorica.blogspot.com for analog clock using ucglib library
// version for 2.2" TFT with ILI9341  - 2014.07.16, Craiova - Romania

Universal uC Color Graphics Library
  Copyright (c) 2014, olikraus@gmail.com
  All rights reserved.
*/
#include <SPI.h>
#include "Ucglib.h"
//Ucglib_ILI9341_18x240x320_SWSPI ucg(/*sclk=*/ 13, /*data=*/ 11, /*cd=*/ 9 , /*cs=*/ 10, /*reset=*/ 8); // clasic ucglib
// Ucglib_ILI9341_18x240x320_SWSPI ucg(/*sclk=*/ 13, /*data=*/ 11, /*cd=*/ 6 , /*cs=*/ 5, /*reset=*/ 4); //gordons
//Ucglib_ILI9341_18x240x320_HWSPI ucg(/*cd=*/ 9 , /*cs=*/ 10, /*reset=*/ 8); original ucglib
Ucglib_ILI9341_18x240x320_HWSPI ucg(/*cd=*/ 6 , /*cs=*/ 5, /*reset=*/ 4); // gordons

/*
http://gordonsprojects.blogspot.ro/2014/04/arduino-tft-serial-spi-22-ili9341.html
D4  : RESET
D5  : CS
D6  : D/C
D7  : LED (Via 2222 transistor)
D11 : MOSI
D12 : MISO
D13 : SCK
*/


int xmax=320; // lungime maxima pe axa x (ILI9341 QVGA)
int ymax=240; // lungime maxima pe axa y (ILI9341 QVGA)
int xcenter=xmax/2; // centrul ecranului pe axa x
int ycenter=ymax/2; // centrul ecranului pe axa y
int raza=ymax/2-2; // raza cercului
int unghi=0;


// for LCD12864 with ST7920:
 float kx = 2;
 float ky = 2;
 float kt = 5;
 float xt=15;


void subrutina(void) {
  ucg.setRotate90();
  // graphic commands to redraw the complete screen should be placed here  
  ucg.setFont(ucg_font_courB24);
  int bx=3*kt+xt;
  int by=22*ky;
  ucg.setPrintPos(3*kt+xt+30,22*ky);
  ucg.print("Salut Nicu!");
  // pictez un chenar
  ucg.drawFrame(1,1,xmax-1,ymax-1);
  
  //ucg.setFont(ucg_font_osb21);
  ucg.setPrintPos(3*kt+xt-20,40*ky);
  ucg.print("afisez mesaj pe");
  ucg.setPrintPos(6*kt+xt,50*ky+25);
  ucg.print("ecran grafic");
 // ucg.setPrintPos(14*kt-kt*xt,60*ky+10);
  ucg.setPrintPos(80,160);
  ucg.print("320x240");
 
}

void subrutina1(void) {
  // desenez cercul principal
// ucg.drawCircle(xcenter,ycenter,raza, UCG_DRAW_ALL);

/*  
  // un font si mai mic
  u8g.setFont(u8g_font_4x6);
  u8g.drawStr(40, 60, "3410");
 */ 
 ucg.setColor(225, 255, 0);
 ucg.drawCircle(xcenter,ycenter,raza, UCG_DRAW_ALL);
  // trag o linie din centrul cercului la cifra 0/12
   ucg.drawLine(xcenter, ycenter, xcenter, ycenter-raza);
 //  delay(500);
   ucg.drawLine(xcenter, ycenter, xcenter+raza, ycenter);
 //  delay(500);
   ucg.drawLine(xcenter, ycenter, xcenter, raza+ycenter);
 //  delay(500);
   ucg.drawLine(xcenter, ycenter, xcenter-raza, ycenter);
 //  delay(500);
   
}

void subrutina2(uint8_t unghi) {
 ucg.setColor(0, 0, 255);
 ucg.drawCircle(xcenter,ycenter,raza, UCG_DRAW_ALL);
// desenez cercul principal
//  ucg.drawCircle(xcenter,ycenter,raza);
//  ucg.drawDisc(xcenter,ycenter,raza, UCG_DRAW_ALL);
//  for (unghi=0; unghi<60; unghi+=1);
float x1=sin(6*unghi*2*3.14/360);
float y1=cos(6*unghi*2*3.14/360);
 ucg.setColor(0, 255, 0);
   ucg.drawLine(xcenter, ycenter, xcenter+raza*x1, ycenter-raza*y1);  
    // folosesc un font mititel
 // ucg.setFont(ucg_font_6x12);
  if (unghi <15 || unghi>45)  
 { 
   ucg.setColor(255, 0, 0);
   ucg.setPrintPos(100, 115);
 ucg.print("niq_ro"); 
 }
 else  
 { 
   ucg.setColor(255, 125, 255);
   ucg.setPrintPos(100, 115);
   ucg.print("niq_ro");
 }

//ucg.setColor(0, 0, 0);
// ucg.drawLine(xcenter, ycenter, xcenter+raza*x1, ycenter-raza*y1);  
for (int qy = 0; qy < 20; qy++) 
{
  ucg.setColor(0, 0, 0);
  ucg.drawHLine(0, qy , 40);
}  
ucg.setColor(0, 255, 0);
char s[2] = " ";
 if (unghi<10)
 {
   // see http://www.asciitable.com/
s[0]=unghi+48; // transform cifrele in caractere ASCII
  ucg.setPrintPos(12*kx, 10*ky);
  ucg.print(s);
 
 }
 else
{
s[0]=int(unghi/10)+48;
  ucg.setPrintPos(4*kx, 10*ky);
  ucg.print(s);

}
s[0]=unghi-10*int(unghi/10)+48;
  ucg.setPrintPos(12*kx, 10*ky);
  ucg.print(s);

}

void subrutina21(uint8_t unghi) {
float x1=sin(6*unghi*2*3.14/360);
float y1=cos(6*unghi*2*3.14/360);  
ucg.setColor(0, 0, 0);
ucg.drawLine(xcenter, ycenter, xcenter+raza*x1, ycenter-raza*y1);  
 

}




void subrutina3(void) {
ucg.setColor(255, 0, 0);
  // pun font si apoi scriu mesaj de sfarsit...
//  u8g.setFont(u8g_font_gdr25);
 // ucg.setFont(ucg_font_6x12);
//  ucg.setPrintPos(20*kx*kt, 30*ky);
  ucg.setPrintPos(50, 100);
  ucg.print("Sfarsit!");
 }





void setup(void) {
 
  delay(1000);
  ucg.begin(UCG_FONT_MODE_TRANSPARENT);
//  ucg.begin(UCG_FONT_MODE_SOLID);
  ucg.clearScreen();

// ucg_uint_t xx=0;

}

void loop(void) {

  ucg.clearScreen(); 
  ucg.setFont(ucg_font_ncenR14r);
 // ucg.setColor(255, 255, 255);
  ucg.setColor(255, 0, 255);
  //ucg.setColor(0, 255, 0);
  ucg.setColor(1, 255, 0,0);

//ucg.setFont(ucg_font_ncenR14r);
  subrutina(); // unde e mesajul de intampinare
  delay(5000);
    ucg.clearScreen(); 

// a doua reprezentare grafica
    subrutina1(); // unde desenez ceva pana ma prind cum se face
  delay(5000);
    ucg.clearScreen(); 
  // rebuild the picture after some delay
  delay(150);
    ucg.clearScreen(); 

 
 // fac ceasu' cu secundar
for (int xx = 0; xx < 60; xx++) // aici ar fi secundele
{
  subrutina2(xx); // munceste la ce e in subrutina2
//ucg.setColor(255, 255, 255);
//ucg.drawBox(0, 0, 320, 240);
  //  ucg.clearScreen(); 
  delay(1000); // sta o secunda
 
 subrutina21(xx); // sterge ce a muncita inainte 
  
}
 int xx=0; // readuce cronometrul la zero

 delay(2000); // sta 2 secunde

  ucg.clearScreen(); 
    subrutina3(); // unde scriu ca s-a terminat demonstratia...
  delay(10000); // sta 10 secunde
  
} // final de program, se revine de la inceput

miercuri, 18 iunie 2014

Afisajul grafic monocrom LCD12864 (cu driver ST7920) comandat serial de Arduino

   Am achizitionat un afisaj grafic monocrom LCD12864, care are o rezolutie de 128x64 si este controlat de integratul ST7920.
 
   Deoarece acest afisaj se poate comanda paralel sau serial, am preferat varianta cu mai putine fire, asa ca m-a oprit la articolul Display gráfico LCD 128x64 - ST7920, care foloseste libraria grafica u8glib.
  Am folosit-o si eu pentru afisajul de Nokia 3410 cu driver PCF8812(vedeti un exemplu, articolul Afisaj de Nokia 3410 comandat de Arduino (III): Masurare temperaturi in 2 zone si afisare pe ecran de Nokia 3410).
   Revenind la afisajul cel nou si la articolul brazilian, va prezint schema de conectare:
   Dupa realizarea practica a montajului, am incarcat sketch-ul de acolo, obtinand:
   Din primele teste, am realizat ca reglajul contrastului nu se face, indiferent de tensiunea de pe pinul VO (de la 0 la 5V), asa ca am incercat si fara: merge foarte bine.
   Schema simplificata, folosita de mine este:

   Am incarcat si modificat un pic sketch-ul prezentat in articolul Afisaj de Nokia 3410 comandat de Arduino (II) 
   De data asta, totul este mai mare:
 
 
   Am facut si un filmulet, numit teste cu afisajul grafic LCD12864 cu ST7920 si Arduino
   Sketch-ul folosit de mine, nefinisat, dar functional, este:

/*
// original sketch by niq_ro from http://nicuflorica.blogspot.com for analog clock using u8glib library
// version 1m5 - 2013.10.22, Craiova - Romania
// version 1m6 - 2014.06.17, Craiova
   
  >>> Before compiling: Please remove comment from the constructor of the 
  >>> connected graphics display (see below).
  
  Universal 8bit Graphics Library, http://code.google.com/p/u8glib/
  
  Copyright (c) 2012, olikraus@gmail.com
  All rights reserved.

  Redistribution and use in source and binary forms, with or without modification, 
  are permitted provided that the following conditions are met:

  * Redistributions of source code must retain the above copyright notice, this list 
    of conditions and the following disclaimer.
    
  * Redistributions in binary form must reproduce the above copyright notice, this 
    list of conditions and the following disclaimer in the documentation and/or other 
    materials provided with the distribution.

  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 
  CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, 
  INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 
  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 
  DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR 
  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 
  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 
  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 
  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 
  CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 
  STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 
  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 
  ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.  
  
*/

#include "U8glib.h"
// ecran de Nokia 3410
//U8GLIB_PCF8812 u8g(13, 11, 10, 9, 8);  // SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9, Reset = 8
//U8GLIB_PCD8544 u8g(3, 4, 7, 5, 6);  // SPI Com: SCK = 3, MOSI = 4, CS = 7, A0 = 5, Reset = 6
// U8GLIB_PCF8812 u8g(3, 4, 7, 5, 6);
U8GLIB_ST7920_128X64_1X u8g(6, 5, 4 ,7); //Enable, RW, RS, RESET
int xmax=128; // lungime maxima pe axa x (ST7920 LCD12864))
//int xmax=94; // lungime maxima pe axa x (LCD Nokia 3410)
//int xmax=84; // lungime maxima pe axa x (LCD Nokia 3310)
int ymax=64; // lungime maxima pe axa y (ST7920 LCD12864)
//int ymax=64; // lungime maxim ape axa y (LCD Nokia 3410)
//int ymax=48; // lungime maxima pe axa y (LCD Nokia 3310)
int xcenter=xmax/2; // centrul ecranului pe axa x
int ycenter=ymax/2; // centrul ecranului pe axa y
int raza=ymax/2-2; // raza cercului
int unghi=0;

// for LCD12864 with ST7920:
 float kx = 1.37;
 float ky = 1;
 float kt = 1.2;
 float xt=15;

// for Nokia 3310:
// float kx = 1;
// float ky = 1;
// float kt = 1;
// float xt=0;

// for Nokia 3410 LCD:
//float kx = 0.9;
//float ky = 0.57;
//float kt = 1;
// float xt=0;

void subrutina(void) {
  // graphic commands to redraw the complete screen should be placed here  
  u8g.setFont(u8g_font_unifont);
  //u8g.setFont(u8g_font_osb21);
  u8g.drawStr( 3*kt+xt, 22*ky, "Salut Nicu!");
  // pictez un chenar
  u8g.drawFrame(1,1,93*kx,63*ky);
  
//  u8g.setFont(u8g_font_unifont);
  u8g.setFont(u8g_font_6x13);
  u8g.drawStr( 3*kx*kt+xt, 40*ky, "afisez mesaj pe");
  u8g.drawStr( 6*kx*kt+xt, 50*ky, "ecran grafic");
  u8g.drawStr( 14*kx*kt+xt, 60*ky, "128x64");
 
}

void subrutina1(void) {
  // desenez cercul principal
  u8g.drawCircle(xcenter,ycenter,raza);
/*  
  // un font si mai mic
  u8g.setFont(u8g_font_4x6);
  u8g.drawStr(40, 60, "3410");
 */ 
  // trag o linie din centrul cercului la cifra 0/12
   u8g.drawLine(xcenter, ycenter, xcenter, ycenter-raza);
 //  delay(500);
   u8g.drawLine(xcenter, ycenter, xcenter+raza, ycenter);
 //  delay(500);
   u8g.drawLine(xcenter, ycenter, xcenter, raza+ycenter);
 //  delay(500);
   u8g.drawLine(xcenter, ycenter, xcenter-raza, ycenter);
 //  delay(500);
   
}

void subrutina2(uint8_t unghi) {

// desenez cercul principal
  u8g.drawCircle(xcenter,ycenter,raza);
//  for (unghi=0; unghi<60; unghi+=1);
float x1=sin(6*unghi*2*3.14/360);
float y1=cos(6*unghi*2*3.14/360);  
   u8g.drawLine(xcenter, ycenter, xcenter+raza*x1, ycenter-raza*y1);  
 // folosesc un font mititel
  u8g.setFont(u8g_font_6x13);
  if (unghi <15 || unghi>45)  
 { u8g.drawStr(30*kx*kt, 50*ky, "niq_ro"); }
 else  
 { u8g.drawStr(30*kx*kt, 20*ky, "niq_ro");
 }

char s[2] = " ";
 if (unghi<10)
 {
   // see http://www.asciitable.com/
s[0]=unghi+48; // transform cifrele in caractere ASCII
 u8g.drawStr(10*kx, 10*ky, s);
 }
 else
{
s[0]=int(unghi/10)+48;
 u8g.drawStr(4*kx, 10*ky, s);
}
s[0]=unghi-10*int(unghi/10)+48;
 u8g.drawStr(10*kx, 10*ky, s);
}


void subrutina3(void) {
  // pun font si apoi scriu mesaj de sfarsit...
//  u8g.setFont(u8g_font_gdr25);
  u8g.setFont(u8g_font_unifont);
  u8g.drawStr(20*kx*kt, 30*ky, "Sfarsit!");
 }





void setup(void) {
  
  // flip screen, if required
  // u8g.setRot180();
  
  // set SPI backup if required
  //u8g.setHardwareBackup(u8g_backup_avr_spi);

  // assign default color value
  if ( u8g.getMode() == U8G_MODE_R3G3B2 ) {
    u8g.setColorIndex(255);     // white
  }
  else if ( u8g.getMode() == U8G_MODE_GRAY2BIT ) {
    u8g.setColorIndex(3);         // max intensity
  }
  else if ( u8g.getMode() == U8G_MODE_BW ) {
    u8g.setColorIndex(1);         // pixel on
  }
  else if ( u8g.getMode() == U8G_MODE_HICOLOR ) {
    u8g.setHiColorByRGB(255,255,255);
  }
}

u8g_uint_t xx=0;

void loop(void) {


  // picture loop
  u8g.firstPage();  
  do {
    subrutina(); // unde e mesajul de intampinare
  } while( u8g.nextPage() );
 delay(5000);

// a doua reprezentare grafica
  u8g.firstPage();  
  do {
    subrutina1(); // unde desenez ceva pana ma prind cum se face
  } while( u8g.nextPage() );
  delay(5000);
  // rebuild the picture after some delay
  delay(150);

 
 // fac ceasu' cu secundar
for (xx = 0; xx < 60; xx++) // aici ar fi secundele
{
 u8g.firstPage();  // incepere parte de grafica
  do { // face asta pana termina ce e in subrutina de desenat
    subrutina2(xx); // munceste la ce e in subrutina2
    } while( u8g.nextPage() ); // pana o termina
 delay(1000); // sta o secunda
}
xx=0; // readuce cronometrul la zero

 delay(2000); // sta 2 secunde

// a treia reprezentare grafica
  u8g.firstPage();  
  do {
    subrutina3(); // unde scriu ca s-a terminat demonstratia...
  } while( u8g.nextPage() );
  delay(10000); // sta 10 secunde// final de program, se revine de la inceput
   

vineri, 18 octombrie 2013

Afisaj de Nokia 3410 comandat de Arduino

   Deoarece am primit un afisaj de la un Nokia 3410 de la Nelu si afisajul compatibil Nokia 3310 de la chinezi a "decedat" datorita contactului imperfect dintre ecran si cablaj (banda din elastomer, sau cum ii zice), am apelat la Narcis  de la Multitec (fost coleg de scoala si liceu + prieten) sa-mi lipeasca o panglica din 8 fire de mufa afisajului, care arata ca "type 1" prezentat la http://serdisplib.sourceforge.net/ser/pcd8544.html:
si am facut o interfata ca si cea pentru afisajul de 3310 + condensator de 4,7uF intre Vout si masa... (merge si unul de 0,1uF):


   Dupa ce am conectat modulul la Arduino si am incarcat sketch-ul cu ceasul analog cumam prezenta tin articolul Afisajul folosit la telefoanele Nokia 5110/3310 si Arduino (IV)
am constatat ca zona utila de afisare e mult redusa fata de ecran, iar uneori in afara zonei de afisare apar "balarii":
 
 
   Am cautat pe net sa vad daca si alti s-au mai confruntat cu aceasta problema si am gasit la http://www.radiolocman.com/shem/schematics.html?di=63334 ceva similar, cu o poza care explica mult mai bine decat ce scriu in cuvinte:
   Tot cautand am descoperit libraria U8glib care suporta si "driver"-ul PCF8812, care permite, impreuna cu afisajul o rezolutie utila de 96x65 (din cei 102x65 pe care-i poate comanda) fata de PCD8544 cu 84x48 folosit la Nokia 3310... de aceea aparea si o zona nefolosita.
   Dupa ce am instalat libraria, am incarcat niste exemple pentru teste si e ok:
 
 
 
 
   Am reusit sa fac si un filmulet, numit Arduino with Nokia 3410 LCD:
20.10.2013
   La http://www.starlino.com/nokia_lcd_connect.html se prezinta o metoda de conectare a afisajului fara lipire, doar prin presare, folosind un cablu plat dintr-un cd-rom vechi.