Arduino Forum

International => Italiano => Generale => Topic started by: ciarly64 on Dec 21, 2012, 07:55 pm

Title: Collegamento Display
Post by: ciarly64 on Dec 21, 2012, 07:55 pm
Un saluti a tutti ragazzi,  qualcuno mi può aiutare a collegare questo display (LCD03-16x2-B Display seriale/I2C 16x2 sfondo bluad) ad arduino uno.
Grazie
Title: Re: Collegamento Display
Post by: PaoloP on Dec 21, 2012, 08:45 pm
Se ne sta discutendo in un altro topic.
Comunque... essendo I2C lo devi collegare all'Arduino ai corrispondenti pin SDA e SCL ovvero i pin A4 e A5 oppure nella UNO R3 nei pin aggiuntivi presenti dopo il pin 13.
Poi naturalmente devi collegare GND e 5V.
Title: Re: Collegamento Display
Post by: ciarly64 on Dec 21, 2012, 09:24 pm
Sicuramente il collegamento e pin SDA e SCL del (diplay) Ovvero i pin A4 e A5 e questo. ma la libreria ?
Grazie
Title: Re: Collegamento Display
Post by: PaoloP on Dec 21, 2012, 09:27 pm
--> http://arduino.cc/forum/index.php/topic,137577.msg1034382.html#msg1034382
Title: Re: Collegamento Display
Post by: ciarly64 on Dec 21, 2012, 09:50 pm
scusa paolop quando scrivi dalla UNO R3 (e quella che e in mio possesso) i pin aggiuntivi sono dopo il pin 13 sono il gnd e il pin aref
giuso?
Title: Re: Collegamento Display
Post by: ciarly64 on Dec 21, 2012, 10:14 pm
trovati i pin , sono dopo il pin aref quindi sono il pin 16 SDA  e 17 SCL , facci delle prove
Grazie 
Title: Re: Collegamento Display
Post by: Aledexter on Dec 21, 2012, 10:28 pm
anch'io ho la uno rev3, significa quindi che quei pin possono essere utilizziati ogni volta che si necessita di una connessione i2c anche per progetti differenti da questo?
Title: Re: Collegamento Display
Post by: leo72 on Dec 21, 2012, 11:28 pm

anch'io ho la uno rev3, significa quindi che quei pin possono essere utilizziati ogni volta che si necessita di una connessione i2c anche per progetti differenti da questo?

I pin dell'I2C puoi usarli per tutte le comunicazioni con periferiche I2C, non solo dispay.
PS: i pin SDA e SCL sono un rimando dei pin A4 e A5, su cui l'Atmega328 ha mappato il bus I2C.
Title: Re: Collegamento Display
Post by: PaoloP on Dec 22, 2012, 11:40 am

trovati i pin , sono dopo il pin aref quindi sono il pin 16 SDA  e 17 SCL , facci delle prove
Grazie 


Per essere esatti sono i pin 18 e 19.
Sono mappati nel file pins_arduino.h, nella variante standard del core di Arduino:
Code: [Select]

static const uint8_t SDA = 18;
static const uint8_t SCL = 19;

Title: Re: Collegamento Display
Post by: ciarly64 on Dec 22, 2012, 01:09 pm
ok il collegamento lo fatto mettendo resistenze di pull-up da 1KOhm sui collegamenti I2C.
il display quando lo collego al computer via usb si illumina  un secondo si spegne e rimane una scritta SERIALMODE
quale libreria devo scaricare per farlo funzionare.
Grazie per la pazienza. 
Title: Re: Collegamento Display
Post by: brunello22 on Dec 22, 2012, 01:16 pm
ma non c'e' un jumper, sulla schedina.
per scegliere serial mode / i2c mode
Title: Re: Collegamento Display
Post by: PaoloP on Dec 22, 2012, 01:34 pm

quale libreria devo scaricare per farlo funzionare.



--> http://arduino.cc/forum/index.php/topic,137577.msg1034382.html#msg1034382
Title: Re: Collegamento Display
Post by: testato on Dec 22, 2012, 10:27 pm
2 cose.
1 metti il link del tuo display, cosi' controlliamo meglio
2 in firma ho una libreria che potrebbe interessarti
Title: Re: Collegamento Display
Post by: PaoloP on Dec 22, 2012, 11:57 pm
Fai una foto del retro del display e postala.
Title: Re: Collegamento Display
Post by: ciarly64 on Dec 23, 2012, 10:28 pm
Link - http://www.robot-italy.com/it/display-led/serial-lcd-glcd.html . Codice 785003
Ok ragazzi il collegamento hardware va bene il display con questo file ( CustomChars)   si accende la retro illuminazione il problema e che scrive tutte cose strane. invece di scrivere sul display Hello world.
o provato con altri file ma nulla .

#include <Wire.h>
#include <LiquidCrystal_I2C.h>

uint8_t bell[8]  = {0x4,0xe,0xe,0xe,0x1f,0x0,0x4};
uint8_t note[8]  = {0x2,0x3,0x2,0xe,0x1e,0xc,0x0};
uint8_t clock[8] = {0x0,0xe,0x15,0x17,0x11,0xe,0x0};
uint8_t heart[8] = {0x0,0xa,0x1f,0x1f,0xe,0x4,0x0};
uint8_t duck[8]  = {0x0,0xc,0x1d,0xf,0xf,0x6,0x0};
uint8_t check[8] = {0x0,0x1,0x3,0x16,0x1c,0x8,0x0};
uint8_t cross[8] = {0x0,0x1b,0xe,0x4,0xe,0x1b,0x0};
uint8_t retarrow[8] = {   0x1,0x1,0x5,0x9,0x1f,0x8,0x4};
 
LiquidCrystal_I2C lcd(0x20,16,2);  // set the LCD address to 0x20 for a 16 chars and 2 line display

void setup()
{
  lcd.init();                      // initialize the lcd
  lcd.backlight();
 
  lcd.createChar(0, bell);
  lcd.createChar(1, note);
  lcd.createChar(2, clock);
  lcd.createChar(3, heart);
  lcd.createChar(4, duck);
  lcd.createChar(5, check);
  lcd.createChar(6, cross);
  lcd.createChar(7, retarrow);
  lcd.home();
 
  lcd.print("Hello world...");
  lcd.setCursor(0, 1);
  lcd.print(" i ");
  lcd.write(3);
  lcd.print(" arduinos!");
  delay(5000);
  displayKeyCodes();
 
}

// display all keycodes
void displayKeyCodes(void) {
  uint8_t i = 0;
  while (1) {
    lcd.clear();
    lcd.print("Codes 0x"); lcd.print(i, HEX);
    lcd.print("-0x"); lcd.print(i+16, HEX);
    lcd.setCursor(0, 1);
    for (int j=0; j<16; j++) {
      lcd.write(i+j);
    }
    i+=16;
   
    delay(4000);
  }
}

void loop()
{

}

Saluti e auguri di Buon Natale .
Title: Re: Collegamento Display
Post by: testato on Dec 23, 2012, 11:57 pm
ma e' un display sia seriale che i2c.
se lo usi in seriale devi usare semplicemente i comandi seriali per scriverci, cosi' come scrivi sukl serial monitor.
a quello serve un lcd seriale, per semplificarti le cose. se non vuoi suarlo in seriale allora devi: "La modalità di pilotaggio viene selezionata tramite un jumper posto nella parte posteriore"
Title: Re: Collegamento Display
Post by: menniti on Dec 24, 2012, 08:24 am
Ciao, intanto racchiudi il codice tra i tag code così diventa più leggibile; la cosa che devi controllare bene sono i collegamenti, se li hai fatti volanti, senza incastri sulla bread o saldature, stai certo che hai dei falsi contatti; altra possibilità è che siano invertiti i pin di controllo; nel dubbio che possa essere l'interfaccia I2C disabilitala mediante il jumper previsto e usa il normale collegamento a 4 pin più controlli, previsto sul connettore posto sul bordo superiore del display, con l'apposita lib LiquidCrystal
Title: Re: Collegamento Display
Post by: ciarly64 on Dec 24, 2012, 11:19 am
Per i collegamenti sulla bread  credo che siano corretti
Code: [Select]
#include <Wire.h>
#include <LiquidCrystal_I2C.h>

uint8_t bell[8]  = {0x4,0xe,0xe,0xe,0x1f,0x0,0x4};
uint8_t note[8]  = {0x2,0x3,0x2,0xe,0x1e,0xc,0x0};
uint8_t clock[8] = {0x0,0xe,0x15,0x17,0x11,0xe,0x0};
uint8_t heart[8] = {0x0,0xa,0x1f,0x1f,0xe,0x4,0x0};
uint8_t duck[8]  = {0x0,0xc,0x1d,0xf,0xf,0x6,0x0};
uint8_t check[8] = {0x0,0x1,0x3,0x16,0x1c,0x8,0x0};
uint8_t cross[8] = {0x0,0x1b,0xe,0x4,0xe,0x1b,0x0};
uint8_t retarrow[8] = { 0x1,0x1,0x5,0x9,0x1f,0x8,0x4};
 
LiquidCrystal_I2C lcd(0x20,16,2);  // set the LCD address to 0x20 for a 16 chars and 2 line display

void setup()
{
  lcd.init();                      // initialize the lcd
  lcd.backlight();
 
  lcd.createChar(0, bell);
  lcd.createChar(1, note);
  lcd.createChar(2, clock);
  lcd.createChar(3, heart);
  lcd.createChar(4, duck);
  lcd.createChar(5, check);
  lcd.createChar(6, cross);
  lcd.createChar(7, retarrow);
  lcd.home();
 
  lcd.print("Hello world...");
  lcd.setCursor(0, 1);
  lcd.print(" i ");
  lcd.write(3);
  lcd.print(" arduinos!");
  delay(5000);
  displayKeyCodes();
 
}

// display all keycodes
void displayKeyCodes(void) {
  uint8_t i = 0;
  while (1) {
    lcd.clear();
    lcd.print("Codes 0x"); lcd.print(i, HEX);
    lcd.print("-0x"); lcd.print(i+16, HEX);
    lcd.setCursor(0, 1);
    for (int j=0; j<16; j++) {
      lcd.write(i+j);
    }
    i+=16;
   
    delay(4000);
  }
}

void loop()
{

}