Go Down

Topic: Collegamento Display (Read 2362 times) previous topic - next topic

ciarly64

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

PaoloP

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.

ciarly64

Sicuramente il collegamento e pin SDA e SCL del (diplay) Ovvero i pin A4 e A5 e questo. ma la libreria ?
Grazie

PaoloP

--> http://arduino.cc/forum/index.php/topic,137577.msg1034382.html#msg1034382

ciarly64

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?

ciarly64

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

Aledexter

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?

leo72


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.

PaoloP


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;


ciarly64

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. 

Brunello

ma non c'e' un jumper, sulla schedina.
per scegliere serial mode / i2c mode

PaoloP


quale libreria devo scaricare per farlo funzionare.



--> http://arduino.cc/forum/index.php/topic,137577.msg1034382.html#msg1034382

Testato

2 cose.
1 metti il link del tuo display, cosi' controlliamo meglio
2 in firma ho una libreria che potrebbe interessarti
- [Guida] IDE - http://goo.gl/ln6glr
- [Lib] ST7032i LCD I2C - http://goo.gl/GNojT6
- [Lib] PCF8574+HD44780 LCD I2C - http://goo.gl/r7CstH

PaoloP

Fai una foto del retro del display e postala.

ciarly64

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 .

Go Up