• Post category:Fort
  • Commentaires de la publication :0 commentaire
  • Dernière modification de la publication :mars 20, 2022
  • Temps de lecture :7 min de lecture

Afficher la valeur HC-SR04 sur un affichage LED à 4 chiffres et 7 segments avec un Arduino Uno

Niveau APPRENTISSAGE :   Fort

 

    Prérequis :

Matériel :

  • 1 x Carte Arduino Uno
  • 1 x Afficheur 7 segments 4 digits ( cathode commune )
  • 1 x HC-SR04 capteur à Ultrason
  • 8 x Résistances 330Ω
  • Fils de connexion
  • 1 x Breadboard

Version IDE :

Bibliothèque :

 

 

Vidéo de démonstration :

 

Schéma de câblage de l’Emetteur :

 

Code :

// Inclure le code de la bibliothèque:
#include "SevSeg.h"
SevSeg myDisplay;
// La broche Analogique A0 est reliée à trig HC-SR04. On lui donne le nom trigPin.
const int trigPin = A0;
// La broche Analogique A1 est reliée à echo HC-SR04. On lui donne le nom echoPin.
const int echoPin = A1;
// Déclaration variable duration qui va servir à stocker une valeur au format float.
float duration;
// Déclaration variable distance qui va servir à stocker une valeur au format int.
int distance;
// Déclaration d'un tableau Affvaleurs qui va servir à stocker des valeurs au format char.
char Affvaleurs[4];

void setup() {
//Défini si votre afficheur à Segments est soit à cathode commune, soit à anode commune
int displayType = COMMON_CATHODE;
// Déclare quelles broches sont connectées aux chiffres.
int digit1 = 2;
int digit2 = 3;
int digit3 = 4;
int digit4 = 5;
// Déclare quelles broches sont connectées aux segments.
int segA = 6;
int segB = 7;
int segC = 8;
int segD = 9;
int segE = 10;
int segF = 11;
int segG = 12;
int segDP = 13;
// Défini la taille de l'affichage 1, 2 ou 4 chiffres.
int numberOfDigits = 4;
myDisplay.Begin(displayType, numberOfDigits, digit1, digit2, digit3, digit4, segA, segB, segC, segD, segE, segF, segG, segDP);
// Régle l'affichage sur un niveau de luminosité de 100 %
myDisplay.SetBrightness(100);
// Définit trigPin comme sortie
pinMode(trigPin, OUTPUT);
// Définit echoPin comme entrée.
pinMode(echoPin, INPUT);
}

void loop() {
// Met la broche numérique trigPin sur ON
digitalWrite(trigPin, HIGH);
// On attend 10 millisecondes
delayMicroseconds(10);
// Met la broche numérique trigPin sur OFF
digitalWrite(trigPin, LOW);
// On lit le temps d'impulsion sur echoPin et on stock la valeur dans la variable duration
duration = pulseIn(echoPin, HIGH);
// On calcule la distance par rapport à la durée de l'impulsion
// Puis on stocke la valeur dans la variable distance
distance = duration * 0.034 / 2;
// Si distance > 16 on exécute les actions entre {}
if (distance > 16 ) {
// Imprime ---- sur afficheur à Segments.
myDisplay.DisplayString("----", 0);
}
// Sinon on exécute les actions entre {}
else {
//Convertie la valeur de la variable distance en chaîne de caractère et la stock dans le tableau Affvaleurs
sprintf(Affvaleurs, "%04d", distance);
// Imprime les valeurs du tableau Affvaleurs sur afficheur à Segments.
myDisplay.DisplayString(Affvaleurs, 0);
}
}

 


+ Infos sur le langage utilisé :

1. Fonctions
2. Variables
3. Stucture

 

Laisser un commentaire