Tous les Cours | Les microcontrôleurs PIC | Les microcontrôleurs ATMEL AVR | Programmation en langage Pascal (Mikropascal) | Application en mikropascal : Porte automatique de garage | Programmation en langage C (Pic C Compiler PCWH) | Le Bus I2C | Mémoires série 24C32 | Tutorial Mikropascal | Tutorial Pic C Compiler | Tutorial Logipic | Tutorial Edit Algo | Tutorial IcProg | Chapitre 2b APPLICATION SUR LA PROGRAMMATION EN MIKROPASCAL PORTE DE GARAGE AUTOMATIQUE Application réalisée par Mr ABIDI Hatem (ISET Nabeul) et introduite dans le manuel de cours pour les élèves du BAC technologie pour plus d'informations contactez moi sur le forum (Administrateur). Les schémas et les programmes sont téléchargeables sur le site sous la page téléchargement. -- >activités 4,5,6 Mise en situation : Présentation du système :Porte automatique L'ouverture et la fermeture automatique de la porte d'un garage d'automobile sont assurées par un système technique comportant les éléments suivants : 1. Télécommande à distance. 2. Moteur à courant continu + réducteur. Equipement Atelier Garage Importateur - Vente directe Livraison rapide - garantie 1an www.directimportfr.com Logiciel: gagnez du temps AGL WinDev 15 : complet et rapide Version Express française gratuite www.pcsoft.fr Gestion programmes - DNC Gérez vos programmes Cn et dossiers de fabrication, transferts Cn. www.lmba.fr 13/04/2010 Application sur la Programmation en … technologuepro.com/…/application_m… 1/15
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Tous les Cours | Les microcontrôleurs PIC | Les microcontrôleurs ATMEL AVR | Programmation en langage Pascal (Mikropascal) |Application en mikropascal : Porte automatique de garage | Programmation en langage C (Pic C Compiler PCWH) | Le Bus I2C | Mémoires
série 24C32 |Tutorial Mikropascal | Tutorial Pic C Compiler | Tutorial Logipic | Tutorial Edit Algo | Tutorial IcProg |
Chapitre 2b
APPLICATION SUR LA PROGRAMMATION EN MIKROPASCAL PORTE DE GARAGE AUTOMATIQUE
Application réalisée par Mr ABIDI Hatem(ISET Nabeul) et introduite dans lemanuel de cours pour les élèves du BACtechnologie pour plus d'informationscontactez moi sur le forum(Administrateur). Les schémas et lesprogrammes sont téléchargeables sur lesite sous la page téléchargement. -->activités 4,5,6
Mise en situation :
Présentation du système :Porteautomatique
L'ouverture et la fermeture automatique de la porte d'un garage d'automobile sontassurées par un système technique comportant les éléments suivants :
1. Télécommande à distance.
2. Moteur à courant continu + réducteur.
Equipement Atelier GarageImportateur - Vente directeLivraison rapide - garantie 1anwww.directimportfr.com
Logiciel: gagnez du tempsAGL WinDev 15 : complet et rapideVersion Express française gratuitewww.pcsoft.fr
Gestion programmes - DNCGérez vos programmes Cn etdossiers de fabrication, transfertsCn.www.lmba.fr
13/04/2010 Application sur la Programmation en …
technologuepro.com/…/application_m… 1/15
3. Carte de commande + pupitre.
4. Lampe de signalisation.
5. Antenne de réception.
6. Capteurs de fin de course.
Dans une première partie on va s'intéresser à la télécommande qui nous permet decommander la porte à distance, le principe est basé sur l'émission d'un code binairesur dix bits [C0..C9] reconnaissable par la carte de commande de la porte.
Ce code est composé de deux parties :
Ordre d'ouverture /fermeture
Code d'identification de la télécommande
C9 C8 C7 C6 C5 C4 C3 C2 C1 C0
Pour donner la possibilité à l'utilisateur d'adapter une nouvelle télécommande à laporte du garage ou de la remplacer en cas de panne, le constructeur a prévu unmicroswitch sur la télécommande qui nous permet de définir le code d'identification.Celui-ci est généralement inscrit sur la carte de commande ou donné dans le manueld'utilisation de la porte.
Le code correspondant à l'ordre d'ouverture ou de fermeture de la porte (C9,C8) estle suivant : (10 : ordre d'ouverture ; 11 : ordre de fermeture)
Le schéma de la télécommande est le suivant :
13/04/2010 Application sur la Programmation en …
technologuepro.com/…/application_m… 2/15
on suppose que le code inscrit sur la carte de commande de la porte est le suivant :
Colorer les positions du microswitch SW1 sur la figure suivante :
Compléter les chronogrammes suivants :
Déterminer le rôle de l'algorithme suivant :
Algorithme test ;
Début
TRISAç $03;
TRISBç $FF;
POUR i variant de 7 jusqu'a 0 FAIRE
13/04/2010 Application sur la Programmation en …
technologuepro.com/…/application_m… 3/15
Début
SI PortB.i =1 ALORS Porta.2 ç 1
SINON Porta.2 ç 0;
Attente (10ms);
Fin;
Fin.
Ecrire un algorithme pour la télécommande de la porte automatique de garage.
1- Création d'un projet sur Mikropascal :
Première étape : Edition du projet
Lancer l'application Mikropascal puis cliquer sur l'icône « nouveau projet » ousélectionner le menu « Project ànew Project »
Deuxième étape :
Remplissez la boite de dialogue suivante avec des valeurs désirées.
Troisième étape : Saisie du programme
Lors de la fermeture de la fenêtre précédente on peut écrire notre programme sur l'éditeur de code comme suit :
13/04/2010 Application sur la Programmation en …
technologuepro.com/…/application_m… 4/15
Saisir le programme suivant :
program telecommande;
procedure trans_code;
var i : integer;
begin
for i:=7 downto 0 do
begin
if PortB.i =1 then setbit(porta,2) else clearbit(porta,2); delay_ms(10);
Après l'edition du programme on clique sur l'icône ou sur le menu« Projectàbuild »
La barre de progrès vous informera au sujet du statut de compilation. S'il y ades erreurs, on vous l'annoncera dans la fenêtre d'erreur
Si aucune erreur n'est produite,le message suivant sera affiché et le fichiertélécommande.hex sera crée dans le répertoire de travail.
· cinquième étape : Simulation
La simulation du programme peut se faire facilement avec le logiciel ISIS.
Charger le programme dans le microcontrôleur
13/04/2010 Application sur la Programmation en …
technologuepro.com/…/application_m… 6/15
NB: Si vous fermez l'oscilloscope pendant la simulation il n'apparaîtra pas lorsquevous relancer la simulation une deuxième fois, il faut le supprimer et placer un autreoscilloscope
· sixième étape : Chargement du programme dans le PIC16F84A
Lancer l'application IC-Prog puis sélectionner le type du microcontrôleur et enfin charger le fichier télécommande.hex
13/04/2010 Application sur la Programmation en …
technologuepro.com/…/application_m… 7/15
Brancher le programmateur sur le port du PC puis placer le microcontrôleur et lancerle chargement du programme.
· septième étape : Test du fonctionnement.
Sur plaque d'essai câbler le schéma de la télécommande et vérifier le fonctionnementpar un oscilloscope.
I- Application :
La carte de commande de la porte automatique est aussi construite à base dumicrocontrôleur PIC16F84A. Elle contient les éléments suivants :
· Un clavier matriciel 12 touches. Permettant à l'utilisateur d'ouvrir la porte enintroduisant un code de 4 chiffres manuellement.
· Un module récepteur hybride HF. permettant la réception d'ordre d'ouverture oude fermeture de la télécommande à distance.
· Des relais pour la commande du moteur et de la lampe.
Voici le schéma interne de la carte de commande :
13/04/2010 Application sur la Programmation en …
technologuepro.com/…/application_m… 8/15
Dans un premier lieu on s'intéressera à la commande par le clavier.
Schéma structurel d'un clavier 12 touches
Le principe de ce type de clavier est simple en effet l'appui sur une touche réalise uncontact direct entre la ligne et la colonne de cette touche.
Pour pouvoir lire une touche appuyée par le microcontrôleur on procède comme suit :
On fait un balayage sur les colonnes c'est-à-dire on envoie les séquences suivantes(100, 010, 001).
On lit l'état des lignes sur 4 bits (A, B, C, D)
On aura le tableau de correspondance suivant :
Séquence A B C D Touche appuyée
100 0 0 0 0 Aucune touche
1 0 0 0 T1
0 1 0 0 T4
0 0 1 0 T7
13/04/2010 Application sur la Programmation en …
technologuepro.com/…/application_m… 9/15
0 0 0 1 T10
010 0 0 0 0 Aucune touche
1 0 0 0 T2
0 1 0 0 T5
0 0 1 0 T8
0 0 0 1 T11
001 0 0 0 0 Aucune touche
1 0 0 0 T3
0 1 0 0 T6
0 0 1 0 T9
0 0 0 1 T12
On vous donne l'algorithme de lecture du clavier :
T ç PortB ; Tç T décalé à droite de 4 positions ; {Lecture de RB4, RB5, RB6 et RB7}
SIT=8 ALORS T:=12 ; SI T=4 ALORS T:=9 ; SI T=2 ALORS T:=6 ;
SI T=1 ALORS T:=3 ; {codage}
SI T<> 0 ALORS Sortie ; {sortie de la boucle si il y a appui sur une touche}
Fin ;
Fin.
1) En vue de simuler le fonctionnement du clavier sur le logiciel ISIS, on réalise leschéma suivant :
On vous donne le programme relatif à l'algorithme sous forme de procédure.
Compléter le programme suivant de sorte que le code de la touche appuyée soit sortisur le port A du microcontrôleur.
N'oublier pas de configurer les registres TRISA et TRISB du microcontrôleur.
Compiler le programme avec le logiciel Mikropascal puis simuler le fonctionnementavec le logiciel ISIS. Vous pouvez aussi tester le fonctionnement sur plaque d'essai.
13/04/2010 Application sur la Programmation en …
technologuepro.com/…/application_m… 11/15
program Telecommande;
var T: byte;
procedure clavier;
begin
while (true) do
begin
PortB:=%00000010 ; delay_ms(10) ; T :=PortB ; T:=(T shr 4);
if T=8 then T:=10; if T=4 then T:=7; if T=2 then T:=4;
if T=8 then T:=12; if T=4 then T:=9 ;if T=2 then T:=6 ;
if T=1 then T:=3 ; if T<> 0 then exit ;
end;
end;
begin
T:=0 ;
TRISA:=…………;
TRISB:=………... ;
Porta:=0;
while (true) do
begin
clavier;
if t=11 then t:=0;
13/04/2010 Application sur la Programmation en …
technologuepro.com/…/application_m… 12/15
porta:=T;
end;
End.
2) En vue de simuler le fonctionnement de la carte de commande, on simplifie lacommande par le clavier, au lieu que ce soit un code de 4 chiffres pour ouvrir la porteon choisira la touche " * ". La touche " # " aura pour rôle de fermer la porte.
On modifie le schéma de simulation comme suit :
Compléter les modifications apportées au programme principal et simuler lefonctionnement
Begin
T:=0 ;
trisa:=%00011000;
TRISB:=$F1 ;
porta:=0;
while (true) do
begin
porta:=0;
clavier;
if (T=10) then while porta.3=0 do begin porta.0:=1;porta.2:=1; end;
if (T=12) then while porta.4=0 do begin porta.1:=1;porta.2:=1 end;
end;
end.
On remarque que le microcontrôleur se trouve toujours dans une boucle qui est :
13/04/2010 Application sur la Programmation en …
technologuepro.com/…/application_m… 13/15
· La boucle de lecture du clavier.
ou
· La boucle de commande de la porte (ouverture ou fermeture)
Alors comment peut-on introduire dans ce programme une procédure qui répond aucode de la télécommande ?
II- Les interruptions
1- D'après le schéma interne de la carte de commande de la porte du garage onremarque que la réception du code transmit par la télécommande se fait sur la brocheRB0 alors :
· Déduire le type de l'interruption utilisée dans le programme.
· Trouver la valeur qu'on doit écrire dans le registre INTCON.
2- Ajouter la procédure d'interruption suivante au programme de la carte decommande. N'oublier pas de déclarer la variable "code" comme variable duprogramme principal et affecter la valeur trouvée précédemment de INTCON justeaprès la configuration des registres TRIS.
Procedure interrupt;
Begin
INTCON: = $00;
For i := 0 to 7 do
Begin
If PortB.0 =1 then setbit(code,i)
else clearbit(code,i);
delay_ms(10);
end;
INTCON := $90;
end;
3- Compiler le programme et simuler le fonctionnement par le logiciel ISIS.
NB: relier la broche RA2 du microcontrôleur de la télécommande à la broche RB0 dumicrocontrôleur de la carte de commande de la porte pour simuler la transmission ducode.
13/04/2010 Application sur la Programmation en …
technologuepro.com/…/application_m… 14/15
Application réalisée par Mr ABIDI Hatem (ISET Nabeu)l et introduite dans le manuelde cours pour les élèves du BAC technologie pour plus d'informations contactez moisur le forum (Administrateur). Les schémas et les programmes sont téléchargeablessur le site sous la page téléchargement. -->activités 4,5,6