Exposição:A Tela Primária
Exposição:O Display Primal Este protip muito simples conecta um LCD a um Raspberry Pi para exibir todos os dados de que você precisa, como leituras de um sensor de temperatura.
História
Introdução
LCD é um complemento muito útil para qualquer projeto. Este protocolo muito simples conecta o LCD ao Raspberry Pi para exibir todos os dados de que você precisa. Em nosso caso, exibiremos as leituras de um sensor de temperatura.
Hardware
Precisamos de um LCD compatível com HDD44780 barato, Raspberry Pi 3 e sensor de temperatura e umidade DHT11, cartão micro SD e fonte de alimentação, 1-2 potenciômetros, placa de ensaio e alguns fios. LCD, placa de ensaio, fios, potenciômetros e sensor podem ser encontrados neste kit. Vamos conectar o LCD usando 6 pinos GPIO. Embora haja uma maneira de se conectar usando I2C, este é o método mais direto e tem benefícios importantes:
- Permite LCDs baratos para ser usado
- Não requer nenhum driver I2C
- Não roubará a única porta serial no Pi.
Ligando as coisas
Teremos duas opções de conexão à tela LCD:conexão simples de 4 bits com um potenciômetro para controlar o contraste e o brilho e uma conexão um pouco mais complexa de 8 bits com controle avançado sobre contraste e brilho com 2 potenciômetros. Os potenciômetros também podem ser substituídos por resistores de 1K ou 3K Ohm.
Cada caractere e comando é enviado ao LCD como um byte (8 bits) de dados. Portanto, no modo de 4 bits, o byte é dividido em dois conjuntos de 4 bits que são enviados um após o outro por 4 fios de dados. Em teoria, o modo de 8 bits transfere dados duas vezes mais rápido que o modo de 4 bits, uma vez que todo o byte é enviado de uma vez por 8 fios de dados. No entanto, o driver LCD leva um tempo relativamente longo para processar os dados, portanto, não importa qual modo está sendo usado, você não notará uma diferença real na velocidade de transferência de dados entre os modos de 8 e 4 bits.
Layout do pino de LCD
Os pinos de dados (DB0-7 pinos 7-14) são diretos. Eles estão enviando dados para o display (alternado para alto / baixo). Usaremos apenas o modo de gravação e não leremos nenhum dado.
O selectpin de registro (RS pino 4) tem dois usos. Quando puxado para baixo, pode enviar comandos ao LCD (como a posição para a qual mover ou limpar a tela). Isso é conhecido como escrever na instrução ou no registro de comando ou enviar dados para a tela.
O ler / escrever (R / W pino 5) será puxado para baixo (somente gravação), visto que somente gravamos no LCD neste protocolo.
O enablepin (E pino 6) será alternado para gravar dados nos registradores.
Conexão LCD simples
- O pino nº 1 do LCD vai para o aterramento (fio preto)
- O pino 2 do LCD vai para + 5V (fio vermelho)
- O pino 3 (Vo) se conecta ao meio do potenciômetro (fio laranja)
- Pino nº 4 (RS) conecta-se ao Cobbler nº 37 (fio amarelo)
- O pino 5 (RW) vai para o aterramento (fio preto)
- O pino # 6 (EN) conecta-se ao Cobbler # 35 (fio laranja)
- Pule os pinos de LCD nº 7, nº 8, nº 9 e nº 10
- O pino 11 (D4) se conecta ao sapateiro 33 (fio branco)
- Pino nº 12 (D5) conecta-se ao Cobbler nº 31 (fio cinza)
- Pino # 13 (D6) conecta-se a Cobber # 29 (fio violeta)
- Pino # 14 (D7) conecta-se ao Cobber # 23 (fio azul)
- Pino # 15 (LED +) vai para + 5V (fio vermelho)
- Pino nº 16 (LED -) vai para o aterramento (fio preto)
Diagrama de circuito de conexão de LCD simples
Avançado Conexão LCD
- O pino nº 1 do LCD vai para o aterramento (fio preto)
- O pino 2 do LCD vai para + 5V (fio vermelho)
- O pino 3 (Vo) se conecta ao meio do potenciômetro (fio laranja)
- Pino nº 4 (RS) conecta-se ao Cobbler nº 37 (fio amarelo)
- O pino 5 (RW) vai para o aterramento (fio preto)
- O pino # 6 (EN) conecta-se ao Cobbler # 35 (fio laranja)
- O pino nº 7 (D0) conecta-se ao sapateiro nº 40 (fio azul)
- O pino nº 8 (D1) conecta-se ao sapateiro nº 38 (fio azul)
- Pino # 9 (D2) conecta ao sapateiro # 36 (fio azul)
- O pino # 10 (D3) se conecta ao sapateiro # 32 (fio azul)
- O pino 11 (D4) se conecta ao sapateiro 33 (fio branco)
- Pino nº 12 (D5) conecta-se ao Cobbler nº 31 (fio cinza)
- Pino # 13 (D6) conecta-se a Cobber # 29 (fio violeta)
- Pino # 14 (D7) conecta-se ao Cobber # 23 (fio azul)
- Pino # 15 (LED +) vai para + 5V (fio vermelho)
- Pino nº 16 (LED -) vai para o aterramento (fio preto)
Diagrama de circuito de conexão de LCD avançado
INTERESSANTE:
Agora temos 2 potenciômetros:o esquerdo é responsável pelo contraste e o direito é responsável pelo brilho. Você deve notar que removemos o fio de 5 V (vermelho) do potenciômetro de contraste, pois não há necessidade de manipulação de tensão adicional, pois temos um segundo potenciômetro responsável pelo brilho.
Conexão do sensor DHT11
Os sensores DHT11 podem ter opções de 3 ou 4 pinos, no entanto, não importa, pois ele usa apenas 3 pinos para ler os dados em qualquer caso, se você tiver sensor de 4 pinos, você precisa conectar apenas Vcc, Sinal / Pinos de dados e aterramento e ignore o 4º. Nos esquemas acima, você pode ver a conexão do sensor de 4 pinos.
Sensor DHT11:Opções de 3 e 4 pinos
IMPORTANTE:
O sensor DHT11 requer de 3,3 V a 5 V. Primeiro, vamos conectar o sensor DHT11 ao pino 1 de 3,3 V do Raspberry Pi, se funcionar, esta tensão é suficiente se as leituras forem estranhas ou não houver nenhuma leitura, tente conectá-lo ao pino 2 do Raspberry Pi de 5 V. Este protocolo usa 3,3 V.
Até agora tudo bem, depois de conectar os pinos Vcc e terra, precisamos conectar o conector de sinal do sensor ao pino físico 12 do Raspberry Pi (GPIO 18).
Bibliotecas necessárias
Antes de prosseguirmos para a codificação exata, precisamos verificar se temos bibliotecas necessárias para exibição e sensor e instalá-las se estiverem faltando.
Apenas para verificar (um pouco de paranóia :)), temos todas as coisas necessárias do Python:
sudo apt-get install build-essential python-dev
Biblioteca RPLCD Python
A biblioteca RPLCD pode ser instalada a partir do índice de pacotes Python ou PIP. Ele pode já estar instalado em seu Raspbian, mas se não, execute este comando para instalá-lo:
sudo apt-get install python-pip
Depois de instalar o PIP, instale a biblioteca RPLCD inserindo:
sudo pip install RPLCD
Biblioteca Adafruit DHT11 Python
Estamos usando a biblioteca Adafruit DHT11 Python. Você pode baixar a biblioteca usando Git, portanto, se você não tiver o Git instalado em seu Raspberry Pi, execute este comando:
sudo apt-get install git
Como alternativa, você pode tentar:
sudo apt-get install git-core
IMPORTANTE:
Se você receber um erro com a instalação alternativa do Git, execute:
sudo apt-get update
sudo apt-get install git-core
Agora, execute o comando para baixar a biblioteca do Git:
git clone https://github.com/adafruit/Adafruit_Python_DHT.git
Vá para o novo diretório com:
cd Adafruit_Python_DHT
E instale a biblioteca com:
sudo python setup.py install
Vamos passar para o script.
Script Python
Usaremos Python para programar nosso display e sensor. Eu uso o Visual Studio como IDE, mas você pode usar qualquer outra coisa com a qual preferir.
Primeiro, precisamos nos conectar ao Pi via SSH (com PuTTY, por exemplo). Em seguida, usaremos um script chamado temperature.py.
Para criar o script, podemos usar o editor nano. Depois de se conectar ao seu Pi, execute o seguinte comando para criar um arquivo chamado temperature.py:
sudo nano temperature.py
Em seguida, cole o código a seguir (opção de 8 bits) nesse arquivo e pressione CTRL-X para sair e Y para salvar quando solicitado.
#! / usr / bin / python
importar RPi.GPIO como GPIO
tempo de importação
importar Adafruit_DHT
de RPLCD importar CharLCD
# Chamamos um RPi.GPIO construído -na função GPIO.cleanup () para limpar todas as portas que usamos
GPIO.cleanup ()
# Agora configure os pinos do display LCD (modo de 8 bits)
lcd =CharLCD (numbering_mode =GPIO.BOARD, cols =16, rows =2, pin_rs =37, pin_e =35, pins_data =[40, 38, 36, 32, 33, 31, 29, 23])
# Obter senosr leituras e renderizá-las em um loop
enquanto True:
# Obter leituras do sensor
# IMPORTANTE:11 é o tipo de sensor (DHT11) e 18 é o número GPIO (ou pino físico 12)
umidade, temperatura =Adafruit_DHT.read_retry (11, 18)
print ('Temp:{0:0.1f} C Umidade:{1:0.1f}%'. formato (temperatura, umidade))
# Limpa e define a posição inicial do cursor para o display LCD
lcd.clear ()
lcd.cursor_pos =(0, 0)
# Renderizar leituras de temperatura
lcd.write_string (“ Temp:% d C ”% temperatura)
# Mova o cursor para a segunda linha
lcd.cursor_pos =(1, 0)
# Renderizar leituras de umidade
lcd.write_string (“Umidade:% d %%”% umidade)
# Pausa a execução por 5 segundos
time.sleep (5)
O exemplo acima usa a opção de conexão de 8 bits com os números de pinos físicos do Raspberry Pi para display LCD, não os números BCM ou GPIO. Estou assumindo que seu LCD está conectado da maneira que está nos diagramas acima, mas você sempre pode trocar os pinos se precisar. O código de conexão simples de 4 bits está anexado na seção Código.
Leia mais detalhes:Exposição:A Tela Primal
Processo de manufatura
- Rolling Pin
- Pino de boliche
- Tela de cristal líquido (LCD)
- Desenvolvimento de driver de dispositivo Linux:O subsistema de controle de pin
- O Drone Pi
- Dodge The Defs!
- 5 Ws da tela Braille portátil
- 74LS74:um guia completo do flip-flop duplo
- A Atlas Copco fará uma exposição na WIN Expo 2017
- A Atlas Copco exibirá na NPE2018:The Plastics Show