Raspberry Pi é uma placa baseada em processador de arquitetura ARM projetada para engenheiros eletrônicos e amadores. O PI é uma das plataformas de desenvolvimento de projeto mais confiáveis que existe agora. Com maior velocidade do processador e 1 GB de RAM, o PI pode ser usado para muitos projetos de alto perfil, como processamento de imagem e IoT.
Para fazer qualquer um dos projetos de alto nível, é necessário compreender as funções básicas do PI. Estaremos cobrindo todas as funcionalidades básicas do Raspberry Pi nestes tutoriais. Em cada tutorial, discutiremos uma das funções do PI. Ao final desta série de tutoriais do Raspberry Pi, você será capaz de realizar projetos de alto nível sozinho. Passe pelos tutoriais abaixo:
- Primeiros passos com Raspberry Pi
- Configuração Raspberry Pi
- LED piscando
- Interface de botão
- Geração PWM
- Motor DC de controle
- Controle de motor de passo
- Interfacing Shift Register
- Tutorial do Raspberry Pi ADC
- Controle servo motor
- Touch Pad capacitivo
Neste tutorial, controlaremos uma tela LCD 16x2 usando Raspberry Pi. Iremos conectar o LCD aos pinos GPIO (General Purpose Input Output) do PI para exibir os caracteres nele. Vamos escrever um programa em PYTHON para enviar os comandos apropriados para o LCD através do GPIO e exibir os caracteres necessários em sua tela. Esta tela será útil para exibir os valores do sensor, status de interrupção e também para exibir o tempo.
Existem diferentes tipos de LCDs no mercado. O LCD gráfico é mais complexo do que o LCD 16x2. Então, aqui estamos indo para um display LCD 16x2, você pode até usar um LCD 16x1 se quiser. 16x2 LCD tem 32 caracteres no total, 16 em 1 r linha e outro 16 em 2 nd linha. JHD162 é um LCD de 16x2 caracteres do Módulo LCD. Já conectamos o LCD 16x2 com 8051, AVR, Arduino etc. Você pode encontrar todos os nossos projetos relacionados ao LCD 16x2 seguindo este link.
Discutiremos um pouco sobre o PI GPIO antes de prosseguir.
Existem 40 pinos de saída GPIO no Raspberry Pi 2. Mas de 40, apenas 26 pinos GPIO (GPIO2 a GPIO27) podem ser programados. Alguns desses pinos executam algumas funções especiais. Com GPIO especial colocado de lado, temos 17 GPIO restantes.
Existem pinos de saída de energia de + 5V (pino 2 ou 4) e + 3,3V (pino 1 ou 17) na placa, que são para conectar outros módulos e sensores. Vamos alimentar o LCD 16 * 2 através do barramento de + 5V. Podemos enviar sinal de controle de + 3.3v para o LCD, mas para funcionar do LCD precisamos alimentá-lo em + 5V. O LCD não funcionará com + 3,3V.
Para saber mais sobre os pinos GPIO e suas saídas de corrente, vá até: LED piscando com Raspberry Pi
Componentes necessários:
Aqui, estamos usando o Raspberry Pi 2 Model B com o Raspbian Jessie OS. Todos os requisitos básicos de hardware e software foram discutidos anteriormente. Você pode consultá-los na introdução do Raspberry Pi, exceto o que precisamos:
- Pinos de conexão
- Módulo 16 * 2 LCD
- 1KΩresistor (2 peças)
- Pote de 10K
- Capacitor 1000µF
- Tábua de pão
Circuito e explicação de funcionamento:
Conforme mostrado no diagrama de circuito, fizemos a interface do Raspberry Pi com o display LCD conectando 10 pinos GPIO de PI aos pinos de controle e transferência de dados do LCD 16 * 2. Usamos os pinos 21, 20, 16, 12, 25, 24, 23 e 18 do GPIO como um BYTE e criamos a função 'PORT' para enviar dados ao LCD. Aqui, GPIO 21 é LSB (bit menos significativo) e GPIO18 é MSB (bit mais significativo).
O módulo LCD 16x2 possui 16 pinos, que podem ser divididos em cinco categorias, pinos de alimentação, pino de contraste, pinos de controle, pinos de dados e pinos de luz de fundo. Aqui está uma breve descrição sobre eles:
Categoria |
PIN NO. |
Nome do Pin |
Função |
Pinos de energia |
1 |
VSS |
Pino de aterramento, conectado ao aterramento |
2 |
VDD ou Vcc |
Pino de tensão + 5V |
|
Pino de contraste |
3 |
V0 ou VEE |
Configuração de contraste, conectado ao Vcc por meio de um resistor variável. |
Pinos de controle |
4 |
RS |
Registrar Selecionar Pin, RS = 0 modo de comando, RS = 1 modo de dados |
5 |
RW |
Pino de leitura / gravação, RW = 0 modo de gravação, RW = 1 modo de leitura |
|
6 |
E |
Habilitar, um pulso alto a baixo precisa habilitar o LCD |
|
Pinos de dados |
7-14 |
D0-D7 |
Pinos de dados, armazena os dados a serem exibidos no LCD ou nas instruções de comando |
Pinos de luz de fundo |
15 |
LED + ou A |
Para alimentar a luz de fundo + 5V |
16 |
LED- ou K |
Backlight Ground |
É altamente recomendável ler este artigo para entender o funcionamento do LCD com seus pinos e comandos hexadecimais.
Discutiremos brevemente o processo de envio de dados ao LCD:
1. E é definido como alto (habilitando o módulo) e RS é definido como baixo (informando ao LCD que estamos dando o comando)
2. Atribuindo o valor 0x01 à porta de dados como um comando para limpar a tela.
3. E está definido como alto (habilitando o módulo) e RS está definido como alto (informando ao LCD que estamos fornecendo dados)
4. A prova do código ASCII para os caracteres precisa ser exibida.
5. E está definido como baixo (informa ao LCD que terminamos o envio de dados)
6. Assim que o pino E ficar baixo, o LCD processa os dados recebidos e mostra o resultado correspondente. Portanto, este pino é definido como alto antes de enviar dados e puxado para baixo após o envio de dados.
Como disse vamos enviar os personagens um após o outro. Os caracteres são fornecidos ao LCD por códigos ASCII (código padrão americano para intercâmbio de informações). A tabela de códigos ASCII é mostrada abaixo. Por exemplo, para mostrar um caractere “@”, precisamos enviar um código hexadecimal “40”. Se atribuirmos o valor 0x73 ao LCD, ele exibirá “s”. Assim enviaremos os códigos apropriados ao LCD para exibir a string “ CIRCUITDIGEST ”.
Explicação de programação:
Depois que tudo estiver conectado de acordo com o diagrama de circuito, podemos ligar o PI para escrever o programa em PYHTON.
Vamos falar sobre alguns comandos que vamos usar no programa PYHTON, Vamos importar o arquivo GPIO da biblioteca, a função abaixo nos permite programar os pinos GPIO do PI. Também estamos renomeando “GPIO” para “IO”, portanto, no programa, sempre que quisermos nos referir aos pinos GPIO, usaremos a palavra 'IO'.
importar RPi.GPIO como IO
Às vezes, quando os pinos GPIO, que estamos tentando usar, podem estar executando algumas outras funções. Nesse caso, receberemos avisos durante a execução do programa. O comando abaixo diz ao PI para ignorar os avisos e prosseguir com o programa.
IO.setwarnings (falso)
Podemos referir os pinos GPIO do PI, tanto pelo número do pino a bordo quanto pelo número da função. Como 'PIN 29' na placa é 'GPIO5'. Portanto, dizemos aqui que vamos representar o pino aqui por '29' ou '5'.
IO.setmode (IO.BCM)
Estamos definindo 10 pinos GPIO como pinos de saída, para pinos de dados e controle do LCD.
IO.setup (6, IO.OUT) IO.setup (22, IO.OUT) IO.setup (21, IO.OUT) IO.setup (20, IO.OUT) IO.setup (16, IO.OUT) IO.setup (12, IO.OUT) IO.setup (25, IO.OUT) IO.setup (24, IO.OUT) IO.setup (23, IO.OUT) IO.setup (18, IO.OUT)
enquanto 1: o comando é usado como um loop contínuo, com este comando as instruções dentro deste loop serão executadas continuamente.
Todas as outras funções e comandos foram explicados na seção 'Código' abaixo com a ajuda de 'Comentários'.
Depois de escrever o programa e executá-lo, o Raspberry Pi envia os caracteres para o LCD um por um e o LCD exibe os caracteres na tela.