Sommario:

Display a due cifre che utilizza una singola matrice di LED 8x8: 3 passaggi
Display a due cifre che utilizza una singola matrice di LED 8x8: 3 passaggi

Video: Display a due cifre che utilizza una singola matrice di LED 8x8: 3 passaggi

Video: Display a due cifre che utilizza una singola matrice di LED 8x8: 3 passaggi
Video: Usare Matrici e Tabelle con Arduino - #49 2024, Luglio
Anonim
Display a due cifre che utilizza una singola matrice di LED 8x8
Display a due cifre che utilizza una singola matrice di LED 8x8

Qui vorrei costruire un indicatore di temperatura e umidità per la mia stanza. Ho usato una singola matrice LED 8x8 per visualizzare numeri a due cifre e penso che parte del progetto sia diventata più utile. Ho inscatolato il finale costruito utilizzando una scatola di cartone, dipinta come il legno.

Forniture

  1. Arduino Nano x1
  2. DHT11 Sensore di temperatura e umidità x1
  3. Matrice LED 8x8 con MAX7219 x1
  4. Resistenza da 10K x1
  5. Fili dell'intestazione
  6. Alimentazione 5V x1
  7. Scatola di cartone (4x8x13 cm)

Passaggio 1: Schema

Schema
Schema

Il sensore digitale di temperatura e umidità DHT11 fornisce temperature tra 0 - 50°C e umidità tra 20% e 90%. La precisione della temperatura è ±2°C (massimo) e la precisione dell'umidità è ±5%.

DHT11 fornisce anche valori del punto di rugiada. Il punto di rugiada è la temperatura alla quale l'aria deve essere raffreddata per saturarsi di vapore acqueo. Quando ulteriormente raffreddato, il vapore acqueo nell'aria si condenserà per formare acqua liquida.

Passaggio 2: cablaggio e inscatolamento

Cablaggio e inscatolamento
Cablaggio e inscatolamento
Cablaggio e inscatolamento
Cablaggio e inscatolamento
Cablaggio e inscatolamento
Cablaggio e inscatolamento
Cablaggio e inscatolamento
Cablaggio e inscatolamento

Per prima cosa ho dipinto la scatola di cartone usando colori acrilici e dopo aver asciugato per 1 giorno ho finito con una lacca per capelli. Ho realizzato una finestra quadrata per display a LED sulla copertina. Inoltre ho aperto un piccolo foro rettangolare per l'alimentatore Arduino Nano e ho messo diversi fori vicino al sensore DHT11.

Ho fissato l'Arduino nell'angolo della scatola principale usando una piccola scatola e silicone caldo.

Ho posizionato la matrice LED nella finestra utilizzando strisce di nastro trasparenti. Qui è importante posizionarlo con una rotazione antioraria di 90° perché il codice utilizzerà le 4 righe superiori per le cifre delle decine e le 4 righe inferiori per le cifre delle unità. Per il modulo che ho usato il lato con MAX7219 dovrebbe essere sul lato base.

Perché ho posizionato Arduino e sensore sul lato di chiusura della scatola non ho potuto chiuderlo completamente?. È meglio selezionare l'altro lato:).

Passaggio 3: codice

Codice
Codice
Codice
Codice
Codice
Codice

Prima carica la libreria per DHT11 (https://github.com/adidax/dht11) e matrice LED (https://github.com/wayoda/LedControl) se non l'hai già fatto.

Il codice utilizza le prime 4 righe della matrice LED come decine e le ultime 4 righe come unità. Quindi, ad esempio, se controlli il codice per "uno" vedrai "11" ruotato di 90° in senso orario. Se desideri modificare questi codici, prenditi cura di questo dettaglio.

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

I codici per ottenere le cifre dalla lettura del sensore sono:

unità = umido % 10; decine = (umido /10) % 10;

Per le decine il ciclo for funziona come segue:

if (decine == 1) { for (int c=0;c<4;c++) { lc.setRow(0, c, uno[c]); }

Per le unità, il ciclo for funziona come segue:

if (unità == 1) { for (int c=4;c<8;c++) { lc.setRow(0, c, one[c]); }

L'ordine di visualizzazione è in loop come segue:

"°C" -> temperatura -> "ronzio" -> umidità -> "dp" -> punto di rugiada -> significato del punto di rugiada (spiegato di seguito)

Ho alcune informazioni su come le persone percepiscono il tempo in base al punto di rugiada e inserisco queste informazioni nel codice come segue:

dp < 10: secco

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

14 < dp < 18: Afoso (sw)

17 < dp < 24: Afoso più (sw +)

dp > 23: bagnato

Il display per queste parole non è buono ma è comunque comprensibile per un singolo display 8x8

Consigliato: