Índice:

Display de dois dígitos usando matriz única de LED 8x8: 3 etapas
Display de dois dígitos usando matriz única de LED 8x8: 3 etapas

Vídeo: Display de dois dígitos usando matriz única de LED 8x8: 3 etapas

Vídeo: Display de dois dígitos usando matriz única de LED 8x8: 3 etapas
Vídeo: Display 7 Segmentos 1 Dígito - Curso de Arduino #67 2024, Dezembro
Anonim
Display de dois dígitos usando matriz única de LED 8x8
Display de dois dígitos usando matriz única de LED 8x8

Aqui, gostaria de construir um indicador de temperatura e umidade para meu quarto. Usei um único LED Matrix 8x8 para exibir números de dois dígitos e acho que essa parte do projeto se tornou mais útil. Embalei o final construído usando uma caixa de papelão, pintada como madeira.

Suprimentos

  1. Arduino Nano x1
  2. Sensor de Temperatura e Umidade DHT11 x1
  3. Matriz 8x8 LED com MAX7219 x1
  4. 10K resistor x1
  5. Fios de cabeçalho
  6. Fonte de alimentação 5V x1
  7. Caixa de papelão (4x8x13 cm)

Etapa 1: Esquemático

Esquemático
Esquemático

O sensor digital de temperatura e umidade DHT11 fornece temperaturas entre 0 - 50 ° C e umidade entre 20% e 90%. A precisão da temperatura é de ± 2 ° C (máximo) e a precisão da umidade é de ± 5%.

O DHT11 também fornece valores de ponto de orvalho. O ponto de orvalho é a temperatura à qual o ar deve ser resfriado para ficar saturado com vapor d'água. Quando ainda mais resfriado, o vapor de água no ar se condensará para formar água líquida.

Etapa 2: Fiação e encaixotamento

Fiação e boxe
Fiação e boxe
Fiação e boxe
Fiação e boxe
Fiação e boxe
Fiação e boxe
Fiação e boxe
Fiação e boxe

Primeiro pintei a caixa de papelão com tinta acrílica e depois de secar por 1 dia acabei com um spray de cabelo. Fiz uma janela quadrada para display de LED na capa. Também abri um pequeno orifício retangular para a fonte de alimentação do Arduino Nano e coloquei vários orifícios perto do sensor DHT11.

Fixei o Arduino no canto da caixa principal usando uma pequena caixa e silicone quente.

Coloquei a matriz de LED na janela usando tiras de fita transparente. Aqui é importante posicioná-lo com uma rotação de 90 ° no sentido anti-horário porque o código usará as 4 linhas superiores para dígitos das dezenas e as 4 linhas inferiores para dígitos unitários. Para o módulo que usei, o lado com MAX7219 deve ficar do lado da base.

Como coloquei o Arduino e o sensor no lado do fechamento da caixa, não consegui fechá-lo totalmente? É melhor você selecionar o outro lado:).

Etapa 3: Código

Código
Código
Código
Código
Código
Código

Primeiro carregue a biblioteca para DHT11 (https://github.com/adidax/dht11) e matriz de LED (https://github.com/wayoda/LedControl) se ainda não o fez.

O código usa as primeiras 4 linhas da matriz de LED como dezenas e as últimas 4 linhas como unidades. Assim, por exemplo, se você verificar o código "um", verá "11" girado 90 ° no sentido horário. Se você quiser alterar esses códigos, tome cuidado com esses detalhes.

byte um = {B00000000, B01000100, B01111100, B01000000, B00000000, B01000100, B01111100, B01000000};

Os códigos para obter os dígitos da leitura do sensor são:

unidades = úmido% 10; dezenas = (úmido / 10)% 10;

Para dezenas de dígitos, o loop for funciona da seguinte forma:

if (dezenas == 1) {para (int c = 0; c <4; c ++) {lc.setRow (0, c, um [c]); }

Para unidades de dígito, o loop for é executado da seguinte forma:

if (unidades == 1) {para (int c = 4; c <8; c ++) {lc.setRow (0, c, um [c]); }

A ordem de exibição está em loop da seguinte forma:

"° C" -> temperatura -> "hum" -> umidade -> "dp" -> ponto de orvalho -> significado do ponto de orvalho (explicado abaixo)

Tenho algumas informações sobre como as pessoas sentem o clima de acordo com o ponto de orvalho e as coloco no código da seguinte maneira:

dp <10: seco

9 <dp <15: bom (g..d)

14 <dp <18: Sueco (sw)

17 <dp <24: Sweltry plus (sw +)

dp> 23: molhado

A tela para essas palavras não é boa, mas ainda assim compreensível para uma única tela 8x8

Recomendado: