Vous êtes sur la page 1sur 4

Université Mohammed Seddik BENYAHIA – JIJEL A.

N : 2020 / 2021
Faculté des Sciences et de la Technologie
Département d'Electronique Licence Télécommunications, 3ème Année

Projet de Fin de Cycle

TP N° 2 : Applications à base d’Arduino


Travail 1 (Utilisation de l’entrée numérique) :
On utilisera un bouton poussoir (BP) qui commandera une LED à travers la carte
Arduino. La LED sera connectée à la broche 6 d’Arduino et le BP à la broche 9.
Le type du BP que nous allons exploiter dans le montage est ‘normalement ouvert’
(NO) (figure ci-contre), c’est un bouton qui est ouvert par défaut (pas de contact
entre les deux broches du bouton) et quand on appuie sur lui, il se ferme et fait
contact entre ces deux broches.

Le circuit en face ajoute une résistance de 10KΩ


"pull-up".

Lorsque le bouton-poussoir est ouvert (non pressé),


donc la broche est connectée à 5 Volts (à travers la
résistance pull-up) et nous lisons un état HIGH.
Lorsque le bouton est fermé (pressé), la broche est
connectée à la masse, de sorte que nous lisons un
état LOW.

En fonction de l’état du BP (On utilisera l’instruction


digitalRead), la LED s’allume ou bien s’éteint, et ce
avec l’instruction digitalWrite qui sert à écrire un
HIGH ou bien LOW sur la sortie 6.

Pour simuler un anti rebond, on pourra considérer la variation de tension aux bornes de l’interrupteur après
200 ms en utilisant l’instruction delay(). Nous allons voir aussi un premier exemple simple d'utilisation de
l’instruction conditionnelle : if … else.

- Réaliser le schéma de montage d’un BP qui commandera une LED sur la plaquette d’essais.
- Modifier le programme suivant pour que la carte Arduino commande la LED lors de la pression du
bouton :
// détection bouton poussoir

const int led = ...; // broche 6 pour la LED


const int button = 9; // broche 9 pour le bouton poussoir
void setup()
{
pinMode(led, ...); // on définit la led en sortie
pinMode(button, ...); // on définit le bouton en entrée
}
void loop()
{
// lecture bouton
if ( digitalRead(button) == ... )
digitalWrite(led, ...); // led allumée
else
digitalWrite(led, ...); // led éteinte
delay(...); // stabilisation 200 ms
}
PFC…………………………….….…L3 Télécommunications ………………Z. Santouh, O. Tekkouk et C. Boubakir……. 1
Travail 2 (Simulation des projets Arduino sur Proteus ISIS) :
Développé par la société Labcenter Electronics, Proteus est un logiciel destiné à
l’électronique. ISIS de Proteus est principalement connu pour éditer des schémas électriques, de
simuler ces schémas et de découvrir certaines erreurs dès l’étape de conception avant de passer
à la réalisation pratique.

Par défaut ISIS inclut plusieurs bibliothèques des composants électronique tel que les
microcontrôleurs, Afficheurs, circuits analogiques ou numériques, … Mais l’Arduino n’en fait pas
partie. Chaque étudiant doit ajouter la bibliothèque Arduino à ISIS, afin de pouvoir simuler ses
projets : Décompresser le dossier et copier ARDUINO.IDX et ARDUINO.LIB dans le dossier
Library de Proteus (suivez les explications des enseignants).

- Lancer le logiciel ISIS PROTEUS et saisir le schéma électrique du travail 1 (l’utilisation du


bouton poussoir (BP) qui commandera une LED) ;

- Lancer le logiciel ARDUINO et compiler le programme [Après la compilation de notre programme


Arduino, on peut afficher le lien du fichier.Hex directement en bas dans la zone de message, pour
cela, allez sur Fichier ---> Préferences -> et cocher (Afficher les résultats détaillés pendant :
compilation)]. Ou utiliser Croquis ---> Afficher le dossier des croquis ;

- Après avoir copier le chemin du fichier.hex, retourner à votre circuit, cliquez sur la carte arduino
dans le circuit, vous allez obtenir une boite de dialogue, coller le chemin de fichier.hex dans la
zone de program file comme suit et cliquer sur ok:

- Exécuter votre travail en cliquant sur le bouton play de l'ISIS.


PFC…………………………….….…L3 Télécommunications ………………Z. Santouh, O. Tekkouk et C. Boubakir……. 2
Travail 3 (Feux tricolores) :

Les objectifs visés de ce travail sont de permettre


aux étudiants de : savoir utiliser les LED, savoir
utiliser les intructions pinMode, digitalWrite pour
gérer les entrées sorties de l’Arduino, comprendre
comment déclarer les variables et les
constantes et enfin savoir comment utiliser delay
pour faire des temporisations.

- Réaliser les branchements du montage en face.

- Saisir les instructions du programme ci-dessous.

- Lancer l’exécution du programme …

/* principe :
* Ce programme fait fonctionner des feux tricolores.
* Six LED (vertes, oranges et rouge) sont reliées aux sorties 4 à 9
* Les sorties 4 à 6 forment le feu A1
* Les sorties 7 à 9 forment le feu B1
*/

// Initialisation des variables


const byte A1V = 4 ;
const byte A1O = 5 ;
const byte A1R = 6 ;
const byte B1V = 7 ;
const byte B1O = 8 ;
const byte B1R = 9 ;

//Délai des différents temps d’attente en millisecondes, on peut les changer facilement
const long TempsAttenteFeuRougeSeul = 2000;
const long TempsAttenteFeuVert = 30000;
const long TempsAttenteFeuOrange = 5000;

// Initialisation des lignes 4 à 9 en sortie


void setup () {
pinMode (A1V, OUTPUT) ;
pinMode (A1O, OUTPUT) ;
pinMode (A1R, OUTPUT) ;
pinMode (B1V, OUTPUT) ;
pinMode (B1O, OUTPUT) ;
pinMode (B1R, OUTPUT) ;
}

void loop () {
// Extinction de toutes les LED au départ
digitalWrite (A1V, LOW) ;
digitalWrite (A1O, LOW) ;
digitalWrite (A1R, LOW) ;
digitalWrite (B1V, LOW) ;
digitalWrite (B1O, LOW) ;
digitalWrite (B1R, LOW) ;

PFC…………………………….….…L3 Télécommunications ………………Z. Santouh, O. Tekkouk et C. Boubakir……. 3


// Allumage de A1V et B1R
digitalWrite (A1V, HIGH) ;
digitalWrite (B1R, HIGH) ;

// Début de cycle

// Concerne le feu A1
delay (TempsAttenteFeuVert) ; // Feu vert A1V pendant 30 secondes
digitalWrite (A1V, LOW) ; // Extinction de A1V
digitalWrite (A1O, HIGH) ; // et allumage de A1O
delay (TempsAttenteFeuOrange) ; //durée 5 secondes
digitalWrite (A1O, LOW) ; // Extinction de A1O
digitalWrite (A1R, HIGH) ; // et allumage de A1R
delay (TempsAttenteFeuRougeSeul) ; // Temporisation du chauffard !

// Concerne l'autre feu B1


digitalWrite (B1R, LOW) ; // Extinction de B1R
digitalWrite (B1V, HIGH) ; // et allumage de B1V
delay (TempsAttenteFeuVert) ; // Feu vert B1V pendant 30 secondes
digitalWrite (B1V, LOW) ; // Extinction de B1V
digitalWrite (B1O, HIGH) ; // et allumage de B1O
delay (TempsAttenteFeuOrange) ; // durée 5 secondes
digitalWrite (B1O, LOW) ; // Extinction de B1O
digitalWrite (B1R, HIGH) ; // et allumage de B1R
delay (TempsAttenteFeuRougeSeul) ; // Temporisation du chauffard !
digitalWrite (A1V, HIGH) ; // On est revenu au point de départ

// Feu A1 vert et feu B1 rouge : le cycle peut recommencer


}
- Ecrire un nouveau programme Arduino (adapté du programme précédent) pour implémenter le
chronogramme suivant représentant le temps de passage des véhicules dans un carrefour.

PFC…………………………….….…L3 Télécommunications ………………Z. Santouh, O. Tekkouk et C. Boubakir……. 4

Vous aimerez peut-être aussi