Catégories
Arduino capteur électronique Grafcet Projets Arduino Projets électroniques

GRAFCET | Arduino #32: La Commande IR d’un Curseur de Caméra Multimodes – Test Capteurs Ultrasons III

Objectifs

  • Savoir faire la commande multimodes d’un automate
  • Savoir utiliser le module IR
  • Test des capteurs à ultrasons
  • Savoir mesurer la distance avec un capteur à US
  • Savoir lire le code d’une télécommande IR
  • Comprendre le principe de fonctionnement de la commande IR
  • Etc.

L’objectif du tuto est de valider le fonctionnement des capteurs de distances à ultrasons. Ils seront utilisés pour la mesure de la distance droite et gauche. Voir le tuto pour les détails techniques.

Schéma synoptique

schéma de principe arduino commande IR - Test liaison IR

Programme Arduino

#define Trig_out_pin_g  2 
#define Trig_out_pin_d 3
#define Echo_in_pin_g 4
#define Echo_in_pin_d 5

void setup()
{
// Affichage
Serial.begin(115200);

// Initialisation des capteurs US
pinMode(Trig_out_pin_g, OUTPUT);
digitalWrite(Trig_out_pin_g, LOW);
pinMode(Trig_out_pin_d, OUTPUT);
digitalWrite(Trig_out_pin_d, LOW);
}

void loop()
{
// Test des capteurs US
float disg=getDistmm(Trig_out_pin_g, Echo_in_pin_g);
float disd=getDistmm(Trig_out_pin_d, Echo_in_pin_d);
Serial.print("disg(mm)=");Serial.print(disg); Serial.print("\t");
Serial.print("disd(mm)=");Serial.println(disd);
delay(100);
}

double getDistmm(int trigpin, int echopin)
{
// Vitesse du son (mm/us)
const double speedson=340.0e-3;

// Déclanchement mesure avec l'envoie d'une impulsion de 10µs
digitalWrite(trigpin, HIGH);
delayMicroseconds(10);
digitalWrite(trigpin, LOW);

// Lecture du temps aller/retour de l'onde
double HC_val = pulseIn(echopin, HIGH, 30000);

// Calcul de distance d(mm)
double Dist_mm = (HC_val/2.0) * speedson;

// Renvoi de la distance en (mm)
if (Dist_mm <= 10.0) return 10.0; // Zone aveugle du capteur
else return Dist_mm;
}

Obtenir le livre « Codage en C du GRAFCET avec ARDUINO« 

Laisser un commentaire