REPUBLIQUE DU SENEGAL
***Un peuple un but une foi***
MINISTERE DE L’ENSEIGNEMENT SUPERIEUR, DE LA RECHERCHE ET
L’INNOVATION
UNIVERSITE GASTON BERGER DE SAINT-LOUIS
UFR des sciences et technologies
Master en ingenierie electronique et telecommunication
LOGIQUE PROGRAMMABLE
CONCEPTION ET SIMULATION :
OUVERTURE AUTOMATIQUE D’UNE PORTE
DE GARAGE
Présenté par :
ADAMA LÔ
PAULINE SENE
MOHAMADOU NDIAYE
MOHAMED LEMINE SIDI
Sous la supervision de M FAROTA
ANNEE ACADEMIQUE 2020-2021
1 INTRODUCTION
Qui n’a pas rêvé d’arriver devant sa maison et d’actionner un simple bouton pour rentrer
facilement et rapidement ?
Disposer d’un garage est un avantage indéniable mais avoir une porte automatique est le
summum du confort.
L’objet technique étudié est destiné à ouvrir ou à fermer une porte de garage de manière
automatique, et ce en assurant la sécurité des biens, et des personnes.
Pour ce faire nous avons eu recours à un lot de composants bien déterminé, un support
logistique et une programmation bien délicate.
DESCRIPTION DU PROJET
Notre projet consiste à concevoir un parking intelligent, constitué d’une porte d’entrée et une
autre de sortie gérée automatiquement par une carte ARDUINO UNO.
L’entrée et la sortie sont toutes deux équipées de capteurs infrarouge qui détectent la moindre
fluctuation d’énergie à une certaine distance des portes. Le garage ne dispose que de 5 places.
Au-delà de 5, l’algorithme déclare qu’il n’y a plus de places disponibles.
COMPOSANTS ET MATERIAUX
Le choix des matériaux est une tâche fondamentale et très complexe, et pour réussir à bien
l’aborder, on a posé un groupe de critères qu’on devait les satisfaire pour bien réussir notre
choix. Les critères imposés sont les suivants :
- Au niveau de matériau : caractéristiques mécaniques, esthétiques, thermiques, électriques,
économiques, environnementales, physiques.
- Au niveau du procédé : volume, masse, géométrie, taille de la série, caractéristiques
économiques et environnementales.
La carte Arduino UNO :
C’est la carte idéale pour découvrir l’environnement ARDUINO. Elle permet à tout débutant
de se lancer dans tous ses premiers petits projets. Comme c’est la carte la plus utilisée, il est
très facile de se référer aux tutoriels très nombreux sur le net et ainsi de ne pas rester seul dans
son exploration.
Sa simplicité devient par contre un handicap lorsqu’il s’agit de multiplier les périphériques, de
manipuler des algorithmes lourds ou d’interagie avec les OS / Android pour lesquels d’autres
cartes Arduino sont plus adaptées.
Une carte Arduino UNO se compose
essentiellement de :
Prise jack : permet de brancher une
alimentation (pile, batterie, adaptateur
Secteur, + au centre Vin 7 à12 V
Microcontrôleur : stocke le programme
et l’exécute.
Entrées et analogique : Permet de
brancher des capteurs et des détecteur
analogiques.
Connexion USB (Universal Serial Bus) :
Permet d’alimenter la carte en Énergie
électrique (5V). Permet de téléverser le
programme dans la carte.
Entrées et sorties numériques (Digital) :
Permet de brancher des actionneurs,
permet aussi de brancher des détecteurs.
2
Le Servo-moteur.
Un servo-moteur est un type de moteur électrique. C’est un dispositif typiquement utilisé en
modélisme pour, par exemple, contrôler la direction d’une voiture télécommandée. Sur un
servo-moteur, l‘angle de l’axe reste fixé dans une position et peut varier entre 0 et 180° en
fonction du signal envoyé.
Il existe divers types de servomoteur, de taille, poids et couple (force) diffé[Link]
photographie ci-dessous présente un servomoteur très classique en modélisme : le futuba
S3003. Un peu plus bas l’article, on utilisera un autre servomoteur, communément appelé
"servomoteur 9 grammes", par souci de consommation électrique.
Le servomoteur est composé de plusieurs
éléments visibles et invisible :
Un moteur à courant continu
Des engrenages pour former un réducteur (en
plastique on en métal)
Un capteur de position de l’angle d’orientation
de l’axe (un potentiomètre)
Une carte électronique pour le contrôle de la
position de l’axe et le pilotage du moteur à
courant continu
Les fils, qui sont au nombre de trois
L’axe de rotation sur lequel est monté un
accessoire en plastique ou en métal
Le boitier qui le protège.
Le cristal liquide d'affichage (LCD)
Ce type d'écran est le mois et le plus commun parmi les passionnés d'électronique et les
projets électroniques, car ils sont disponibles à bas prix et faciles à programmer, et ce type est
disponible en différentes tailles et couleurs, avec 16x2 et les mois entre eux, 20 × 2, 20 × 4 et
autres. Nous entendons par 16 × 2, c'est-à-dire, il y a deux lignes et chaque ligne peut être
écrite 16 caractères.
Les points de connexion de l'écran à cristaux
Sélection de l'enregistreur
RS : Ce port nous détermine dans quelle
mémoire nous écrivons des données !
L'enregistreur de données ou
l'enregistreur d'instructions est
sélectionné « Option »
R / W pour lire ou écrire, ce port
spécifie soit sélectionner le mode lecture
ou écriture.
Enable pin Ce port, s'il est activé, vous
permet d'écrire sur l'écran LCD broche
de données
(D0-D7) : ce sont les ports par lesquels
nous transmettons des données aux
enregistreurs.
3 Capteur infrarouge :(IR SENSOR)
Le capteur d'évitement d'obstacles à capteur
infrarouge IR est une solution peu coûteuse pour la
détection d'évitement pour la robotique, la voiture
intelligente et d'autres utilisations électroniques.
Dans cette leçon, nous allons vous montrer
comment fonctionne le capteur d'évitement
d'obstacles et comment l'utiliser avec la carte
ARDUINO UNO.
Le capteur infrarouge ou le capteur IR a deux
parties principales. Émetteur IR et récepteur IR.
La responsabilité de l'émetteur IR ou de l'émetteur
infrarouge est la transmission des ondes
infrarouges tandis que le travail du récepteur IR
est de recevoir ces ondes infrarouges. Le
récepteur IR envoie constamment des données
numériques sous la forme de 0 (LOW) ou 1
(HIGH) à la broche V out du capteur.
Caractéristiques Techniques
Voltage de fonctionnement : DC 3,3 V-5 V
Intensité du courant ≥ 20mA
Température de fonctionnement : -10 ℃ --> + 50 ℃
Plage de distance : 2-40 cm
Interface IO : interface 4 fils (GND / Vcc / OUT / EN)
Signal de sortie : tension TTL
Mode d'hébergement : régulation de résistance multi-cercle
Angle effectif : 35 °
Taille : 41,7 * 16,7 mm
Poids : 5g
Lorsque la surface est absorbante (par exemple de couleur noire), le signal IR n'est pas
réfléchi et l'objet ne peut pas être détecté par le capteur. Ce résultat se produirait même si
l'objet est absent.
Le module LED
Une LED RGB est une LED qui peut s’allumer dans toutes les couleurs en fonction de trois
couleurs : le rouge le vert et le bleu. La LED RGB a 4 broches : une commune à l’ensemble
des LEDS et une pour chaque couleur de la LED.
La broche commune pourra, selon les modèles, être le+ (anode commune) ou le (cathode
commune). Ici la LED RGB a pour broche commune la cathode (borne-).
Certaines LED RGB intègrent déjà les résistances de limitation de courant dans des modules.
LED RGB
4 SIMULATION
Proteus est une suite logicielle destinée à l'électronique. Développé par la société Labcenter
Electronics, elle est principalement connue pour éditer des schémas électriques. Par ailleurs le
logiciel permet également de simuler ces schémas.
Les circuits électriques conçus grâce à ce logiciel peuvent être utilisé dans des
documentations car le logiciel permet de contrôler la majorité de l'aspect graphique des
circuits.
Le langage Arduino est inspiré de plusieurs langages. On retrouve notamment des similarités
avec le C, le C++.
Le langage impose une structure particulière typique de l’informatique embarquée.
La programmation se fait de manière séquentielle c’est-à-dire une suite d’instruction
élémentaires.
Sous Proteus le montage effectué est la suivante :
Figure 23 : montage reliant les défèrent composantes du parking intelligent
Le code Arduino utilisé pour programmer le parking intelligent :
#include // initialize the library with
The numbers of the interface pins
LiquidCrystal lcd (A0, A1, A2, A3, A4, A5) ;
#include //includes the servo library
Servo myservo1 ;
int ir_s1 = 2; int ir_s2 = 4 ;
int Total = 5 ;
int Space ;
5 int flag1 = 0 ;
int flag2 = 0 ;
void setup () {
pin Mode (ir_s1, INPUT) ;
pinMode (ir_s2, INPUT) ;
[Link] (3) ;
[Link] (100) ;
[Link] (16, 2) ;
[Link] (0,0) ;
[Link] (" Car Parking ") ;
[Link] (0,1) ;
[Link] (" System ") ;
delay (2000) ;
[Link] () ;
Space = Total ;}
void loop () {
if (digitalRead (ir_s1) == LOW && flag1==0){ if(Space>0){flag1=1 ;
if (flag2==0){[Link](0) ;
Space = Space-1 ;}} else {[Link] (0,0) ;
[Link](" Sorry not Space ") ;
[Link] (0,1) ;
[Link](" Available ") ;
delay (1000); [Link] () ; } }
if (digitalRead (ir_s2) == LOW && flag2==0){flag2=1 ;
if (flag1==0){[Link](0) ;
Space = Space+1 ;}
}
If (flag1==1 && flag2==1) {
delay (1000);
[Link](100) ;
flag1=0, flag2=0 ;
}
lcd. setCursor (0,0) ;
[Link]("Total Space: ") ;
6 [Link](Total); [Link] (0,1) ;
[Link]("Have Space: ") ;
[Link] (Space) ;
}