Dispositif de mesure de taille DIY avec Arduino – Précis et facile à construire
Composants et fournitures
Arduino Nano R3
×
1
Capteur ultrasonique HC-SR04 (générique)
×
1
LCD alphanumérique, 16 x 2
×
1
Potentiomètre d'ajustement, 10 kΩ
×
1
Outils et machines nécessaires
Fer à souder (générique)
Applications et services en ligne
Arduino IDE
À propos de ce projet
En voyant mes enfants mesurer leur taille chaque jour, j'ai eu l'idée de créer un tel dispositif. Pour connaître votre taille, il suffit de se placer sous l'appareil et d'activer un signal sonore indiquant que la mesure est faite.
C'est très simple à construire et ne nécessite que quelques composants :
Arduino Nano
Capteur ultrasonique HC-SR04
Écran LCD
Buzzer
Batterie
Fonctionnement :
Installez l'appareil avec du ruban double face à une hauteur connue, définie dans le code et notée H sur l'image.
Lorsqu'une personne se place sous l'appareil, le capteur mesure la distance D. Le code calcule H - D, ce qui correspond à la taille de la personne (H1) et l'affiche sur le LCD. La bibliothèque « LcdBarGraph » dessine un graphique à barres horizontal dont la longueur est proportionnelle à la valeur. S'il n'y a personne, la valeur calculée est zéro (H = D). L'appareil est logé dans une boîte adaptée avec le LCD en façade et le capteur ultrasonique en dessous.
Les bibliothèques, le code et le schéma sont fournis ci-dessous.
Code
CODE
Bibliothèques
CODE Arduino
// Inclusion bibliothèque LiquidCrystal
#include <LiquidCrystal.h>
// Inclusion bibliothèque LcdBarGraph
#include <LcdBarGraph.h>
// Distance maximale de ping (cm)
#define max_distance 200
// Création objet LCD. Paramètres : (rs, enable, d4, d5, d6, d7)
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
LcdBarGraph lbg(&lcd, 16, 0, 1); // Objet bargraph LCD
const int trigPin = 9;
const int echoPin = 10;
long duration;
int distance;
int distance1;
int speakerPin = 8;
void setup() {
lcd.begin(16, 2);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
}
void loop() {
// Impulsion sur broche Trigger HC-SR04
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
// Mesure réponse sur broche Echo
duration = pulseIn(echoPin, HIGH);
// Calcul distance à partir de la durée
// Vitesse du son : 343 m/s
distance = duration * 0.034 / 2;
distance1 = 180 - distance; // H = 180 cm (exemple)
// Alerte sonore si taille > 100 cm
if (distance1 > 100) {
tone(speakerPin, 1000);
} else {
noTone(speakerPin);
}
// Affichage sur LCD
lcd.setCursor(0, 0);
lcd.print("HEIGHT: ");
lcd.print(distance1);
lcd.print(" cm ");
// Bargraph sur deuxième ligne
lcd.setCursor(0, 1);
lbg.drawValue(distance1, max_distance);
delay(500);
}
Bibliothèques Arduino
Aperçu non disponible (téléchargement uniquement).