Como conectar o display OLED I2C ao ARDUINO
Introdução: Introdução ao display OLED I2C 128*64 / 128*32.
Olá! Sendo um entusiasta amador da electrónica, tenho a certeza que tudo o que fazemos - brinquedos electrónicos - produtos caseiros, ou grandes projectos - é tudo por curiosidade e preguiça. A curiosidade se esforça para compreender e compreender o vasto e desconhecido, para descobrir como ali funciona, o que faz, como se move. E a preguiça inventa alguma coisa para inventar, para não se levantar, para não se aproximar, para não levantar, para não se sujar ou qualquer outra coisa importante.
Como ver informações é melhor do que descobrir o que está para acontecer em nosso dispositivo, ou já aconteceu, ou está acontecendo, com certeza desejaremos receber essas informações mais úteis de nossos microcontroladores, sensores ou outros dispositivos. E de qualquer forma, quero receber mensagens, como perguntas, avisos, lembretes, emoticons, estrelas, corações e assim por diante.
Para aqueles que também desejam o mesmo, aqui está um breve guia para conectar e testar telas OLED pequenas e baratas.
A seguir falaremos sobre um dos modelos de display OLED amplamente disponíveis para rádios amadores, controlado pelo chip SSD1306, com tela de 0,96 polegadas e resolução de 128 * 64 ou 128 * 32 pixels. Esses monitores são ideais para pequenos projetos de rádio amador e projetos caseiros.
Iremos conectá-lo ao Arduino UNO / NANO, e também iremos programá-lo através do Arduino.
Siga as instruções para entender como conectar e configurar corretamente o display OLED ao Arduino e como exibir uma mensagem personalizada em seu display.
Fazemos tudo passo a passo.
Precisamos apenas de quatro coisas:
Em geral, comprar peças para vários projetos no Aliexpress e no Ebay é uma coisa muito legal, enquanto você está trabalhando em um projeto, peças para outro já estão a caminho. O principal é não esquecer de fazer o pedido.
A tela é controlada por um chip SSD1306, que suporta cinco protocolos de comunicação, um dos quais é I2C. Os dados que usam este protocolo são transmitidos por apenas dois fios, e quanto menos fios no caso, melhor, por isso é muito adequado para nós.Mas! Existem módulos com protocolo SPI e até com comutação de protocolo, portanto tome cuidado ao adquirir este módulo.
Pinos usados:
Display OLED - SCL/SCK (relógio) e SDA (dados), potência “Plus” (VCC) e potência “Minus” (GND).
Pinos usados:
Arduino UNO - SCL/SCK em A5 e SSD em A4, potência “Plus” (+5V) e potência “Minus” (GND).
Conectando o monitor ao Arduino:
Cada dispositivo no barramento I2C possui um endereço hexadecimal, não pode ser alterado, é cabeado, todo fabricante responsável deve indicá-lo em algum lugar da caixa ou nas instruções. Existem módulos com interruptores e jumpers que podem ser usados para alterar o endereço, mas... se os dispositivos forem ridiculamente baratos, então o fabricante pode não se preocupar em lidar com tal detalhe, então você terá que determiná-lo sozinho.
No total, até 127 endereços podem ser usados no barramento – 119 para dispositivos e 8 endereços de serviço. A comunicação é realizada nesses endereços. Existe um principal, também conhecido como Mestre, e existe um escravo, também conhecido como Escravo - os Mestres perguntam, os escravos respondem, tudo é simples.
Como nosso display OLED usa o protocolo de comunicação I2C e o endereço pode não ser especificado, tentaremos descobrir esse endereço nós mesmos.
Você pode fazer isso enviando um pequeno esboço para sua placa Arduino com o OLED conectado. MAS!
Não se apresse em enviar o esboço para o Arduino imediatamente! Vamos primeiro baixar os “drivers”, ou seja, vamos conectar as bibliotecas, e para fazer isso iremos imediatamente para a “Etapa No. 5”, e depois voltaremos e continuaremos.
Baixe CODE Finder_I2C_Hex_Address.ino, carregue para Arduino.
Abra “Port Monitor”, defina a velocidade para 9600 e se tudo estiver conectado corretamente o programa mostrará o endereço do dispositivo, no meu caso OLED com endereço 0x3F.
Para que tudo funcione corretamente e você não precise reinventar a roda, é necessário conectar algumas bibliotecas ao ambiente ArduinoIDE, a saber: ADAFRUIT GFX e ADAFRUIT SSD1306, são necessárias para que o Arduino possa se comunicar de forma independente com o display OLED.
Você pode incluir essas bibliotecas seguindo estas etapas.
Com as versões mais recentes das bibliotecas, meu display funcionou torto, isso pode ser devido à curvatura das minhas mãos, mas depois que instalei as primeiras versões dessas bibliotecas, tudo começou a parecer liso e bonito. Por alguma razão, as falas de Pushkin vêm à mente:
...e experiência, filha de erros difíceis,
e gênio, amigo dos paradoxos.
Outra maneira de instalar bibliotecas é encontrar, baixar e instalar você mesmo essas bibliotecas.
Para exemplo do Github:
https://github.com/adafruit/Adafruit-GFX-Library
https://github.com/adafruit/Adafruit_SSD1306
Estas são as mesmas bibliotecas Adafruit, mas bibliotecas semelhantes podem ser facilmente pesquisadas em motores de busca, a pedido do OLED I2C. Muitos entusiastas escrevem bibliotecas “para si próprios” e depois as publicam na web. Qual biblioteca usar depende de você.
Para que o display exiba letras russas, também são necessárias bibliotecas especiais, mas este é um tópico separado para um artigo separado.
Após a instalação das bibliotecas, você pode retornar ao passo 4 e finalmente descobrir o endereço hexadecimal do seu display.
Para verificar se tudo funciona conforme o esperado, execute o exemplo de teste do ArduinoIDE.
Por esta:
Vá para ARQUIVO > EXEMPLOS > SSD 1306 > Selecione 128x64 i2c
Se você receber "Erro", tente selecionar SSD 1306 > 128x32 i2c.
Se o "Erro" ocorrer novamente, tente alterar o endereço I2C na linha 61 do código de demonstração e substitua-o pelo endereço do seu display que você determinou na etapa 4.
Se o erro ocorrer novamente, você pode tentar editar o arquivo Adafruit_SSD1306.h, ele está localizado na pasta de bibliotecas do Arduino.
Abra o arquivo Adafruit_SSD1306.h em um editor de texto e encontre as linhas:
Remova o comentário da linha:
Deveria ficar assim:
Se o erro ocorrer novamente, será necessário verificar as conexões corretas.
Assim que o download for concluído, você verá uma animação de teste na tela, o que significa que configurou seu display OLED com sucesso.
Depois de desfrutar completamente desta animação, você pode passar para a próxima etapa.
Para escrever sua própria mensagem, primeiro crie um novo esboço no ambiente de programação ArduinoIDE.
No cabeçalho incluímos 4 bibliotecas:
Então escrevemos o protocolo de redefinição:
No VOID SETUP indicamos o endereço hexadecimal do nosso display 0x3C, que aprendemos no “Passo No. 4”.
Em seguida, inicializamos o display e o limpamos:
A seguir, em VOID LOOP escrevemos o código principal, ou seja, a nossa mensagem que queremos exibir no display.
Para fazer isso, descrevemos o tamanho do texto, a cor do texto, a posição do cursor e, por fim, exibimos a mensagem usando o comando println:
No final não esqueça de escrever display.displaypara que a imagem seja exibida na tela, caso contrário você ficará vazio.
Se você fez tudo corretamente, uma mensagem aparecerá nos displays.
Aqui está o CÓDIGO Starting_with_Arduino_OLED.ino do nosso programa:
Olá! Sendo um entusiasta amador da electrónica, tenho a certeza que tudo o que fazemos - brinquedos electrónicos - produtos caseiros, ou grandes projectos - é tudo por curiosidade e preguiça. A curiosidade se esforça para compreender e compreender o vasto e desconhecido, para descobrir como ali funciona, o que faz, como se move. E a preguiça inventa alguma coisa para inventar, para não se levantar, para não se aproximar, para não levantar, para não se sujar ou qualquer outra coisa importante.
Como ver informações é melhor do que descobrir o que está para acontecer em nosso dispositivo, ou já aconteceu, ou está acontecendo, com certeza desejaremos receber essas informações mais úteis de nossos microcontroladores, sensores ou outros dispositivos. E de qualquer forma, quero receber mensagens, como perguntas, avisos, lembretes, emoticons, estrelas, corações e assim por diante.
Para aqueles que também desejam o mesmo, aqui está um breve guia para conectar e testar telas OLED pequenas e baratas.
A seguir falaremos sobre um dos modelos de display OLED amplamente disponíveis para rádios amadores, controlado pelo chip SSD1306, com tela de 0,96 polegadas e resolução de 128 * 64 ou 128 * 32 pixels. Esses monitores são ideais para pequenos projetos de rádio amador e projetos caseiros.
Etapa 1: Conceitos Básicos
Iremos conectá-lo ao Arduino UNO / NANO, e também iremos programá-lo através do Arduino.
- OLED é um Diodo Emissor de Luz Orgânico, ou seja, um dispositivo semicondutor feito de compostos orgânicos que começa a emitir luz quando uma corrente elétrica passa por ele.
- ARDUINO é uma plataforma para treinamento e construção de sistemas de automação e robótica.
- ArduinoIDE - ambiente de desenvolvimento. Este é um programa de programação Arduino gratuito.
- I2C – Circuitos Interintegrados, linha de comunicação entre chips.
- Sketch, também conhecido como código, também conhecido como programa - terminologia do Arduino.
Siga as instruções para entender como conectar e configurar corretamente o display OLED ao Arduino e como exibir uma mensagem personalizada em seu display.
Fazemos tudo passo a passo.
Etapa 2: Acessórios
Precisamos apenas de quatro coisas:
- 1. O display OLED em si tem 0,96” (você pode comprá-lo no Aliexpress ou Ebay, é longo, mas barato!).
- 2. Arduino UNO/Nano (mesmo local do display).
- 3. Conectando fios (ibid.).
- 4. Computador ou laptop com ArduinoIDE instalado.
Em geral, comprar peças para vários projetos no Aliexpress e no Ebay é uma coisa muito legal, enquanto você está trabalhando em um projeto, peças para outro já estão a caminho. O principal é não esquecer de fazer o pedido.
Etapa 3: Conectando o monitor
A tela é controlada por um chip SSD1306, que suporta cinco protocolos de comunicação, um dos quais é I2C. Os dados que usam este protocolo são transmitidos por apenas dois fios, e quanto menos fios no caso, melhor, por isso é muito adequado para nós.Mas! Existem módulos com protocolo SPI e até com comutação de protocolo, portanto tome cuidado ao adquirir este módulo.
Pinos usados:
Display OLED - SCL/SCK (relógio) e SDA (dados), potência “Plus” (VCC) e potência “Minus” (GND).
Pinos usados:
Arduino UNO - SCL/SCK em A5 e SSD em A4, potência “Plus” (+5V) e potência “Minus” (GND).
Conectando o monitor ao Arduino:
- Vcc - 5V
- GND - GND
- SDA-A4
- SCL-A5
Etapa 4: scanner I2C
Cada dispositivo no barramento I2C possui um endereço hexadecimal, não pode ser alterado, é cabeado, todo fabricante responsável deve indicá-lo em algum lugar da caixa ou nas instruções. Existem módulos com interruptores e jumpers que podem ser usados para alterar o endereço, mas... se os dispositivos forem ridiculamente baratos, então o fabricante pode não se preocupar em lidar com tal detalhe, então você terá que determiná-lo sozinho.
No total, até 127 endereços podem ser usados no barramento – 119 para dispositivos e 8 endereços de serviço. A comunicação é realizada nesses endereços. Existe um principal, também conhecido como Mestre, e existe um escravo, também conhecido como Escravo - os Mestres perguntam, os escravos respondem, tudo é simples.
Como nosso display OLED usa o protocolo de comunicação I2C e o endereço pode não ser especificado, tentaremos descobrir esse endereço nós mesmos.
Você pode fazer isso enviando um pequeno esboço para sua placa Arduino com o OLED conectado. MAS!
Não se apresse em enviar o esboço para o Arduino imediatamente! Vamos primeiro baixar os “drivers”, ou seja, vamos conectar as bibliotecas, e para fazer isso iremos imediatamente para a “Etapa No. 5”, e depois voltaremos e continuaremos.
Etapa 4: Continuação:
Baixe CODE Finder_I2C_Hex_Address.ino, carregue para Arduino.
Abra “Port Monitor”, defina a velocidade para 9600 e se tudo estiver conectado corretamente o programa mostrará o endereço do dispositivo, no meu caso OLED com endereço 0x3F.
Etapa 5: Baixe e conecte bibliotecas
Para que tudo funcione corretamente e você não precise reinventar a roda, é necessário conectar algumas bibliotecas ao ambiente ArduinoIDE, a saber: ADAFRUIT GFX e ADAFRUIT SSD1306, são necessárias para que o Arduino possa se comunicar de forma independente com o display OLED.
Você pode incluir essas bibliotecas seguindo estas etapas.
- 1. No ArduinoIDE, acesse o menu Sketch.
- 2. Selecione “Incluir Bibliotecas”.
- 3.Selecione “Gerenciar Bibliotecas”.
- 4. Encontre ADAFRUIT GFX e instale-os.
- 5. Encontre ADAFRUIT SSD1306 e instale-os.
Com as versões mais recentes das bibliotecas, meu display funcionou torto, isso pode ser devido à curvatura das minhas mãos, mas depois que instalei as primeiras versões dessas bibliotecas, tudo começou a parecer liso e bonito. Por alguma razão, as falas de Pushkin vêm à mente:
...e experiência, filha de erros difíceis,
e gênio, amigo dos paradoxos.
Outra maneira de instalar bibliotecas é encontrar, baixar e instalar você mesmo essas bibliotecas.
Para exemplo do Github:
https://github.com/adafruit/Adafruit-GFX-Library
https://github.com/adafruit/Adafruit_SSD1306
Estas são as mesmas bibliotecas Adafruit, mas bibliotecas semelhantes podem ser facilmente pesquisadas em motores de busca, a pedido do OLED I2C. Muitos entusiastas escrevem bibliotecas “para si próprios” e depois as publicam na web. Qual biblioteca usar depende de você.
Para que o display exiba letras russas, também são necessárias bibliotecas especiais, mas este é um tópico separado para um artigo separado.
Após a instalação das bibliotecas, você pode retornar ao passo 4 e finalmente descobrir o endereço hexadecimal do seu display.
Etapa 6: teste de exibição
Para verificar se tudo funciona conforme o esperado, execute o exemplo de teste do ArduinoIDE.
Por esta:
Vá para ARQUIVO > EXEMPLOS > SSD 1306 > Selecione 128x64 i2c
Se você receber "Erro", tente selecionar SSD 1306 > 128x32 i2c.
Se o "Erro" ocorrer novamente, tente alterar o endereço I2C na linha 61 do código de demonstração e substitua-o pelo endereço do seu display que você determinou na etapa 4.
Se o erro ocorrer novamente, você pode tentar editar o arquivo Adafruit_SSD1306.h, ele está localizado na pasta de bibliotecas do Arduino.
Abra o arquivo Adafruit_SSD1306.h em um editor de texto e encontre as linhas:
//#define SSD1306_128_64
#define SSD1306_128_32
// #define SSD1306_96_16
Remova o comentário da linha:
#define SSD1306_128_64.
Deveria ficar assim:
#define SSD1306_128_64
//#define SSD1306_128_32
// #define SSD1306_96_16
Se o erro ocorrer novamente, será necessário verificar as conexões corretas.
Assim que o download for concluído, você verá uma animação de teste na tela, o que significa que configurou seu display OLED com sucesso.
Depois de desfrutar completamente desta animação, você pode passar para a próxima etapa.
Passo 7: Escreva sua própria mensagem
Para escrever sua própria mensagem, primeiro crie um novo esboço no ambiente de programação ArduinoIDE.
No cabeçalho incluímos 4 bibliotecas:
#incluir <SPI.h>
#include <Wire.h>
#incluir <Adafruit_GFX.h>
#incluir <Adafruit_SSD1306.h>
Então escrevemos o protocolo de redefinição:
#define OLED_RESET 4
Tela Adafruit_SSD1306 (OLED_RESET);
No VOID SETUP indicamos o endereço hexadecimal do nosso display 0x3C, que aprendemos no “Passo No. 4”.
Em seguida, inicializamos o display e o limpamos:
display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
display.clearDisplay();
A seguir, em VOID LOOP escrevemos o código principal, ou seja, a nossa mensagem que queremos exibir no display.
Para fazer isso, descrevemos o tamanho do texto, a cor do texto, a posição do cursor e, por fim, exibimos a mensagem usando o comando println:
display.setTextSize(2);
display.setTextColor(BRANCO);
display.setCursor(0,0);
display.println("Muito bem!");
display.display();
No final não esqueça de escrever display.displaypara que a imagem seja exibida na tela, caso contrário você ficará vazio.
Se você fez tudo corretamente, uma mensagem aparecerá nos displays.
Aqui está o CÓDIGO Starting_with_Arduino_OLED.ino do nosso programa:
código.zip
[946 b] (downloads: 4908)
Master classes semelhantes
Particularmente interessante
Comentários (10)