boa noite a todos !

tenho um problema que na qual não estou sabendo lidar , meu lcd do nada começou ficar com umas letras falhando e piscando , quase apagadas ... 

pensei que fosse programação mais mesmo assim , mesmo uma coisa básica  (" ola mundo") ele ficava do mesmo jeito 

analisei  tudo e tudo correto.

será que é uma possibilidade de ele esta queimando ? 

Exibições: 357

Responder esta

Respostas a este tópico

Não há o que analisar... vc não mandou o codigo, filme, foto, nada...

Tente escrever e dar um delay(500)

Isso é sintoma de vc colocar no loop mandando reescrever. Ele apaga e reescreve fazendo manchas.

O tempo de atualização ideal seria a cada meio segundo. 100ms para mais.

um que eu usei quando deu problema 

e o outro  bem básico pra escrever  na tela do lcd msm 

o que estava usando na programação quando deu o problema 

#include <DHT.h>
#include <LiquidCrystal.h>


#define DHTPIN A0
#define DHTTYPE DHT22
#define PIN_SENSOR A1
#define Relay_irrigator 8
#define Relay_ventilation 7
#define buzzer 13


int redpin = 10;
int bluepin = 9;
int greenpin = 6;
int valor_analogico;
int val;
// floats
float tmax = 30.00,tmin = 25.00;


DHT dht(DHTPIN, DHTTYPE);

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);


void setup() {

//serial begin
//Serial.begin(9600);

//pinagem
pinMode(PIN_SENSOR, INPUT);
pinMode(Relay_ventilation, OUTPUT);
pinMode(Relay_irrigator, OUTPUT);
pinMode(buzzer, OUTPUT);
pinMode(redpin, OUTPUT);
pinMode(bluepin, OUTPUT);
pinMode(greenpin, OUTPUT);

//inicialização SENSORES
dht.begin();
lcd.begin(16, 2);


digitalWrite(buzzer, HIGH);
delay(250);
digitalWrite(buzzer, LOW);
delay(3000);
}

void loop() {

digitalWrite(buzzer, HIGH);
delay(250);
digitalWrite(buzzer, LOW);
delay(5000);

float t = dht.readTemperature();
float u = dht.readHumidity();

if(isnan(t) || isnan(u)){
analogWrite(11, 255);
analogWrite(10, 125);
analogWrite(9, 255);
digitalWrite(Relay_ventilation, HIGH);
digitalWrite(buzzer, HIGH);
delay(1000);
digitalWrite(buzzer, LOW);
Serial.print("ERRO SENSOR DHT22");
delay(1000);
Serial.print("reiniciando");
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("erro sensor T01MP");
delay(2000);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("reiniciando...");
delay(1250);
asm volatile (" jmp 0");
}
//serial dht
//Serial.println("Temperature:");
//Serial.println(t);
//Serial.println("humidity:");
//Serial.println(u);
//lcd dht
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("T: ");
lcd.setCursor(2, 0);
lcd.print(t);
lcd.setCursor(8, 0);
lcd.print("U: ");
lcd.setCursor(11, 0);
lcd.print(u);


if(t > tmin && t < tmax){
lcd.setCursor(0, 2);
lcd.print("temp agradavel");
digitalWrite(Relay_ventilation, LOW);
}else{
lcd.setCursor(0, 2);
lcd.print("temp extremo");
digitalWrite(Relay_ventilation, HIGH);
digitalWrite(buzzer, HIGH);
delay(500);
digitalWrite(buzzer, LOW);
delay(2000);
}


valor_analogico = analogRead(PIN_SENSOR);
//serial solo
//Serial.println("solo:");
//Serial.println(valor_analogico);
//lcd solo
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("solo:");
lcd.setCursor(7, 0);
lcd.print(valor_analogico);

if(valor_analogico > 300 && valor_analogico > 500){
lcd.setCursor(0, 2);
lcd.print("solo seco");
digitalWrite(buzzer, HIGH);
delay(250);
digitalWrite(buzzer, LOW);
delay(2000);
digitalWrite(Relay_irrigator, LOW );
}

if(valor_analogico > 800 && valor_analogico > 1024){
lcd.setCursor(0, 2);
lcd.print("solo umido");
digitalWrite(Relay_irrigator, HIGH);
}

//rgb
analogWrite(11, 255);
analogWrite(10, 125);
analogWrite(9, 255);

}

a outra programação que eu fiz pra teste: 

#include <LiquidCrystal.h>

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup(){

lcd.begin(16, 2);

}

void loop(){

lcd.clear();

lcd.setCursor(0, 0);

lcd.print("ola mundo!");

}

e o resultado smp é a mesma coisa  do video 

Anexos

Olá.

  A segunda, conforme video, precisa de um delay(); Ele está apagando e reescrevendo muitas vezes por segundo.

Mesmo o comando lcd.clear sequer precisa estar no loop().

O primeiro não deu pra acompanhar... Mas ponha um delay(250) por ex no loop que vc vai ver que resolve.

Melhor ainda se o clear for pro setup();

obrigado! funcionou !

Boa noite S,

se está resolvido, escreva a palavra RESOLVIDO antes do titulo do seu tópico.

RV

boa tarde !

ontem eu testei e deu tudo certo , fiz  tudo novamente  com a nova programação e funcionou ... e desliguei 

porem quando fui ligar hj , novamente  deu problema  e o problema é que não esta aparecendo letra , por exemplo  inves de aparecer "ola mundo" aparece apenas " ola mund"

Olá.

  Anexe na mensagem a ultima versão que está quase funcionando... Aih da pra entender melhor.

  Meu palpite é que antes do display ter tempo de escrever vc já comanda outra coisa como apagar.

está  anexada é a ultima  programação que funcionou  e que agr parou de funcionou !

Anexos

e fica dando quadrados branco , alguns falhando  e outros cortados

No "olá mundo" também fica ?

Quadrado branco costuma ser erro de fiação/pinagem, não de programação. Uma vez inicializado ok ja´fica apagado...

As ligações são todas bem soldadas, com fios relativamente curtos ?

Verifique cada fio com o multímetro. Se um desligar pode ficar assim como vc falou.

mesmo com ola mundo  fica faltando letras , como se fosse cortado 

mostrarei no video anexado 

Anexos

Ok, mas manda o video e o programa que gera o video... 

Senão não dá pra falar nada.

A mancha no canto inferior direito parece ser defeito, vazamento de cristal liquido provocado por impacto ou queimadura de sol. Acontece quando vc deixa na mesa com garrafas de agua, oculos ou qq coisa que tenha ou forme uma lente.

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço