IIL9341 com Tela Branca - Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)2024-03-29T02:38:16Zhttps://labdegaragem.com/forum/topics/iil9341-com-tela-branca?commentId=6223006%3AComment%3A848484&feed=yes&xn_auth=no Bom dia Elcides,
O MIS…tag:labdegaragem.com,2021-02-04:6223006:Comment:8490122021-02-04T12:57:30.304ZCesar Cesarhttps://labdegaragem.com/profile/CesarCesar
<p></p>
<p> Bom dia Elcides,</p>
<p> 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.<br></br> Quanto ao RESET, eu vi diversas formas de exemplos para ele. Com resistor e ligado direto ao Vcc</p>
<p> No meu caso, funcionou em ambas as formas mas acabei adotando a ligação direta ao Vcc. </p>
<p> 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…</p>
<p></p>
<p> Bom dia Elcides,</p>
<p> 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.<br/> Quanto ao RESET, eu vi diversas formas de exemplos para ele. Com resistor e ligado direto ao Vcc</p>
<p> No meu caso, funcionou em ambas as formas mas acabei adotando a ligação direta ao Vcc. </p>
<p> 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.<br/> Agradeço muito a ajuda de todos.</p> Desculpe pelo erro em seu n…tag:labdegaragem.com,2021-02-04:6223006:Comment:8488132021-02-04T12:50:57.557ZCesar Cesarhttps://labdegaragem.com/profile/CesarCesar
<p></p>
<p> Desculpe pelo erro em seu nome.</p>
<p> Abs</p>
<p></p>
<p> Desculpe pelo erro em seu nome.</p>
<p> Abs</p> De nada César,
Estamos aqui p…tag:labdegaragem.com,2021-02-04:6223006:Comment:8490082021-02-04T12:43:59.649ZJosé Gustavo Abreu Murtahttps://labdegaragem.com/profile/GustavoMurta
<p>De nada César,</p>
<p>Estamos aqui para ajudar os colegas. </p>
<p>Uma sugestão :</p>
<p>Quando for abrir um tóipco, envie todas as informações sobre o seu projeto. </p>
<p>Links, fotos, datasheets. Isso facilitará a nossa ajuda. </p>
<p>Meu nome é José Gustavo. </p>
<p>De nada César,</p>
<p>Estamos aqui para ajudar os colegas. </p>
<p>Uma sugestão :</p>
<p>Quando for abrir um tóipco, envie todas as informações sobre o seu projeto. </p>
<p>Links, fotos, datasheets. Isso facilitará a nossa ajuda. </p>
<p>Meu nome é José Gustavo. </p> Parabéns José Augusto, ma…tag:labdegaragem.com,2021-02-04:6223006:Comment:8487162021-02-04T12:22:58.610ZCesar Cesarhttps://labdegaragem.com/profile/CesarCesar
<p></p>
<p> Parabéns José Augusto, matou o problema !!! RS</p>
<p> Nem acredito que apareceu uma solução pra essa encrenca.</p>
<p> Era exatamente isso. Parti pro método do curto circuito no Jumper e pronto!<br/> <br/> Agora vou comprar o módulo e colocar nele por ser mais recomendável.</p>
<p> Já liguei e desliguei dezenas de vezes e acabou-se o problema. <br/> Muito obrigado a você e a todos que participaram desse tópico no intuito de ajudar.</p>
<p></p>
<p> Parabéns José Augusto, matou o problema !!! RS</p>
<p> Nem acredito que apareceu uma solução pra essa encrenca.</p>
<p> Era exatamente isso. Parti pro método do curto circuito no Jumper e pronto!<br/> <br/> Agora vou comprar o módulo e colocar nele por ser mais recomendável.</p>
<p> Já liguei e desliguei dezenas de vezes e acabou-se o problema. <br/> Muito obrigado a você e a todos que participaram desse tópico no intuito de ajudar.</p> Bom dia ,
Achei o WIKI do seu…tag:labdegaragem.com,2021-02-04:6223006:Comment:8487092021-02-04T11:48:42.661ZJosé Gustavo Abreu Murtahttps://labdegaragem.com/profile/GustavoMurta
<p>Bom dia ,</p>
<p>Achei o WIKI do seu display:</p>
<h1 class="firstHeading" id="firstHeading" lang="en" xml:lang="en"><span style="font-size: 14pt;"><strong>2.4inch SPI Module ILI9341 SKU:MSP2402</strong></span></h1>
<p><a href="http://www.lcdwiki.com/2.4inch_SPI_Module_ILI9341_SKU:MSP2402" rel="nofollow noopener" target="_blank">http://www.lcdwiki.com/2.4inch_SPI_Module_ILI9341_SKU:MSP2402</a></p>
<p></p>
<p><strong>Seu problema deve ser esse! Você não deve conectar o módulo diretamente no…</strong></p>
<p>Bom dia ,</p>
<p>Achei o WIKI do seu display:</p>
<h1 id="firstHeading" class="firstHeading" lang="en" xml:lang="en"><span style="font-size: 14pt;"><strong>2.4inch SPI Module ILI9341 SKU:MSP2402</strong></span></h1>
<p><a rel="nofollow noopener" href="http://www.lcdwiki.com/2.4inch_SPI_Module_ILI9341_SKU:MSP2402" target="_blank">http://www.lcdwiki.com/2.4inch_SPI_Module_ILI9341_SKU:MSP2402</a></p>
<p></p>
<p><strong>Seu problema deve ser esse! Você não deve conectar o módulo diretamente no Arduino.</strong></p>
<p><strong>Use um conversor bidirecional de nível logico. </strong></p>
<p><strong><a rel="nofollow noopener" href="http://www.lcdwiki.com/Run_Arduino_Demo_in_spi_model" target="_blank">http://www.lcdwiki.com/Run_Arduino_Demo_in_spi_model</a></strong></p>
<p></p>
<p><a href="https://www.eletrogate.com/conversor-de-nivel-logico-33-5v-bidirecional" target="_blank" rel="noopener">https://www.eletrogate.com/conversor-de-nivel-logico-33-5v-bidireci...</a></p>
<p></p>
<p>"Quando conectamos diretamente o módulo de exibição SPI sem o módulo de conversão de nível integrado ao Arduino, descobrimos que ele não podia funcionar. Isso ocorre porque o pino do módulo SPI só pode inserir um nível alto de 3,3 V,enquanto a saída do Arduino tem um alto nível de 5V.</p>
<p>Para funcionar com sucesso, existem dois métodos: método de curto-circuito e método de módulo de conversão de nível externo.</p>
<p>O método de curto-circuito tem as vantagens de operação simples, cabeamento curto e não há necessidade de dispositivos externos.<br/>A desvantagem é que o módulo gera uma grande quantidade de calor durante a operação.</p>
<p>Afetará a vida útil do módulo.</p>
<p>O método do módulo de conversão de nível externo é uma operação normal, e a vantagem é que o módulo gera menos calor e funciona de forma estável durante a operação, e a desvantagem é que a operação é um pouco complicada.</p>
<p>(Um módulo de mudança de nível externo é necessário) para aumentar o custo (um módulo de conversão de nível adicional é necessário).</p>
<p>Em resumo, é recomendado usar o método de módulo de mudança de nível externo."</p>
<p></p> Pode ser muita coisa, inclusi…tag:labdegaragem.com,2021-02-04:6223006:Comment:8485752021-02-04T11:07:27.511ZDjames Suhankohttps://labdegaragem.com/profile/DjamesSuhanko
<p>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.</p>
<p>Vou deixar alguns links do que fiz sobre esse display maravilhoso :)</p>
<p>Calibração e cores:…</p>
<p></p>
<p>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.</p>
<p>Vou deixar alguns links do que fiz sobre esse display maravilhoso :)</p>
<p>Calibração e cores:</p>
<p><a href="https://www.dobitaobyte.com.br/display-ili9341-touch/" target="_blank">https://www.dobitaobyte.com.br/display-ili9341-touch/</a></p>
<p>Usando a TFT_eSPI:<br/><a href="https://www.dobitaobyte.com.br/ili9341-com-tft_espi-na-afsmartcontrol/" target="_blank">https://www.dobitaobyte.com.br/ili9341-com-tft_espi-na-afsmartcontrol/</a></p>
<p>IHM com ILI9341:<br/><a href="https://www.dobitaobyte.com.br/ihm-com-esp32-e-display-ili9341/" target="_blank">https://www.dobitaobyte.com.br/ihm-com-esp32-e-display-ili9341/</a></p>
<p>Como fazer uma tela de login com LVGL:<br/><a href="https://www.dobitaobyte.com.br/como-fazer-uma-tela-de-login-com-lvgl/" target="_blank">https://www.dobitaobyte.com.br/como-fazer-uma-tela-de-login-com-lvgl/</a></p>
<p>Primeiros passos com LVGL:<br/><a href="https://www.dobitaobyte.com.br/primeiros-passo-com-lvgl-no-esp32/" target="_blank">https://www.dobitaobyte.com.br/primeiros-passo-com-lvgl-no-esp32/</a></p>
<p>Projeto de misturador de cores que fiz com esse display:<br/><a href="https://www.dobitaobyte.com.br/misturador-de-cores-cmyk-com-esp32-diy/" target="_blank">https://www.dobitaobyte.com.br/misturador-de-cores-cmyk-com-esp32-diy/</a></p>
<p>Vídeo de apresentação e configuração com a TFT_eSPI:<br/><a href="https://youtu.be/i_Rhfc3lWBk" target="_blank">https://youtu.be/i_Rhfc3lWBk</a></p>
<p>Vídeo do misturador de cores:<br/><a href="https://www.youtube.com/watch?v=gJ1YhclQalE" target="_blank">https://www.youtube.com/watch?v=gJ1YhclQalE</a></p>
<p>Vídeo de como criar a tela de login com LVGL:<br/><a href="https://youtu.be/zOsQgzBvKxo" target="_blank">https://youtu.be/zOsQgzBvKxo</a></p>
<p>Como usar LVGL usando VS Code pra programar:<br/><a href="https://youtu.be/k0CM0VSeLYY" target="_blank">https://youtu.be/k0CM0VSeLYY</a></p>
<p>Design de projeto com LVGL:<br/><a href="https://youtu.be/54jMr8fhLIM" target="_blank">https://youtu.be/54jMr8fhLIM</a></p>
<p>Apresentação do IHM com LVGL:</p>
<p><a href="https://youtu.be/LFL5vYGF3yw" target="_blank">https://youtu.be/LFL5vYGF3yw</a></p>
<p></p>
<p>Acho que deve ajudar bastante.</p>
<p></p>
<p></p>
<p></p> ah sim:
para o "RESET"…tag:labdegaragem.com,2021-02-04:6223006:Comment:8484842021-02-04T07:38:50.391ZElcids Chagashttps://labdegaragem.com/profile/ElcidsChagas
<p><span style="font-size: 12pt;">ah sim:</span></p>
<p><span style="font-size: 12pt;"> para o "<strong>RESET</strong>", ao invés do <em><strong>Resistor</strong></em> de <strong><em>1k</em></strong>, é preferível usar um de <em><strong>330 ohms</strong></em>, para garantir o <em><strong>nivel lógico</strong></em> "<strong>0</strong>" para o <em><strong>RESET por Hardware</strong></em>, pois pode haver <span>na placa do <em><strong>Display </strong></em></span>um <em>resistor de…</em></span></p>
<p><span style="font-size: 12pt;">ah sim:</span></p>
<p><span style="font-size: 12pt;"> para o "<strong>RESET</strong>", ao invés do <em><strong>Resistor</strong></em> de <strong><em>1k</em></strong>, é preferível usar um de <em><strong>330 ohms</strong></em>, para garantir o <em><strong>nivel lógico</strong></em> "<strong>0</strong>" para o <em><strong>RESET por Hardware</strong></em>, pois pode haver <span>na placa do <em><strong>Display </strong></em></span>um <em>resistor de pullup</em> de baixo valor já conectado ao sinal "RESET".</span></p>
<p></p> olá Cesar.
Vc não post…tag:labdegaragem.com,2021-02-04:6223006:Comment:8483822021-02-04T07:17:13.823ZElcids Chagashttps://labdegaragem.com/profile/ElcidsChagas
<p><span style="font-size: 12pt;">olá Cesar.</span></p>
<p></p>
<p><span style="font-size: 12pt;"> Vc não postou nenhuma figura mostrando as conexões entre o <em><strong>Arduino</strong></em> e a placa do <strong><em>Display</em></strong> (o <em><strong>Arduino </strong></em><span>acredito ser o <em><strong>UNO</strong></em> embora vc também nada tenha mencionado sobre isso).</span></span></p>
<p><span style="font-size: 12pt;"> Mas pela descrição no seu post inicial, e pelo que está…</span></p>
<p><span style="font-size: 12pt;">olá Cesar.</span></p>
<p></p>
<p><span style="font-size: 12pt;"> Vc não postou nenhuma figura mostrando as conexões entre o <em><strong>Arduino</strong></em> e a placa do <strong><em>Display</em></strong> (o <em><strong>Arduino </strong></em><span>acredito ser o <em><strong>UNO</strong></em> embora vc também nada tenha mencionado sobre isso).</span></span></p>
<p><span style="font-size: 12pt;"> Mas pela descrição no seu post inicial, e pelo que está no código que vc postou aqui (o "<em><strong>teste_display.ino</strong></em>"), aparentemente vc <span style="text-decoration: underline;"><em>não conectou</em></span> ao <em><strong>Arduino</strong> </em>os <em><strong>pinos</strong></em> "<strong>RESET</strong>" e "<strong>MISO</strong>" do <em><strong>Display</strong></em>. </span><span style="font-size: 12pt;">No caso do <strong><em>pino</em></strong> "<strong>MISO</strong>" do <strong><em>Display</em></strong>, 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:</span></p>
<p style="text-align: center;"><span style="font-size: 10pt;"><strong><em>(clique na figura para "zoom")</em></strong></span></p>
<p><span style="font-size: 12pt;"><span><a href="https://storage.ning.com/topology/rest/1.0/file/get/8512928489?profile=original" target="_blank" rel="noopener"><img src="https://storage.ning.com/topology/rest/1.0/file/get/8512928489?profile=RESIZE_710x" width="502" class="align-center"/></a></span></span></p>
<p></p>
<p></p>
<p><span style="font-size: 12pt;"> Se vc não conectar o <strong><em>pino</em></strong> "<strong>MISO</strong>" do <strong><em>Display</em></strong>, o código da Biblioteca não conseguirá ler informações do <strong><em>controlador IIL9341</em></strong>.</span></p>
<p><span style="font-size: 12pt;"> Se vc não conectar o <strong><em>pino</em></strong> "<strong>RESET</strong>" do <strong><em>Display</em></strong>, não será possível fazer um <em><strong>Reset por Hardware</strong></em> no <em><strong>controlador IIL9341</strong></em>, ou seja, não haverá garantia de que o <span><em><strong>IIL9341</strong></em> foi resetado (isto é necessário para que ele inicialize corretamente seus circuitos e esteja pronto para receber comandos).</span></span></p>
<p><span style="font-size: 12pt;"> Veja, quando vc chama o "<strong>tft.begin()</strong>" na <strong><em>função</em></strong> "<em><strong>setup</strong></em>" do <strong><em>Arduino</em></strong>, ela verifica se vc informou qual o <em><strong>pino</strong></em> "<strong>RESET</strong>", e caso vc não tenha informado (que é o caso do seu código) então ela <span><span style="text-decoration: underline;"><em>automaticamente</em></span> </span>faz um "<em><strong>Soft-RESET</strong></em>" através de um <em><strong>comando</strong></em> para o <span><em><strong>IIL9341</strong></em>. Mas não há garantia de que o "<strong><em>Soft-RESET</em></strong>" sempre funcione, principalmente depois do Sistema ter sido ligado. E quando vc informa qual o <strong><em>pino</em></strong> usado para o "<strong>RESET</strong>", o "<strong>tft.begin()</strong>" <span style="text-decoration: underline;"><em>automaticamente</em></span> faz o <strong><em>RESET</em><em> por </em><em>Hardware</em></strong>.</span></span></p>
<p></p>
<p><span style="font-size: 12pt;"><span> Então para garantir que o <strong><em>IIL9341</em></strong> seja efetivamente resetado após o Sistema ter sido ligado, é sensato usar um <strong><em>RESET por Hardware</em></strong>, justamente através do <strong><em>pino</em></strong> "<strong>RESET</strong>" do <strong><em>Display</em></strong>. Para isso vc deve conectar o <strong><em>pino</em></strong> "<strong>RESET</strong>" do <strong><em>Display</em></strong> a um <strong><em>pino</em></strong> do <strong><em>Arduino</em></strong>, e informar esse pino como mostrado na figura a seguir, que também mostra a declaração do <strong><em>pino</em></strong> "<strong>MISO</strong>" e dos demais pinos da Interface com o <strong><em>IIL9341</em></strong>:</span></span></p>
<p style="text-align: center;"><span style="font-size: 10pt;"><strong><em>(clique na figura para "zoom")</em></strong></span></p>
<p><span style="font-size: 12pt;"><a href="https://storage.ning.com/topology/rest/1.0/file/get/8512933492?profile=original" target="_blank" rel="noopener"><img src="https://storage.ning.com/topology/rest/1.0/file/get/8512933492?profile=RESIZE_710x" class="align-center" width="692" height="243"/></a></span></p>
<p></p>
<p></p>
<p><span style="font-size: 12pt;"> Garanta a conexão dos <strong><em>pinos</em></strong> "<strong>RESET</strong>" e "<strong>MISO</strong>" do <strong><em>Display</em></strong> ao <strong><em>Arduino</em></strong>. Para o "<strong>RESET</strong>" vc pode usar qualquer <strong><em>pino digital</em></strong> do <strong><em>Arduino</em></strong> que esteja "sobrando", ou seja, não precisa ser o <strong><em>pino</em></strong> "<strong>8</strong>". Mas para o <strong><em>pino</em></strong> "<strong>MISO</strong>", <span>vc deve usar</span> <span style="text-decoration: underline;"><strong><em>obrigatoriamente</em></strong></span> o <strong><em>pino</em></strong> "<strong>12</strong>", pois ele é da Interface SPI do Hardware.</span></p>
<p></p>
<p><span style="font-size: 12pt;"> 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: <a href="https://storage.ning.com/topology/rest/1.0/file/get/8512942683?profile=original" target="_blank" rel="noopener">"<strong><em>teste_Display_02.zip</em></strong>"</a></span></p>
<p></p>
<p><span style="font-size: 12pt;"> Não se esqueça de alterar no código, o número do pino usado para o "<strong>RESET</strong>", caso vc use outro diferente do "<strong>8</strong>".</span></p>
<p></p>
<p><span style="font-size: 12pt;"> No Hardware, para o "<strong>MISO</strong>", vc <span style="text-decoration: underline;"><em>não deve usar</em></span> o <em><strong>Resistor</strong></em> de <strong><em>1k</em></strong> que vc mencionou no seu post inicial. Mas para o "<strong>RESET</strong>" use o <strong><em>Resistor</em></strong> da mesma forma que usou para os demais pinos da Interface.</span></p>
<p></p>
<p><span style="font-size: 12pt;"> Espero ter ajudado,</span></p>
<p></p>
<p><span style="font-size: 12pt;"> Abrçs</span></p>
<p><span style="font-size: 12pt;"> Elcids</span></p>
<p></p> Não identifiquei ele em nen…tag:labdegaragem.com,2021-02-04:6223006:Comment:8483332021-02-04T02:27:02.538ZCesar Cesarhttps://labdegaragem.com/profile/CesarCesar
<p></p>
<p> Não identifiquei ele em nenhum dos links.</p>
<p> Esse link aqui é exatamente ele :<br/><a href="https://pt.aliexpress.com/item/32832952750.html" target="_blank">https://pt.aliexpress.com/item/32832952750.html</a></p>
<p></p>
<p> Não identifiquei ele em nenhum dos links.</p>
<p> Esse link aqui é exatamente ele :<br/><a href="https://pt.aliexpress.com/item/32832952750.html" target="_blank">https://pt.aliexpress.com/item/32832952750.html</a></p> Veja qual tutorial se aplica…tag:labdegaragem.com,2021-02-04:6223006:Comment:8482882021-02-04T02:17:11.277ZJosé Gustavo Abreu Murtahttps://labdegaragem.com/profile/GustavoMurta
<p>Veja qual tutorial se aplica ao modelo do seu display:</p>
<p></p>
<p><a href="https://learn.adafruit.com/2-2-tft-display?view=all" target="_blank">https://learn.adafruit.com/2-2-tft-display?view=all</a></p>
<p></p>
<p><a href="https://learn.adafruit.com/adafruit-2-4-color-tft-touchscreen-breakout?view=all" target="_blank">https://learn.adafruit.com/adafruit-2-4-color-tft-touchscreen-breakout?view=all…</a></p>
<p></p>
<p></p>
<p>Veja qual tutorial se aplica ao modelo do seu display:</p>
<p></p>
<p><a href="https://learn.adafruit.com/2-2-tft-display?view=all" target="_blank">https://learn.adafruit.com/2-2-tft-display?view=all</a></p>
<p></p>
<p><a href="https://learn.adafruit.com/adafruit-2-4-color-tft-touchscreen-breakout?view=all" target="_blank">https://learn.adafruit.com/adafruit-2-4-color-tft-touchscreen-breakout?view=all</a></p>
<p></p>
<p><a href="https://learn.adafruit.com/adafruit-2-8-tft-touch-shield-v2?view=all" target="_blank">https://learn.adafruit.com/adafruit-2-8-tft-touch-shield-v2?view=all</a></p>
<p></p>
<p>ou </p>
<p></p>
<p><a href="https://learn.adafruit.com/search?q=ILI9341" target="_blank">https://learn.adafruit.com/search?q=ILI9341</a></p>
<p></p>
<p></p>