Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Processus de fabrication

Capteur de stationnement DIY avec Arduino UNO et capteurs ultrasoniques HC-SR04

Composants et fournitures

Arduino UNO ×1
Capteur ultrasonique HC-SR04 (générique) ×1
Mini afficheurs de batterie (basés sur puce TM1651) ×2

À propos du projet

Ce projet est un capteur de stationnement DIY, très simple à réaliser, basé sur le capteur ultrasonique HC-SR04. J'en utilise 3 : un pour chaque côté et un pour le milieu, plus 2 mini afficheurs de batterie (conçus pour afficher l'état de la batterie, mais ici utilisés pour afficher la distance entre les capteurs et les obstacles, selon le côté, et selon la distance maximale programmable).

Capteur de stationnement DIY avec Arduino UNO et capteurs ultrasoniques HC-SR04

Pièces

Voici les pièces utilisées, vous pouvez ajouter quelques fils de liaison et une plaque d'essai si vous le souhaitez. (L'afficheur de batterie est basé sur la puce TM1651)

Capteur de stationnement DIY avec Arduino UNO et capteurs ultrasoniques HC-SR04

Capteur de stationnement DIY avec Arduino UNO et capteurs ultrasoniques HC-SR04

Capteur de stationnement DIY avec Arduino UNO et capteurs ultrasoniques HC-SR04

Capteur de stationnement DIY avec Arduino UNO et capteurs ultrasoniques HC-SR04

Fonctionnement

Il y a 3 modules ultrasoniques : Droite, Milieu et Gauche, et deux afficheurs : Droite et Gauche. Le capteur du milieu peut affecter les deux afficheurs, mais les deux autres n'affectent que leur côté respectif.

Par exemple, s'il y a deux obstacles, un à droite et un au milieu, le code prend le plus proche pour l'afficher.

Si le milieu est le plus proche, les deux afficheurs changent selon sa distance.

Si le côté droit est le plus proche, l'afficheur droit change et affiche une valeur plus basse que le gauche.

Il y a une distance maximale programmable dans le code. Au-dessus, c'est considéré comme sûr et l'afficheur s'allume au maximum. En dessous, les afficheurs changent proportionnellement à la distance maximale.

Exemples

Voici quelques cas pour illustrer :

Capteur de stationnement DIY avec Arduino UNO et capteurs ultrasoniques HC-SR04

Capteur de stationnement DIY avec Arduino UNO et capteurs ultrasoniques HC-SR04

Capteur de stationnement DIY avec Arduino UNO et capteurs ultrasoniques HC-SR04

Capteur de stationnement DIY avec Arduino UNO et capteurs ultrasoniques HC-SR04

Le dernier cas peut arriver si vous avez des obstacles au milieu et à droite (droite plus proche) ou à gauche et à droite (droite plus proche), ou de tous les côtés mais (droite plus proche).

Améliorations possibles :

Code

Parking_sensor_v1.ino
/* Ce code fonctionne avec 3 modules ultrasons HC-SR04 et 2 afficheurs batterie TM1651
 * Le projet est un capteur de stationnement qui montre la proximité des obstacles et leur direction
 * selon la MaxDistance : au-dessus, l'afficheur montre distance sûre ; en dessous, il change proportionnellement
 * Référez-vous à www.SurtrTech.com pour plus de détails */
#include <TM1651.h>

#define CLK 3       // Câblage afficheur droit
#define DIO 2
#define CLK2 5      // Câblage afficheur gauche
#define DIO2 4
#define trigPin 6   // Modules ultrasons : R=Droite L=Gauche l'autre est le milieu
#define echoPin 7
#define trigPinR 8
#define echoPinR 9
#define trigPinL 10
#define echoPinL 11
#define Maxdistance 20 // Distance maximale 20cm

long duration;
int distance;

TM1651 DisplayR(CLK, DIO); // Instances d'afficheurs
TM1651 DisplayL(CLK2, DIO2);

void setup() {
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
  pinMode(trigPinR, OUTPUT);
  pinMode(echoPinR, INPUT);
  pinMode(trigPinL, OUTPUT);
  pinMode(echoPinL, INPUT);
  DisplayR.init();
  DisplayR.set(BRIGHTEST);
  DisplayL.init();
  DisplayL.set(BRIGHTEST);
}

void loop() {
  int distanceM = CDistance(trigPin, echoPin);
  int distanceR = CDistance(trigPinR, echoPinR);
  int distanceL = CDistance(trigPinL, echoPinL);
  
  int R = min(distanceM, distanceR); // Minimum entre M/R et M/L pour les deux afficheurs
  int L = min(distanceM, distanceL);
  
  if (R > 0 && R < Maxdistance) {
    short LevelR = map(R, 0, Maxdistance, 0, 7); // Mise à l'échelle 0-20cm vers 0-7
    DisplayR.displayLevel(LevelR); // 0-7 sont les niveaux de l'afficheur
  }
  if (R > Maxdistance) // Zone sûre
    DisplayR.displayLevel(7);
  
  if (L > 0 && L < Maxdistance) {
    short LevelL = map(L, 0, Maxdistance, 0, 7);
    DisplayL.displayLevel(LevelL);
  }
  if (L > Maxdistance)
    DisplayL.displayLevel(7);
  
  delay(50);
}

int CDistance(int a, int b) {
  digitalWrite(a, LOW);
  delayMicroseconds(2);
  digitalWrite(a, HIGH);
  delayMicroseconds(10);
  digitalWrite(a, LOW);
  duration = pulseIn(b, HIGH);
  distance = duration * (0.034 / 2);
  return distance;
}
Bibliothèque TM1651 pour afficheur batterie

La bibliothèque simplifie grandement le travail :
https://github.com/ne0x/fuel_display

Schémas

Capteur de stationnement DIY avec Arduino UNO et capteurs ultrasoniques HC-SR04

Processus de fabrication

  1. Capteurs Radar Expliqués : Fonctionnement et Applications Modernes
  2. Capteurs de stationnement : Fonctionnement et applications clés
  3. Comprendre le capteur d'oxygène (O2) : rôle, emplacement et signes de défaillance
  4. Mouser présente les technologies de capteurs avancées au Sensors Expo 2019
  5. Contrôler une LED avec un capteur de mouvement PIR sur Raspberry Pi
  6. Construire un capteur d'humidité du sol Raspberry Pi low-cost pour irrigation intelligente
  7. Construire un moniteur de température domestique avec Raspberry Pi, MCP9808, InfluxDB et Grafana
  8. Intégrer le radar pulsé Acconeer A111 à un Raspberry Pi : Guide pratique
  9. Capteur d'émotion & EEG : Matériel low-cost pour détection d'émotion en temps réel