Todo radioamador, depois de um simples trabalho de bricolage, chega ao objetivo de construir algo grandioso usando sensores e botões. Afinal, é muito mais interessante exibir dados no monitor do que no monitor da porta. Mas então surge a pergunta: qual tela escolher? E, em geral, como conectá-lo, o que é necessário para se conectar? As respostas a essas perguntas serão discutidas neste artigo.
LCD 1602
Entre as muitas opções entre os monitores, gostaria de destacar o monitor LCD1602 baseado no controlador HD4478. Há esta tela em duas cores: letras brancas sobre fundo azul, letras pretas sobre fundo amarelo. Conectar o LCD 1602 ao Arduino também não causará problemas, pois há uma biblioteca integrada e você não precisa baixar nada extra. As telas diferem não apenas no preço, mas também no tamanho. Freqüentemente, os radioamadores usam 16x 2, ou seja, 2 linhas de 16 caracteres. Mas também há 20 x 4, onde há 4 linhas de 20 caracteres. Dimensões e cores não desempenham nenhum papel na conexão do display lcd 1602 ao Arduno, eles são conectados da mesma maneira. O ângulo de visão é de 35 graus, o tempo de resposta da tela é de 250 ms. Pode trabalhar em temperaturas de -20 a 70 graus Celsius. Ao trabalhar, usa 4 mA para a tela e 120 mA para a luz de fundo.
Onde é usado?
Esta tela tem sua popularidade não apenas entre os radioamadores, mas também entre os grandes fabricantes. Por exemplo, impressoras, máquinas de café também usam LCD1602. Isso se deve ao seu baixo preço, essa exibição custa de 200 a 300 rublos em sites chineses. Vale a pena comprar lá, pois em nossas lojas as margens para esse display são muito altas.
Conectar ao Arduino
Conectar o LCD 1602 ao Arduino Nano e Uno não é diferente. Você pode trabalhar com o display em dois modos: 4 bits e 8. Ao trabalhar com um display de 8 bits, são usados os bits inferiores e superiores, e com um de 4 bits, apenas os inferiores. Não há nenhum ponto específico em trabalhar com 8 bits, pois serão adicionados mais 4 contatos para conectar, o que não é aconselhável, pois a velocidade não será maior, o limite de atualização do display é de 10 vezes por segundo. Em geral, muitos fios são usados para conectar o lcd 1602 ao Arduino, o que causa algum transtorno, mas existem blindagens especiais, mas falaremos mais sobre isso depois. A foto mostra a conexão do display ao Arduino Uno:
Exemplo de código:
include //Adicione a biblioteca necessária LiquidCrystal lcd(7, 6, 5, 4, 3, 2); // (RS, E, DB4, DB5, DB6, DB7) void setup(){ lcd.begin(16, 2); // Definir dimensão da tela lcd.setCursor(0, 0); // Coloca o cursor no início da linha 1 lcd.print("Hello, world!"); // Mostra o texto lcd setCursor(0, 1); // Coloca o cursor no início da linha 2 lcd.print("fb.ru"); // Texto de saída } void loop(){ }
O que o código faz? Em primeiro lugar, a biblioteca para trabalhar com a tela está conectada. Como mencionado acima, esta biblioteca já está incluída no IDE do Arduino e você não precisa baixá-la e instalá-la adicionalmente. Em seguida, são definidos os contatos que estão conectados aos pinos: RS, E, DB4, DB5, DB6, DB7, respectivamente. Em seguida, o tamanho da tela é definido. Como estamos trabalhando com uma versão com 16 caracteres e 2 linhas, escrevemos esses valores. Colocamos o cursor no início da primeira linha e exibimos nosso primeiro texto Hello World. Em seguida, coloque o cursor na segunda linha e exiba o nome do site. Isso é tudo! A conexão do lcd 1602 ao Arduino Uno foi considerada.
O que é I2C e por que é necessário?
Como mencionado acima, conectar o display requer muitos pinos. Por exemplo, ao trabalhar com vários sensores e um display LCD, os contatos 1602 podem simplesmente não ser suficientes. Muitas vezes, os radioamadores utilizam as versões Uno ou Nano, onde não há muitos contatos. Então as pessoas criaram escudos especiais. Por exemplo, I2C. Ele permite que você conecte a tela com apenas 4 pinos. Isso é duas vezes menos. O módulo I2C é vendido separadamente, onde você mesmo precisa soldar, e já soldado paraVisor LCD 1602.
Conexão com módulo I2C
Conectar o LCD 1602 ao Arduino Nano com I2C ocupa pouco espaço, apenas 4 pinos: terra, alimentação e 2 saídas de dados. Conectamos energia e terra a 5V e GND no Arduino, respectivamente. Os dois contatos restantes: SCL e SDA são conectados a qualquer pino analógico. Na foto você pode ver um exemplo de conexão do lcd 1602 ao arduino com módulo I2C:
Código do programa
Se for necessário usar apenas uma biblioteca para trabalhar com um display sem módulo, então são necessárias duas bibliotecas para trabalhar com um módulo. Um deles já está na IDE do Arduino - Wire. Outra biblioteca, LiquidCrystal I2C, precisa ser baixada separadamente e instalada. Para instalar a biblioteca no Arduino, o conteúdo do arquivo baixado deve ser carregado na pasta raiz Bibliotecas. Exemplo de código usando I2C:
include include LiquidCrystal_I2C lcd(0x27, 16, 2); // Configura a tela void setup() { lcd.init(); lcd.backlight();// Liga a luz de fundo do display lcd.print("FB.ru"); lcd.setCursor(8, 1); lcd.print("LCD 1602"); } void loop() { // Coloca o cursor na segunda linha e caractere nulo. lcd.setCursor(0, 1); // Imprime o número de segundos desde que o arduino iniciou lcd.print(millis()/1000); }
Como você pode ver, o código é quase o mesmo.
Como adiciono meu próprio símbolo?
O problema com esses displays é que não hásuporte para cirílico e símbolos. Por exemplo, você precisa carregar algum caractere no display para que ele possa refleti-lo. Para fazer isso, a tela permite que você crie até 7 de seus personagens. Apresente a tabela:
0 | 0 | 0 | 1 | 0 |
0 | 0 | 0 | 0 | 1 |
1 | 1 | 0 | 0 | 1 |
0 | 0 | 0 | 0 | 1 |
1 | 1 | 0 | 0 | 1 |
0 | 0 | 0 | 0 | 1 |
0 | 0 | 0 | 1 | 0 |
0 | 0 | 0 | 0 | 0 |
Se 0 - não há nada lá, se 1 - é uma área sombreada. No exemplo acima, você pode ver a criação do personagem "smiley sorridente". Usando um programa de exemplo no Arduino, ficaria assim:
include include // Incluir a biblioteca necessária // Símbolo de sorriso bitmask byte smile[8]={ B00010, B00001, B11001, B00001, B11001, B00001, B00010, }; LiquidCrystal lcd(7, 6, 5, 4, 3, 2); // (RS, E, DB4, DB5, DB6, DB7) void setup(){ lcd.begin(16, 2); // Configura a dimensão da tela lcd.createChar(1, smile); // Cria o caractere número 1 lcd.setCursor(0, 0); // Coloca o cursor no início da linha 1 lcd.print("\1"); // Mostra o smiley (caractere número 1) - "\1" } void loop(){ }
Como você pode ver, foi criadoa máscara de bits é a mesma da tabela. Uma vez criado, ele pode ser enviado como uma variável para o display. Lembre-se que apenas 7 caracteres podem ser armazenados na memória. Em princípio, isso é suficiente. Por exemplo, se você quiser mostrar o símbolo de grau.
Problemas em que a tela pode não funcionar
Há momentos em que o display não funciona. Por exemplo, ele liga, mas não mostra caracteres. Ou não liga de jeito nenhum. Primeiro, veja se você conectou os contatos corretamente. Se você costumava conectar o lcd 1202 ao Arduino sem I2C, é muito fácil ficar emaranhado nos fios, o que pode fazer com que o display funcione incorretamente. Você também deve certificar-se de que o contraste da tela seja aumentado, pois com contraste mínimo não é visível se o LCD 1602 está ligado ou não. Se isso não ajudar, talvez o problema esteja na soldagem dos contatos, isso é ao usar o módulo I2C. Além disso, um motivo comum pelo qual a tela pode não funcionar é a configuração incorreta do endereço I2C. O fato é que existem muitos fabricantes e eles podem definir um endereço diferente, você precisa corrigi-lo aqui:
LiquidCrystal_I2C lcd(0x27, 16, 2);
Entre parênteses você pode ver dois valores, 0x27 e 16, 2 (16, 2 é o tamanho da tela e 0x27 é apenas o endereço I2C). Em vez desses valores, você pode tentar colocar 0x37 ou 0x3F. Bem, outro motivo é simplesmente um LCD 1602 com defeito. Considerando que quase tudo para Arduino é feito na China, você não pode ter 100% de certeza de que o produto adquiridoo produto não está com defeito.
LCD 1602 prós e contras
Vamos ver os prós e contras do LCD 1602.
Pros
- Preço. Este módulo pode ser adquirido a um preço bastante acessível em lojas chinesas. O preço é de 200-300 rublos. Às vezes até vendido com um módulo I2C.
- Fácil de conectar. Provavelmente ninguém conecta um LCD 1602 sem I2C nos dias de hoje. E com este módulo, a conexão leva apenas 4 pinos, não haverá "teias" de fios.
- Programação. Graças às bibliotecas prontas, trabalhar com este módulo é fácil, todas as funções já estão registradas. E se você precisar adicionar seu personagem, leva apenas alguns minutos.
Contras
Durante o tempo de uso por milhares de radioamadores, não foram identificados grandes pontos negativos, apenas há casos de compra de um casamento, já que as opções de exibição chinesas são usadas principalmente
Este artigo discutiu como conectar o display LCD 1602 ao Arduino, e também apresentou exemplos de programas para trabalhar com este display. Realmente é um dos melhores da categoria, não é só que milhares de radioamadores o escolhem para seus projetos!