Table des matières:

Affichage à deux chiffres utilisant une seule matrice LED 8x8 : 3 étapes
Affichage à deux chiffres utilisant une seule matrice LED 8x8 : 3 étapes

Vidéo: Affichage à deux chiffres utilisant une seule matrice LED 8x8 : 3 étapes

Vidéo: Affichage à deux chiffres utilisant une seule matrice LED 8x8 : 3 étapes
Vidéo: Matrice à led 2024, Juillet
Anonim
Affichage à deux chiffres utilisant une seule matrice LED 8x8
Affichage à deux chiffres utilisant une seule matrice LED 8x8

Ici, je voudrais construire un indicateur de température et d'humidité pour ma pièce. J'ai utilisé une seule matrice LED 8x8 pour afficher des nombres à deux chiffres, et je pense que cette partie du projet est devenue plus utile. J'ai emballé le final construit à l'aide d'une boîte en carton, peinte comme du bois.

Fournitures

  1. Arduino Nano x1
  2. Capteur de température et d'humidité DHT11 x1
  3. Matrice LED 8x8 avec MAX7219 x1
  4. Résistance 10K x1
  5. Fils d'en-tête
  6. Alimentation 5V x1
  7. Boîte en carton (4x8x13 cm)

Étape 1: Schéma

Schématique
Schématique

Le capteur numérique de température et d'humidité DHT11 fournit des températures comprises entre 0 et 50 °C et une humidité comprise entre 20 % et 90 %. La précision de la température est de ±2°C (maximum) et la précision de l'humidité est de ±5%.

DHT11 fournit également des valeurs de point de rosée. Le point de rosée est la température à laquelle l'air doit être refroidi pour se saturer en vapeur d'eau. Lorsqu'elle est encore refroidie, la vapeur d'eau en suspension dans l'air se condense pour former de l'eau liquide.

Étape 2: Câblage et boxe

Câblage & Boxe
Câblage & Boxe
Câblage & Boxe
Câblage & Boxe
Câblage & Boxe
Câblage & Boxe
Câblage & Boxe
Câblage & Boxe

J'ai d'abord peint la boîte en carton avec de la peinture acrylique et après séchage pendant 1 jour j'ai fini avec un fixatif. J'ai fait une fenêtre carrée pour l'affichage LED sur le capot avant. J'ai également ouvert un petit trou rectangulaire pour l'alimentation Arduino Nano et mis plusieurs trous près du capteur DHT11.

J'ai fixé l'Arduino dans le coin de la boîte principale à l'aide d'une petite boîte et de silicone chaud.

J'ai placé la matrice LED dans la fenêtre à l'aide de bandes adhésives transparentes. Ici, il est important de le placer avec une rotation de 90° dans le sens inverse des aiguilles d'une montre car le code utilisera les 4 rangées supérieures pour les chiffres des dizaines et les 4 rangées inférieures pour les chiffres des unités. Pour le module que j'ai utilisé, le côté avec MAX7219 doit être du côté de la base.

Parce que j'ai placé l'Arduino et le capteur du côté de la fermeture de la boîte, je n'ai pas pu la fermer complètement ?. Vous feriez mieux de sélectionner l'autre côté:).

Étape 3: Coder

Code
Code
Code
Code
Code
Code

Téléchargez d'abord la bibliothèque pour DHT11 (https://github.com/adidax/dht11) et la matrice LED (https://github.com/wayoda/LedControl) si vous ne l'avez pas déjà fait.

Le code utilise les 4 premières rangées de la matrice LED comme dizaines et les 4 dernières rangées comme unités. Ainsi, par exemple, si vous cochez le code pour "un", vous verrez "11" comme tourné de 90° dans le sens des aiguilles d'une montre. Si vous souhaitez modifier ces codes, veuillez vous occuper de ce détail.

octet un = {B00000000, B01000100, B01111100, B01000000, B00000000, B01000100, B01111100, B01000000};

Les codes pour obtenir les chiffres de la lecture du capteur sont:

unités = humide % 10; dizaines = (humide /10) % 10;

Pour le chiffre des dizaines, la boucle for s'exécute comme suit:

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

Pour le chiffre des unités, la boucle for s'exécute comme suit:

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

L'ordre d'affichage est en boucle comme suit:

"°C" -> température -> "hum" -> humidité -> "dp" -> point de rosée -> signification du point de rosée (expliqué ci-dessous)

J'ai quelques informations sur la façon dont les gens ressentent le temps en fonction du point de rosée et j'ai mis ces informations dans le code comme suit:

dp < 10: sec

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

14 < dp < 18: Sweltry (sw)

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

dp > 23: humide

L'affichage de ces mots n'est pas bon mais reste compréhensible pour un seul écran 8x8

Conseillé: