Académique Documents
Professionnel Documents
Culture Documents
2021 /2022
Ecole Nationale des Sciences appliquées GSII2
de Fès
Série 2 de TD :
Conception des objets connectés sous Proteus
L’utilisation des « Mots clés » accélère grandement la recherche des composants dans la boite
de dialogue « Pick Devices » de Proteus, qu’on peut afficher en choisissant « Pick parts from
libraries » dans le menu « library »
Par exemple pour trouver rapidement le capteur de température LM35 saisissez simplement
LM35 dans « Mots clés » puis double-cliquez sur le composant.
1
Université Sidi Mohamed Ben Abdellah Année Univ. 2021 /2022
Ecole Nationale des Sciences appliquées GSII2
de Fès
1. Réalisez sous Proteus le Montage ci-dessous en utilisant un capteur LM35, une carte
Arduino UNO, et un afficheur LCD
2. Pour pouvoir simuler cet exemple, Proteus a besoin de la bibliothèque Arduino. Après
avoir extrait les fichiers (ARDUINO.IDX et ARDUINO.LIB), placez-les dans le dossier
Bibliothèque (ex: C: \Program Files\Labcenter Electronics\ Proteus 8 Professional\
LIBRARY)
3. Ecrire un programme Arduino qui permet l’affichage de la température sur l’écran LCD
en utilisant la fonction « DHT.temperature ». Ouvrir le « ARDUINO IDE » et taper le
code suivant :
// déclarer la bibliothéque LiquidCrystal
#include <LiquidCrystal.h>
LiquidCrystal lcd(7, 6, 5, 4, 3, 2);
void setup() {
lcd.begin(16,2);
lcd.setCursor(1,0);
lcd.print("Temp= ");
lcd.setCursor(10,0);
lcd.print("C");
lcd.setCursor(1,1);
lcd.print("ENSA FES");
}
void loop() {
int Valeur=analogRead(A0);
int Vout=Valeur*5.0/1023*1000;
int temp=Vout/10;
lcd.setCursor(7,0);
lcd.print(temp);
}
2
Université Sidi Mohamed Ben Abdellah Année Univ. 2021 /2022
Ecole Nationale des Sciences appliquées GSII2
de Fès
1. Créer un nouveau projet et cliquez sur le bouton « Pick divices »(P) pour
rechercher les composants nécessaires.
2. Dans la boîte de recherche, tapez "Arduino" et choissiez «Arduino UNO» puis valider.
Maintenant, cliquez sur le bouton P, tapez "LDR" et choisissiez «LDR
TORCH_LDR» puis valider.
3. Ecrire un programme Arduino permettant d’afficher la variation de luminosité sur
l’écran LCD.
4. Lancer la simulation en cliquant sur F12. Vérifier et analyser le fonctionnement de
capteur LDR
3
Université Sidi Mohamed Ben Abdellah Année Univ. 2021 /2022
Ecole Nationale des Sciences appliquées GSII2
de Fès
void setup() {
// initialiser l'écran LCD
lcd.begin(16,2);
//Imprimer un message sur l'écran
lcd.setCursor(0,0);
lcd.print("LDR= ");
lcd.setCursor(1,1);
lcd.print("ENSA FES");
}
void loop() {
int valeur = analogRead(A0);
lcd.setCursor(6,0);
lcd.print(valeur);
4
Université Sidi Mohamed Ben Abdellah Année Univ. 2021 /2022
Ecole Nationale des Sciences appliquées GSII2
de Fès
1. Réalisez sous Proteus le Montage ci-dessous en utilisant un capteur DHT22, une carte
Arduino UNO, et un afficheur LCD
2. Pour pouvoir simuler cet exemple, Proteus a besoin de la bibliothèque Adafruit pour la
série DHT (placez le dossier nommé DHT dans le dossier « library d'Arduino »)
3. Ecrire un programme Arduino permettant d’afficher la température et le taux d'humidité
sur le moniteur série et sur l’écran LCD en utilisant la fonction « DHT.temperature » et
« DHT.humidity » après avoir inclus la bibliothèque <dht.h>.
5
Université Sidi Mohamed Ben Abdellah Année Univ. 2021 /2022
Ecole Nationale des Sciences appliquées GSII2
de Fès
void loop() {
delay(1000); // wait 1s between readings
// Read humidity
int RH = dht.readHumidity() * 10;
//Read temperature in degree Celsius
int Temp = dht.readTemperature() * 10;
// Check if any reads failed and exit early (to try again)
if (isnan(RH) || isnan(Temp)) {
lcd.clear();
lcd.setCursor(5, 0);
lcd.print("Error");
return;
}
6
Université Sidi Mohamed Ben Abdellah Année Univ. 2021 /2022
Ecole Nationale des Sciences appliquées GSII2
de Fès
else
humidity[6] = ' ';
humidity[7] = (RH / 100) % 10 + 48;
humidity[8] = (RH / 10) % 10 + 48;
humidity[10] = RH % 10 + 48;
lcd.setCursor(0, 0);
lcd.print(temperature);
lcd.setCursor(0, 1);
lcd.print(humidity);
}
7
Université Sidi Mohamed Ben Abdellah Année Univ. 2021 /2022
Ecole Nationale des Sciences appliquées GSII2
de Fès
#include <LiquidCrystal.h>
void setup() {
// Initialiser l'écran Lcd
LCD.begin(16,2);
void loop() {
8
Université Sidi Mohamed Ben Abdellah Année Univ. 2021 /2022
Ecole Nationale des Sciences appliquées GSII2
de Fès
LCD.print("Courant=");
LCD.print(courant);
LCD.print(" Amp");
delay(500);
9
Université Sidi Mohamed Ben Abdellah Année Univ. 2021 /2022
Ecole Nationale des Sciences appliquées GSII2
de Fès
1. Principe de fonctionnement
L'émetteur et le récepteur sont situés dans le même boîtier. L'émetteur envoie un train
d'ondes qui va se réfléchir sur l'objet à détecter et ensuite revenir à la source. Le temps mis
pour parcourir un aller-retour permet de déterminer la distance de l'objet par rapport à
la source. Plus l'objet sera loin plus il faudra longtemps pour que le signal revienne.
Pour détecter le niveau (la distance d), on utilise l’équation :
10
Université Sidi Mohamed Ben Abdellah Année Univ. 2021 /2022
Ecole Nationale des Sciences appliquées GSII2
de Fès
1- Réaliser sous Proteus le Montage ci-dessous en utilisant un capteur ultrason HC SR04, une
carte Arduino UNO, un potentiomètre (POT HG) et un terminal virtuel pour afficher la
distance.
3- Extraire le dossier de bibliothèque de capteur Ultrason et placer les fichiers
« UltrasonicTEP.LIB » « UltrasonicTEP.IDX » dans C:\Program Files (x86)\Labcenter
Electronics\Proteus 7 Professional\LIBRARY”, puis placer le fichier « UltraSonicTEP.HEX »
dans “C:\Program Files (x86)\Labcenter Electronics\Proteus 7 Professional\BIN”
4 – Ecrire un programme Arduino qui permet l’affichage de la distance sur le terminal virtuel.
Ouvrir le « ARDUINO IDE » et taper le code suivant :
void setup()
{
Serial.begin(9600); // Starting Serial Communication
pinMode(pingPin, OUTPUT); // initialising pin 3 as output
pinMode(echoPin, INPUT); // initialising pin 2 as input
}
void loop()
{
long duration, inches, cm;
digitalWrite(pingPin, LOW);
delayMicroseconds(2);
digitalWrite(pingPin, HIGH);
delayMicroseconds(10);
digitalWrite(pingPin, LOW);
11
Université Sidi Mohamed Ben Abdellah Année Univ. 2021 /2022
Ecole Nationale des Sciences appliquées GSII2
de Fès
Serial.print(inches);
Serial.print("in, ");
Serial.print(cm);
Serial.print("cm");
Serial.println();
delay(100);
}
12
Université Sidi Mohamed Ben Abdellah Année Univ. 2021 /2022
Ecole Nationale des Sciences appliquées GSII2
de Fès
ont des portées et des styles variés, y compris des options compatibles avec les animaux
domestiques (conçues pour ignorer certaines formes d'objets en mouvement, ou détecter un
mouvement seulement au-dessus d'une certaine hauteur).
Les capteurs PIR sont également utilisés pour allumer automatiquement les lumières lorsqu'une
personne entre dans une pièce ou pour faire démarrer l'enregistrement d'une caméra vidéo.
3. Ce capteur PIR a quatre broches au total, dont une est Vcc, donc vous devez
donner +5V à cette broche et n'oublier pas aussi la GND que vous devez mettre à
la masse . Double clic sur l’icône pour activer «VCC»
4. La broche OUT du PIR est la broche principale par laquelle nous recevons la sortie
qui indique s'il y a un mouvement. Elle doit être branchée au PIN 2 de la
carte Arduino. Comme le montre la figure suivante.
13
Université Sidi Mohamed Ben Abdellah Année Univ. 2021 /2022
Ecole Nationale des Sciences appliquées GSII2
de Fès
14
Université Sidi Mohamed Ben Abdellah Année Univ. 2021 /2022
Ecole Nationale des Sciences appliquées GSII2
de Fès
15
Université Sidi Mohamed Ben Abdellah Année Univ. 2021 /2022
Ecole Nationale des Sciences appliquées GSII2
de Fès
4. Ecrire et compiler le programme suivant puis téléchargez le fichier HEX sur la carte :
16
Université Sidi Mohamed Ben Abdellah Année Univ. 2021 /2022
Ecole Nationale des Sciences appliquées GSII2
de Fès
#include <Servo.h>
Servo myservo;
int flame = 10;
int smoke = 9;
int red = 6;
int green = 7 ;
int buzzer = 13 ;
void setup ()
{
pinMode (flame, INPUT) ;
pinMode (smoke, INPUT) ;
pinMode (red, OUTPUT) ;
pinMode (green, OUTPUT) ;
pinMode (buzzer, OUTPUT) ;
Serial.begin(9600);
myservo.attach(8);
myservo.write(0);
}
void loop ()
{
int fval = digitalRead (flame) ;
int sval = digitalRead(smoke);
Serial.print("fval = ");
Serial.println(fval);
Serial.print("sval = ");
Serial.println(sval);
17
Université Sidi Mohamed Ben Abdellah Année Univ. 2021 /2022
Ecole Nationale des Sciences appliquées GSII2
de Fès
18
Université Sidi Mohamed Ben Abdellah Année Univ. 2021 /2022
Ecole Nationale des Sciences appliquées GSII2
de Fès
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
}
void loop() {
int a=analogRead(A0);
int b=map(a,0,1023,0,255);
Serial.println(b);
if(b>240)
{
Serial.println("car1 arrived..");
delay(500);
}
if(b<240)
{
Serial.println("car1 Not arrived..");
delay(500);
}
/////////////////////////////////////////////////
int a1=analogRead(A1);
int b1=map(a1,0,1023,0,255);
Serial.println(b1);
if(b1>240)
{
Serial.println("car2 arrived..");
delay(500);
}
if(b1<240)
{
Serial.println("car2 Not arrived..");
delay(500);
}
/////////////////////////////////////////////////
int a2=analogRead(A2);
int b2=map(a2,0,1023,0,255);
Serial.println(b2);
if(b2>240)
{
Serial.println("car3 arrived..");
delay(500);
}
if(b2<240)
{
Serial.println("car3 Not arrived..");
delay(500);
}
/////////////////////////////////////////////////
19