Académique Documents
Professionnel Documents
Culture Documents
Département d’Électronique
MASTER 1
Présenté par :
1/Messalaoui Abdelaziz
Année Universitaire :
2019-2020
1/saisir le code sur le Logiciel Arduino puis simuler sous Isis après compilation :
const int pingPin = 7; // Trigger Pin of Ultrasonic Sensor
const int echoPin = 6; // Echo Pin of Ultrasonic Sensor
void setup() {
Serial.begin(9600); // Starting Serial Terminal }
void loop() {
long duration, inches, cm;
pinMode(pingPin, OUTPUT);
digitalWrite(pingPin, LOW);
delayMicroseconds(2);
digitalWrite(pingPin, HIGH);
delayMicroseconds(10);
digitalWrite(pingPin, LOW);
pinMode(echoPin, INPUT);
duration = pulseIn(echoPin, HIGH);
inches = microsecondsToInches(duration);
cm = microsecondsToCentimeters(duration);
Serial.print(inches);
Serial.print("in, ");
Serial.print(cm);
Serial.print("cm");
Serial.println();
delay(100); }
long microsecondsToInches(long microseconds)
{ return microseconds/74/2; }
long microsecondsToCentimeters(long microseconds)
{ return microseconds/29/2; }
2/commenter chaque ligne du code puis décrire brièvement ce que fait le programme :
const int pingPin = 7; // Trigger Pin of Ultrasonic Sensor
const int echoPin = 6; // Echo Pin of Ultrasonic Sensor
void setup() {
Serial.begin(9600); // Starting Serial Terminal }
void loop() {
long duration, inches, cm;
pinMode(pingPin, OUTPUT);
digitalWrite(pingPin, LOW);
delayMicroseconds(2);
digitalWrite(pingPin, HIGH);
delayMicroseconds(10);
digitalWrite(pingPin, LOW);
pinMode(echoPin, INPUT);
duration = pulseIn(echoPin, HIGH);
inches = microsecondsToInches(duration);
cm = microsecondsToCentimeters(duration);
Serial.print(inches);
Serial.print("in, ");
Serial.print(cm);
Serial.print("cm");
Serial.println();
delay(100); }
long microsecondsToInches(long microseconds)
{ return microseconds/74/2; }
long microsecondsToCentimeters(long microseconds)
{ return microseconds/29/2; }
3/ la plus petite distance détectable est : 4cm
5/ Modifier le code pour afficher la distance sur un afficheur LCD. Montrer les
résultats de la simulation sur Proteus:
# include "LiquidCrystal.h" //lcd libary
LiquidCrystal lcd(9, 8, 5, 4, 3, 2); //LCD object Parameters: (rs, enable, d4, d5, d6, d7)
const int trigPin = 7; //trig pin connection
const int echoPin = 6; //echopin connection
long duration;
int distanceCm;
float liquid;
int DISTANCELIMITE;
const int buzzerPin = 11;
void setup() { // setup perameter
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(buzzerPin, OUTPUT);
lcd.begin(16,2);
lcd.setCursor(0,0);
lcd.print(" TP ESE18 ");
lcd.setCursor(0,1);
lcd.print("MSALAOUIA.ELAZIZ");
delay(2000);
lcd.clear();
}
void loop() {
// loop of flow program
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distanceCm= duration*0.034/2;
DISTANCELIMITE = distanceCm;
if (distanceCm <= 10){
digitalWrite(buzzerPin,HIGH);
lcd.setCursor(0,0);
lcd.print(" Distance ");
lcd.setCursor(0,1);
lcd.print(" LIMITE ");
delay(2000);
}
else
{
digitalWrite(buzzerPin, LOW); }
lcd.setCursor(0,0);
lcd.print("La Distance mesuré.");
delay(10);
lcd.setCursor(0,1);
lcd.print("Distance:");
lcd.print(distanceCm);
lcd.print(" Cm ");
delay(1000);
lcd.clear();
}
6/Modifier le code arduino en ajoutant un Buzzer sur la broche 11 qui sera
déclenché (ALARM) si la distance est inferieure à 10cm tout en affichant sur le
LCD « DISTANCE LIMITE » :
lcd.begin(16,2);
lcd.setCursor(0,0);
lcd.print(" TP ESE18 ");
lcd.setCursor(0,1);
lcd.print("MSALAOUIA.ELAZIZ");
delay(2000);
lcd.clear();
}
void loop() {
// loop of flow program
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
digitalWrite(ledr, LOW);
digitalWrite(ledy, LOW);
digitalWrite(ledg,HIGH);
digitalWrite(buzzerPin,LOW);
lcd.setCursor(0,0);
lcd.print(" Distance ");
lcd.setCursor(0,1);
lcd.print(" LIMITE ");
delay(2000);
}
else if (10 <= distanceCm < 80 ) {
digitalWrite(ledr, LOW);
digitalWrite(ledy, HIGH);
digitalWrite(ledg,LOW);
digitalWrite(buzzerPin,LOW); }
else {
digitalWrite(ledr, LOW);
digitalWrite(ledy, LOW);
digitalWrite(ledg,LOW);
digitalWrite(buzzerPin,LOW); }
lcd.setCursor(0,0);
lcd.print("La Distance mesuré.");
delay(10);
lcd.setCursor(0,1);
lcd.print("Distance:");
lcd.print(distanceCm);
lcd.print(" Cm ");
delay(1000);
lcd.clear();
}
** resultat :