Ir ao conteúdo
  • Cadastre-se

Arduino Lcd 16x2 i2c parando de funcionar


Posts recomendados

Pessoal stou com o seguinte problema, estava usando um modulo Lcd com i2c no arduino, tudo funcionava bem, simplesmente o lcd parou de funcionar, verifiquei a tensão que chegava no lcd e estava 4,8V, chequei os fios e estava tudo ok, cheguei a conclusao que provavelmente teria "queimado" o i2c, comprei um novo modulo LCD COM I2C e tudo voltou ao normal, mas apos usar o modulo por algumas horas, voltou a occorrer o mesmo problema.

Já verifiquei o endereço do i2c e esta correto, troquei o arduino UNO pelo nano, verifiquei a fiacao e não tem nada em curto e tambem não contem nenhum fio quebrado, muito estranho, existe alguma maneira de testar o i2c? alguma sugestao de algo que eu poço fazer?

coloquei um codigo simples no arduino para eliminar possiveis problemas de codificacao,

Segue o codigo

 

//YWROBOT
//Compatible with the Arduino IDE 1.0
//Library version:1.1
#include <Wire.h> 
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27,20,4);  // set the LCD address to 0x27 for a 16 chars and 2 line display

void setup()
{
  lcd.init();                      // initialize the lcd 
  lcd.init();
  // Print a message to the LCD.
  lcd.backlight();
  lcd.setCursor(3,0);
  lcd.print("Hello, world!");
  lcd.setCursor(2,1);
  lcd.print("Ywrobot Arduino!");
   lcd.setCursor(0,2);
  lcd.print("Arduino LCM IIC 2004");
   lcd.setCursor(2,3);
  lcd.print("Power By Ec-yuan!");
}


void loop()
{
}

 

 

outro detalhe que quando eu coloco o seguinte script para pegar o endereço do i2c ele não me retorna nada ( ANTES DO PROBLEMA ELE RETORNAVA O ENDERECO 0X27 )

segue o codigo para pegar o endereço do i2c

 

 

/*I2C_scanner
  This sketch tests standard 7-bit addresses.
  Devices with higher bit address might not be seen properly.*/
  
#include <Wire.h>

void setup() {
  Wire.begin();

  Serial.begin(9600);
  while (!Serial);
  Serial.println("\nI2C Scanner");
}

void loop() {
  byte error, address;
  int nDevices;

  Serial.println("Scanning...");

  nDevices = 0;
  for (address = 1; address < 127; address++ ) {
    Wire.beginTransmission(address);
    error = Wire.endTransmission();

    if (error == 0) {
      Serial.print("I2C device found at address 0x");
      if (address < 16)
        Serial.print("0");
      Serial.print(address, HEX);
      Serial.println("  !");

      nDevices++;
    }
    else if (error == 4) {
      Serial.print("Unknown error at address 0x");
      if (address < 16)
        Serial.print("0");
      Serial.println(address, HEX);
    }
  }
  if (nDevices == 0)
    Serial.println("No I2C devices found\n");
  else
    Serial.println("done\n");

  delay(5000);
}

 

 

 

i2c arduino.png

monitorserial.png

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

O módulo está 'colado' no display ou é por fio? Tem pullup nos sinais i2c? O fio é longo? Tem pullup nos sinais de endereço físico? Tem capacitor de desacoplamento? está soldado ou no protoboard?

Reduza a velocidade do clock do mc e/ou i2c.

Link para o comentário
Compartilhar em outros sites

@.if Bom dia, o i2c esta soldado no lcd e o arduino tem uma placa borne para melhor fixacao dos cabos, não tem pullup o fio tem uns 15 cm, tive que colocar o fio de 1mm, pois não tenho um de menor espessura aqui, não tem capacitor. Como assim reduzir a velocidade do clock?

 

Um detalhe que esqueci de mencionar é que o arduino esta em uma fonte 11,9V para ser exato! a mesma fonte que liga minha impressora 3d que te um arduino mega e um lcd 20x4 que funciona normalmente

Pessoal um detalhe, fui remontar o circuito na protoboard e o primeiro LCD voltou a funcionar mas o segundo permanece na mesma, muito estranho pois ele mudou de endereco eu tenho certeza que o endereco era 0x27 pois ele estava no meu projeto, agora ele mudou para 0x25, ele fica piscando como se estivesse em curto, acho q deu problema mesmo 

 

Vídeo

Descobri porque mudou o endereco, caiu um pouco de solda na parte de traz no A1 responsalvel pelo endereco

Link para o comentário
Compartilhar em outros sites

@vtrx isso eu ja não sei

estou testando oS moduloS i2c

QUE não FUNCIONA A COMUNICACAO SERIAL
VCC -> GND SCL SDA
GND -> SCL SDA VCC
SDA -> VCC SCL GND
SCL -> não DA CONTINUIDADE PARA NENHUM

O QUE FUNCIONA MAS APRESENTA PROBLEMAS NO BACKLIGHT(FICA PISCANDO)
VCC -> SDA
GND -> SCL SDA VCC
SDA -> não DA CONTINUIDADE PARA NENHUM
SCL -> não DA CONTINUIDADE PARA NENHUM


 

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Não entendi os testes mas acho que não deve te ajudar muito...

Não vi o Vídeo pois não quero logar pra ver ok? Publique no youtube ou similar... se achar que deve ... achar que é muito importante eu ver 😁

6 horas atrás, igorlima31596 disse:

BACKLIGHT(FICA PISCANDO)

 

7 horas atrás, igorlima31596 disse:

funcioando ainda mas o backligth fica piscando

Verifique a fonte ou o comando de controle do b.l. da sua biblioteca. Tenta usar outra ou a nativa do arduino mesmo.

 

9 horas atrás, igorlima31596 disse:

caiu um pouco de solda na

...

8 horas atrás, igorlima31596 disse:

retirei a solda

Isto preconiza uma certa inabilidade e sugere que você deve procurar/resolver novas eventuais cagadinhas básicas

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!