Sida 1 av 2

2 av 3 Arduino LCD's fungerar inte med I2C - 2x16 raders LCD

Postat: 15 februari 2018, 10:51:30
av fosfor
Hej!

Jag köpte två I2C moduler som jag lött på själv på två Arduino LCD's.
Ena LCD'n är från Arduinos startpaket, den andra från Kjell & Co. Båda fungerar om man kopplar in dom via många sladdar.

Den som synes fungera på fotografierna är köpt från Kjell & Co men hade redan I2C chippet på från start, som synes fungerar.
De två där jag lött på I2C så fungerar det inte, visas inga tecken. Men skärmarna lyser. Har testat vrida på potten där bak men det hjälper inte.
Har testat resetta, starta om och koppla in på olika vis.

Har jag helt missat något?

Re: 2 av 3 Arduino LCD's fungerar inte med I2C - 2x16 raders

Postat: 15 februari 2018, 12:02:10
av Glenn
du har inte råkat fixa en kortslutning mellan converterkortet och displayen ? ..jag har för mej jag isolerade med eltejp just för att annars blev det så.

Re: 2 av 3 Arduino LCD's fungerar inte med I2C - 2x16 raders

Postat: 15 februari 2018, 14:15:41
av fosfor
Borde inte kunna ha hänt. De pålödda korten "svävar" en hyffsat bra bit ifrån LCD kortet, och inget nuddar något.

Re: 2 av 3 Arduino LCD's fungerar inte med I2C - 2x16 raders

Postat: 15 februari 2018, 20:42:05
av GeekJoan
Här kanske du kan hitta något matnyttigt: https://arduino-info.wikispaces.com/LCD-Blue-I2C

Re: 2 av 3 Arduino LCD's fungerar inte med I2C - 2x16 raders

Postat: 15 februari 2018, 22:53:08
av ToPNoTCH
Dina pålödda 8574 är av modellen "AT" medan den andra är "T".

Jag får någon vibb om att dom inte har samma adress.
Har nog själv torskat på det vill jag minnas.

Re: 2 av 3 Arduino LCD's fungerar inte med I2C - 2x16 raders

Postat: 15 februari 2018, 22:55:57
av ToPNoTCH
Kollade upp det och det verkar stämma
The PCF8574 and PCF8574A are functionally the same, but have a different fixed portion
(A6 to A3) of the slave address
T har 40h/41h
AT har 70h/71h

Re: 2 av 3 Arduino LCD's fungerar inte med I2C - 2x16 raders

Postat: 16 februari 2018, 09:03:15
av fosfor
OK :-O

What to do?!

Re: 2 av 3 Arduino LCD's fungerar inte med I2C - 2x16 raders

Postat: 16 februari 2018, 11:07:52
av Icecap
När du skickar data till displayen måste du ganska säkert ange adressen på enheten. Du ska alltså ganska enkelt ange rätt adress för det önskade display.

Re: 2 av 3 Arduino LCD's fungerar inte med I2C - 2x16 raders

Postat: 16 februari 2018, 11:36:06
av Mickecarlsson
I din kod har du satt upp ditt library för LCD:

Kod: Markera allt

LiquidCrystal_I2C lcd(0x27,16,2) // set the LCD address to 0x27 for a 16 chars and 2 line display
I exemplet ovan är det adressen 0x27 som används, testa med

Kod: Markera allt

LiquidCrystal_I2C lcd(0x40,16,2) // set the LCD address to 0x40 for a 16 chars and 2 line display
LiquidCrystal_I2C lcd(0x70,16,2) // set the LCD address to 0x70 for a 16 chars and 2 line display

Re: 2 av 3 Arduino LCD's fungerar inte med I2C - 2x16 raders

Postat: 16 februari 2018, 15:25:32
av fosfor
Aaaah... Då kan jag ju säkert använda den I2C scanner för att ta reda på den adressen?

Re: 2 av 3 Arduino LCD's fungerar inte med I2C - 2x16 raders

Postat: 16 februari 2018, 15:30:17
av Icecap
Scanna? Varför? Du HAR ju adresserna stående redan, vad fattas?

Re: 2 av 3 Arduino LCD's fungerar inte med I2C - 2x16 raders

Postat: 16 februari 2018, 15:55:13
av adent
fosfor skrev:Aaaah... Då kan jag ju säkert använda den I2C scanner för att ta reda på den adressen?
Japp, bör funka utmärkt!

MVH: Mikael

Re: 2 av 3 Arduino LCD's fungerar inte med I2C - 2x16 raders

Postat: 16 februari 2018, 23:59:58
av GeekJoan
Most displays use I2C Adress 0x27 but a FEW (Including those labelled "MH" ) use 0x3F

Kod: Markera allt

// I2C Scanner
// Written by Nick Gammon
// Date: 20th April 2011

#include <Wire.h>

void setup() {
  Serial.begin (115200);

  // Leonardo: wait for serial port to connect
  while (!Serial) 
    {
    }

  Serial.println ();
  Serial.println ("I2C scanner. Scanning ...");
  byte count = 0;
  
  Wire.begin();
  for (byte i = 8; i < 120; i++)
  {
    Wire.beginTransmission (i);
    if (Wire.endTransmission () == 0)
      {
      Serial.print ("Found address: ");
      Serial.print (i, DEC);
      Serial.print (" (0x");
      Serial.print (i, HEX);
      Serial.println (")");
      count++;
      delay (1);  // maybe unneeded?
      } // end of good response
  } // end of for loop
  Serial.println ("Done.");
  Serial.print ("Found ");
  Serial.print (count, DEC);
  Serial.println (" device(s).");
}  // end of setup

void loop() {}
SOME I2C interfaces have pins (or solder pads) that can be changed to change the address. They are usually labelled A0-A1-A2 . Here's the way addresses change from a default 0x27 with if you connect address pads together. (1 = Not Connected. 0 = Connected):

A0,A1,A2,HEX Address
1,1,1,0x27
0,1,1,0x26
1,0,1,0x25
0,0,1,0x24
1,1,0,0x23
0,1,0,0x22
1,0,0,0x21
0,0,0,0x20

If you make a change use the I2C Address Scanner to confirm it...

Re: 2 av 3 Arduino LCD's fungerar inte med I2C - 2x16 raders

Postat: 17 februari 2018, 12:45:15
av rvl
ToPNoTCH skrev:Kollade upp det och det verkar stämma
The PCF8574 and PCF8574A are functionally the same, but have a different fixed portion
(A6 to A3) of the slave address
T har 40h/41h
AT har 70h/71h
Det datablad jag såg i sa:
utan A: 0x20 - 0x27
med A: 0x38 - 0x3F
0x3F blir säkert bra.

A0-A2 jumper punkterna hittar du under den blå potentiometern på bilderna. Kortsluter man en av dessa på ena ...AT, så går det att ansluta alla tre displayerna samtidigt på samma buss.

Re: 2 av 3 Arduino LCD's fungerar inte med I2C - 2x16 raders

Postat: 19 februari 2018, 14:53:54
av fosfor
Ooohh... Räcker det med att kortsluta vilken som helst?