Capteur à InfraRouge Détecter des obstacles avec un capteur à ultrasons Utiliser un capteur à UltraSon Eviter les obstacles avec des moustaches
Le capteur à ultra son Sharp envoie des ultrasons et les réceptionne. Le temps mis entre l’émission et la réception est proportionnel à la distance.
Le branchement se fait au moyen de 4 connections :
Code C pour l’IDE Arduino :
//bibliothèque.
#include <Ultrasonic.h>
//http://tetrasys-design.net/download/HCSR04Ultrasonic/HCSR04Ultrasonic-1.1.2.zip
//nom du capteur de distance sur pin 2 et 3
// trou 3 P W M
Ultrasonic Capteur( 3 , 2 );
//variable nommée Distance = 0
int Distance = 0;
//initialisation
void setup()
{
//port série pour recevoir les distances
// Une vitesse classique 9600
Serial.begin( 9600 );
}
//boucle
void loop()
{
//mesures de distances
Distance = Capteur.convert( Capteur.timing(), 1 );
//distance en cm
// Serial : port série
//println : imprimer
Serial.println(Distance);
delay(200);
//bouton “moniteur Série” pour afficher les valeurs
}
Bibliothèque Ultrasonic.h : http://tetrasys-design.net/download/HCSR04Ultrasonic/HCSR04Ultrasonic-1.1.2.zip
Source DuinoEdu
Avec ardublock :
Le code généré ne fonctionne pas avec ce modèle de capteur SHARP HC SR04. Il faut donc le modifier :
Exemple de code :
#include <Servo.h>
#include <Ultrasonic.h>
Ultrasonic Capteur( 3 , 2 );
int _ABVAR_1_var;
Servo servo_pin_9;
Servo servo_pin_8;
int ardublockUltrasonicSensorCodeAutoGeneratedReturnCM(int trigPin, int echoPin)
{
int duration;
duration = Capteur.convert( Capteur.timing(), 1 );
return duration;
}
void setup()
{
_ABVAR_1_var = 0;
digitalWrite( 3 , LOW );
Serial.begin( 9600 );
servo_pin_8.attach(8);
servo_pin_9.attach(9);
}
void loop()
{
if (( ( ardublockUltrasonicSensorCodeAutoGeneratedReturnCM( 3 , 2 ) ) > ( 10 ) ))
{
_ABVAR_1_var = 0 ;
}
if (( ( ardublockUltrasonicSensorCodeAutoGeneratedReturnCM( 3 , 2 ) ) <= ( 10 ) ))
{
_ABVAR_1_var = 1 ;
}
if (( ( _ABVAR_1_var ) == ( 0 ) ))
{
servo_pin_8.write( 180 );
servo_pin_9.write( 1 );
delay( 100 );
}
if (( ( _ABVAR_1_var ) == ( 1 ) ))
{
servo_pin_8.write( 1 );
servo_pin_9.write( 1 );
delay( 100 );
}
}