Boa noite
Tenho um projeto onde utilizo um display iil9341.
Um projeto concluído inclusive a nível de programação.
Porém, me deparo com um problema com o display...
Se eu desligo a alimentação, ao re-ligar vem apenas tela branca.
Depurando através do serial vejo que todo o processamento ocorre normalmente. Porém, o display com tela branca.
Para ele retornar a mostrar a tela normalmente, preciso ficar ligando e desligando ele até que em um determinado momento ele retorna e se eu não desligar mais, ele fica normal eternamente.
O que já fiz :
- Troquei fonte ( 5v/10A)
- Troquei processador e arduino
- Troquei o display!!
E nada resolve ...
Uso as seguintes configurações :
#define TFT_DC 9
#define TFT_CS 10
#define TFT_MOSI 11
#define TFT_CLK 13
Os pinos do display são conectados a essas portas através de resistores de 1K e já experimentei até ligando direto sem os resistores.
Alguém já passou por esse mistério? Será que tem algum detalhe nesse display que possa provocar isso ?
Agradeço desde já qualquer ajuda.
Tags:
As respostas para este tópico estão encerradas.
Parabéns José Augusto, matou o problema !!! RS
Nem acredito que apareceu uma solução pra essa encrenca.
Era exatamente isso. Parti pro método do curto circuito no Jumper e pronto!
Agora vou comprar o módulo e colocar nele por ser mais recomendável.
Já liguei e desliguei dezenas de vezes e acabou-se o problema.
Muito obrigado a você e a todos que participaram desse tópico no intuito de ajudar.
De nada César,
Estamos aqui para ajudar os colegas.
Uma sugestão :
Quando for abrir um tóipco, envie todas as informações sobre o seu projeto.
Links, fotos, datasheets. Isso facilitará a nossa ajuda.
Meu nome é José Gustavo.
Desculpe pelo erro em seu nome.
Abs
olá Cesar.
Vc não postou nenhuma figura mostrando as conexões entre o Arduino e a placa do Display (o Arduino acredito ser o UNO embora vc também nada tenha mencionado sobre isso).
Mas pela descrição no seu post inicial, e pelo que está no código que vc postou aqui (o "teste_display.ino"), aparentemente vc não conectou ao Arduino os pinos "RESET" e "MISO" do Display. No caso do pino "MISO" do Display, até acredito que vc tenha conectado, embora não tenha sido especificado no seu código. Estes dois pinos são evidenciados na figura a seguir:
(clique na figura para "zoom")
Se vc não conectar o pino "MISO" do Display, o código da Biblioteca não conseguirá ler informações do controlador IIL9341.
Se vc não conectar o pino "RESET" do Display, não será possível fazer um Reset por Hardware no controlador IIL9341, ou seja, não haverá garantia de que o IIL9341 foi resetado (isto é necessário para que ele inicialize corretamente seus circuitos e esteja pronto para receber comandos).
Veja, quando vc chama o "tft.begin()" na função "setup" do Arduino, ela verifica se vc informou qual o pino "RESET", e caso vc não tenha informado (que é o caso do seu código) então ela automaticamente faz um "Soft-RESET" através de um comando para o IIL9341. Mas não há garantia de que o "Soft-RESET" sempre funcione, principalmente depois do Sistema ter sido ligado. E quando vc informa qual o pino usado para o "RESET", o "tft.begin()" automaticamente faz o RESET por Hardware.
Então para garantir que o IIL9341 seja efetivamente resetado após o Sistema ter sido ligado, é sensato usar um RESET por Hardware, justamente através do pino "RESET" do Display. Para isso vc deve conectar o pino "RESET" do Display a um pino do Arduino, e informar esse pino como mostrado na figura a seguir, que também mostra a declaração do pino "MISO" e dos demais pinos da Interface com o IIL9341:
(clique na figura para "zoom")
Garanta a conexão dos pinos "RESET" e "MISO" do Display ao Arduino. Para o "RESET" vc pode usar qualquer pino digital do Arduino que esteja "sobrando", ou seja, não precisa ser o pino "8". Mas para o pino "MISO", vc deve usar obrigatoriamente o pino "12", pois ele é da Interface SPI do Hardware.
Ajustei seu código de testes, informando todos os pinos, e vc pode usá-lo para seus testes desligando e religando o Sistema. É este aqui: "teste_Display_02.zip"
Não se esqueça de alterar no código, o número do pino usado para o "RESET", caso vc use outro diferente do "8".
No Hardware, para o "MISO", vc não deve usar o Resistor de 1k que vc mencionou no seu post inicial. Mas para o "RESET" use o Resistor da mesma forma que usou para os demais pinos da Interface.
Espero ter ajudado,
Abrçs
Elcids
ah sim:
para o "RESET", ao invés do Resistor de 1k, é preferível usar um de 330 ohms, para garantir o nivel lógico "0" para o RESET por Hardware, pois pode haver na placa do Display um resistor de pullup de baixo valor já conectado ao sinal "RESET".
Bom dia Elcides,
O MISO está ligado fisicamente, mas eu não defini ele em código e realmente esse pino recebe ligação direta sem o resistor.
Quanto ao RESET, eu vi diversas formas de exemplos para ele. Com resistor e ligado direto ao Vcc
No meu caso, funcionou em ambas as formas mas acabei adotando a ligação direta ao Vcc.
No meu problema narrado em específico, o José augusto matou o problema, com a questão do jumper que tem na parte de trás desse display.
Agradeço muito a ajuda de todos.
Pode ser muita coisa, inclusive relacionado a algum momento do fluxo do código em determinada condição. Também tem a questão da biblioteca. Se você precisa desenhar tipos primitivos, recomendo a TFT_eSPI. Se quer widgets para desenhar janelas, recomendo a LVGL. Parta de um teste padrão, um "hello world" do display, daí fica mais fácil depurar.
Vou deixar alguns links do que fiz sobre esse display maravilhoso :)
Calibração e cores:
https://www.dobitaobyte.com.br/display-ili9341-touch/
Usando a TFT_eSPI:
https://www.dobitaobyte.com.br/ili9341-com-tft_espi-na-afsmartcontrol/
IHM com ILI9341:
https://www.dobitaobyte.com.br/ihm-com-esp32-e-display-ili9341/
Como fazer uma tela de login com LVGL:
https://www.dobitaobyte.com.br/como-fazer-uma-tela-de-login-com-lvgl/
Primeiros passos com LVGL:
https://www.dobitaobyte.com.br/primeiros-passo-com-lvgl-no-esp32/
Projeto de misturador de cores que fiz com esse display:
https://www.dobitaobyte.com.br/misturador-de-cores-cmyk-com-esp32-diy/
Vídeo de apresentação e configuração com a TFT_eSPI:
https://youtu.be/i_Rhfc3lWBk
Vídeo do misturador de cores:
https://www.youtube.com/watch?v=gJ1YhclQalE
Vídeo de como criar a tela de login com LVGL:
https://youtu.be/zOsQgzBvKxo
Como usar LVGL usando VS Code pra programar:
https://youtu.be/k0CM0VSeLYY
Design de projeto com LVGL:
https://youtu.be/54jMr8fhLIM
Apresentação do IHM com LVGL:
Acho que deve ajudar bastante.
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por