Afficheur changement de joueurs TP2

Documents pareils
ARDUINO DOSSIER RESSOURCE POUR LA CLASSE

IFT2880 Organisation des ordinateurs et systèmes

Conversion d un entier. Méthode par soustraction

FONCTION COMPTAGE BINAIRE ET DIVISION DE FRÉQUENCE

Série D65/D75/D72 Afficheurs digitaux modulaires

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

Activité initiation Arduino

Bien commencer avec un LaunchPad MSP430G et un Breadboard

CAISSE ENREGISTREUSE ELECTRONIQUE SE-G1

Atelier C TIA Portal CTIA04 : Programmation des automates S7-300 Opérations numériques

Manipulations du laboratoire

Flowcode - Mode d'emploi

USTL - Licence ST-A 1ère année Codage de l information TP 1 :

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

REALISATION D UNE CALCULATRICE GRACE AU LOGICIEL CROCODILE CLIPS 3.

V- Manipulations de nombres en binaire

MODE OPERATOIRE CIEL GESTION COMMERCIALE VERSION EVOLUTION BTS PME PMI

Les opérations binaires

Représentation d un entier en base b

TP 2 Réseaux. Adresses IP, routage et sous-réseaux

MICROINFORMATIQUE NOTE D APPLICATION 1 (REV. 2011) ARITHMETIQUE EN ASSEMBLEUR ET EN C

Mentions légales (non traduites) Introduction Légendes Schémas de raccordement Configuration de la S16...

VMT Mod : Ventilation modulée pour le tertiaire

Initiation à LabView : Les exemples d applications :

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

Programmation C. Apprendre à développer des programmes simples dans le langage C

Centrale d alarme DA996

Conférence sur les microcontroleurs.

COMMUNICATION ENTRE DEUX ORDINATEURS PAR LASER MODULE EN CODE MORSE OU BINAIRE.

Introduction à NetCDF

HAM841K CENTRALE D'ALARME POUR SYSTEMES DE SECURITE COMMERCIAUX ET D'HABITATION

Notice d installation du patch Lia 8.20

Une version javascript sera disponible directement dans le cours prochainement.

La mémoire. Un ordinateur. L'octet. Le bit

WIFI-DMX INTERFACE AUTONOME V 1.5.0

EDUMOBILE APPRENTISSAGE MOBILE ET USAGES PÉDAGOGIQUES DES TABLETTES

Travaux Pratiques de Commande par ordinateur 1 TRAVAUX PRATIQUES

MANUEL D INSTRUCTION

Enregistreur de Température pour PC DALLAS 1820

AMICUS 18 (2ème partie) 4) Présentation du logiciel Amicus IDE

Modules d entrées/sorties pour FX série XM07 et XM14

Le multiplexage. Sommaire

Manuel d installation Lenovo LJ2050N

Installation et configuration du serveur syslog sur Synology DSM 4.0

GPA770 Microélectronique appliquée Exercices série A

Informatique Générale

Logiciel de Base. I. Représentation des nombres

Encoder Encoder 1 sur 15. Codification fil par étage 15 étages max. + 2 flèches + signal de mouvement. Raccordements 0.1 mm²...

Codage d information. Codage d information : -Définition-

nom : Collège Ste Clotilde

Architecture matérielle des systèmes informatiques

INSTALLATION MICRO-SESAME

Le langage C. Séance n 4

Alarme intrusion filaire AEI HA zones

Mode d emploi pour lire des livres numériques

Assistant d e tablissement de Tableaux

LOGICIEL DC4D MONITOR

Initiation au binaire

CYLINDRE ET BÉQUILLE ÉLECTRONIQUES À BADGE Aperio E100 & C100

Durée estimée :1 journée Date de la réalisation : Description Fournisseur Référence Nombre PU HT LM35CZ, LM35AZ LM35DZ

ET 24 : Modèle de comportement d un système Introduction à Labview et initiation à la réalisation d un Instrument Virtuel (VI).

COMMANDER A DISTANCE LE ROBOT-PONG ETUDE DE LA TELECOMMANDE (2 nde PARTIE)

Dossier technique. Présentation du bus DMX et Utilisation des options EL13 / EL14 ERM AUTOMATISMES INDUSTRIELS 1 LE PROTOCOLE DMX 2


GUIDE Excel (version débutante) Version 2013

Les pourcentages. Un pourcentage est défini par un rapport dont le dénominateur est 100. Ce rapport appelé taux de pourcentage est noté t.

SIN-FPGA DESCRIPTION PAR SCHEMA

Transmission d informations sur le réseau électrique

Projet Robot Centaure

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Procédure appropriée pour éditer les diagrammes avec ECM Titanium

I- Définitions des signaux.

>> Lisez-moi d abord... Connecter le ZyXEL Prestige 650HW/HW-I

CARACTERISTIQUE D UNE DIODE ET POINT DE FONCTIONNEMENT

Procédure de sauvegarde - Cobian Backup

REALISATION d'un. ORDONNANCEUR à ECHEANCES

PIC EVAL Dev Board PIC18F97J60

Systèmes de transmission

CONFIGURATION ET UTILISATION

Procédure d utilisation de la fonction TELETRANSMISSION

IFT1215 Introduction aux systèmes informatiques

MICROCONTROLEURS PIC PROGRAMMATION EN C. V. Chollet - cours-pic-13b - 09/12/2012 Page 1 sur 44

Installation et Administration de SolidWorks Electrical CadWare Systems

Fiche Pratique. Présentation du problème. Installation du logiciel. Etape 1. MAJ le 17/10/2011

Codes d état, codes diagnostic, codes de pannes et programmes de contrôle. VKK ecovit /4

Eléments constitutifs et synthèse des convertisseurs statiques. Convertisseur statique CVS. K à séquences convenables. Source d'entrée S1

Classe : 1 ère STL Enseignement : Mesure et Instrumentation. d une mesure. Titre : mesure de concentration par spectrophotométrie

CAHIER DES CHARGES GESTION DES STOCKS

TP 1 : 1 Calculs en binaire, octal et hexadécimal

LES REGLEMENTS AVEC SOCIEL.NET DERNIERE MISE A JOUR : le 14 juin 2010

Technique opératoire de la division (1)

IN Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

ENVOI EN NOMBRE DE MESSAGES AUDIO

Vous avez dit... LED??? DOCLED V2 Page 1 / 14

Les techniques de multiplexage

Procédure pour emprunter ou réserver un livre numérique

Contrôleur de communications réseau. Guide de configuration rapide DN

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

Transcription:

AFF_TP2 Objectifs : Afficheur changement de joueurs TP2 Justifier la nécessité du multiplexage Définir le codage BCD sur 2 digits Tester un programme d interruption sur carte ARDUINO Mettre en œuvre un programme de test sur carte ARDUINO G.COLIN Ressources disponibles : Site en français : http://www.mon-club-elec.fr/ puis rubrique La traduction Française de la référence Arduino Internet Afficheur étudié : Face avant Face arrière En face arrière, des boutons poussoirs (+ et -) permettent de régler les numéros des joueurs. Des afficheurs 7 segments visualisent ces numéros. Les boutons poussoirs IN et OUT permettent l affichage en face avant du numéro sélectionné. Ce TP2 porte sur l affichage des numéros en face arrière, à l aide d afficheur 7 segments. Multiplexage de la commande des afficheurs Chaque afficheur comporte 7 segments, soit pour les 4 afficheurs en face arrière 28 segments. Si chaque segment est commandé par une ligne de port du micro contrôleur, la commande des afficheurs en face arrière nécessite 28 pattes de port programmé en sortie. Chaque diode électroluminescente du segment doit être protégée par une résistance de limitation (soit 28 résistances au total). A cela, il faut ajouter des pattes pour commander l afficheur en face avant (2x7), plus les pattes pour les boutons poussoirs programmées en entrée. Les afficheurs 7 segments utilisés ont la référence 5082 7650, et la documentation est donnée en annexe. Le courant maximal est de 30mA par segment. On choisira un courant compris entre 10mA et 20 ma par segment. On souhaite utiliser un micro contrôleur de la même famille que celui de la carte ARDUINO (ATmega 2560) car tout le développement logiciel sera fait sur cette carte. Ci-dessous, des extraits de la documentation des microcontrôleurs de la même famille :

De ces 2 tableaux, on en déduit que : - Le circuit ATmega 2560 (circuit 100 pattes) dispose de 86 entrées/sorties Le circuit ATmega2561 (circuit 64 pattes) dispose de 54 entrées/sorties. - Chaque patte I/O peut délivrer 40 ma, mais le total du courant doit être inférieur à 200mA. Le multiplexage consiste à ne commander qu un seul afficheur à la fois. Exemple ci-dessous pour 2 afficheurs à cathode commune : Phase 1 : T1 passant T2 bloqué. On place le code pour l afficheur 1 Phase 2 : T1 bloqué T2 passant. On place le code pour l afficheur 2 NB : Dans ce cas chaque segment est commandé par un niveau haut (1), et les transistors sont également commandés par un niveau haut (1). Pour 4 afficheurs, il y aurait 4 phases (afficheur 1 - afficheur 2 - afficheur 3 - afficheur 4)

Exemple ci-dessous pour 2 afficheurs à anode commune : Phase 1 : T1 passant T2 bloqué. On place le code pour l afficheur 1 Phase 2 : T1 bloqué T2 passant. On place le code pour l afficheur 2 NB : Dans ce cas chaque segment est commandé par un niveau bas (0), et les transistors sont également commandés par un niveau bas (0). Pour 4 afficheurs, il y aurait 4 phases (afficheur 1 - afficheur 2 - afficheur 3 - afficheur 4) NB : On est ici obligé de mettre un transistor car sinon le courant total serait supérieur au courant admissible par une patte I/O général (40 ma max.). 1.1) Indiquer les avantages et les inconvénients du multiplexage en considérant les points suivants, pour 4 afficheurs 7 segments: Nombre de pattes utilisées sur le microcontrôleur Nombre de résistances Nombre de transistors Le courant maximal que peut fournir le microcontrôleur Le niveau d éclairement des leds Conversion binaire/bcd On souhaite réaliser une fonction programmée qui nous retourne le code BCD d un nombre binaire, pour des nombres compris entre 0 et 99. 2.1) Compléter le tableau ci-dessous. Entrée Sortie Décimal binaire hexadécimal Code BCD hexadécimal Décimal 15 00001111 0F 00010101 15 21 25 56 78 2.2) Montrer que, avec les exemples ci-dessus, Sortie = Entrée + 6 dizaine

On donne ci-dessous un programme de test et la fonction de conversion. Affichage en Héxadécimal La sortie de la fonction de type byte (8 bits) L entrée de la fonction de type byte (8 bits) Le programme (test_conversion_bcd.txt) est donné en annexe pour être copier sous ARDUINO. 2.3) Tester le programme sur la carte ARDUINO. 2.4) Expliquer les valeurs affichées (qui sont en hexadécimales) et conclure. Interruption par TIMER Les microcontrôleurs disposent de plusieurs TIMER, dont le principal composant est un compteur incrémenté par une horloge interne ou externe. Une des applications de ces TIMER est d interrompre régulièrement l exécution du programme principal pour exécuter une procédure particulière, appelé programme d interruption. Dans le cas du multiplexage, cette application va permettre de changer d afficheur à intervalle de temps régulier. Une recherche sur internet à permis de télécharger une bibliothèque qui utilise le TIMER 1 pour produire une interruption à intervalle de temps régulier. Cette bibliothèque s appelle «TimeOne». Pour ajouter cette bibliothèque à ARDUINO, suivre la démarche suivante : Télécharger la bibliothèque «TimeOne» Décompresser la bibliothèque dans le répertoire «libraries» du répertoire ARDUINO Ouvrir l exemple ISRBlink : fichier\exemples\timerone\isrblink

Tester le programme sur la carte ARDUINO. Observer la led jaune brancher sur la patte 13. Modifier la valeur 100000 par la valeur 500000. Essayer avec d autres valeurs. 3.1) Donner le rôle de la fonction Timer1.initialise() La fonction Timer1.attachInterrupt permet de déclarer le nom de la fonction à appeler lors de l interruption provoquée par le Timer1. La fonction digitalread(13) lit l état de la patte 13. L opération ^ est un OU exclusif. 3.2) Indiquer le résultat de a^1 (envisager le cas où a=0, puis le cas où a =1) 3.3) En déduire l effet sur la patte 13 de l instruction : digitalwrite( 13, digitalread( 13 ) ^ 1 ); 3.4) Indiquer les opérations réalisées dans la boucle principale loop() 3.5) Pour résumer, expliquer comment fonctionne le programme d interruption associé au Timer1. Afficheur 7 segments à anode commune ou cathode commune Les afficheurs 7 segments utilisés ont la référence 5082 7650, et la documentation est donnée en annexe. 4.1) Déterminer à partir de la documentation le type d afficheur (anode ou cathode commune). Le programme de test est donné en annexe (aff_mux_2digits.txt). Une partie du programme a volontairement été effacée. Certaines valeurs sont à ajuster. La directive de compilation #define permet de déclarer un texte pour en remplacer un autre. Par exemple, dans le programme de test : #define ON 0 le texte ON sera remplacé par la valeur 0 lors de la compilation #define OFF 1 le texte OFF sera remplacé par la valeur 1 lors de la compilation La fonction programmée «commande_7segments(byte code_bcd)» étudiée lors du TP AFF_TP1, a été modifiée : les 0 et les 1 ont été remplacés par des ON et des OFF.

4.2) Sachant que dans la version définitive du projet, on ne sait pas quelle version d afficheur (anode ou cathode commune) sera utilisée, indiquer l intérêt de ce changement dans la fonction «commande_7segments(byte code_bcd)». 4.3) Compléter les lignes manquantes de cette fonction (voir AFF_TP1). Programme d interruption Dans le programme de test fourni (aff_mux_2digits.txt): 5.1) Quelle est le nom de la fonction qui sera appelé régulièrement, à chaque interruption provoquée par le TIMER1? La ligne de programme «BCDL=BCD & 0x0F;» réalise un ET entre la variable 8 bits BCD et la valeur 0x0F (00001111 b ) 5.2) Effectuer l opération suivante (on rappelle que a 0=0 et a 1=a) B7 B6 B5 B4 B3 B2 B1 B0 ET 0 0 0 0 1 1 1 1 = La ligne de programme «BCDH=BCD >>4;» place dans la variable BCDH la valeur contenue dans BCD décalée de 4 bits vers la droite. aprés opération 5.3) Indiquer les valeurs récupérées dans BCDL et BCDH après ces 2 dernières opérations. 5.4) Compléter les 2 lignes manquantes de la fonction «commutation()». Test sur carte ARDUINO La maquette de test comporte 2 afficheurs 7 segments à anode commune. La connectique est donnée ci-dessous : Commande afficheur dizaine Commande afficheur unité g +5V a

6.1) Réaliser le câblage entre la carte ARDUINO et la carte Afficheur 6.2) Implanter le programme dans la carte ARDUINO 6.3) Procéder aux modifications nécessaires. Faire constater le fonctionnement au prof. 6.4) Imprimer le programme complet, à coller sur le compte rendu. Pour aller plus loin Cette partie ne concerne que les élèves qui ont pris beaucoup d avance Dans le cadre du projet envisagé, nous utilisons 2 afficheurs de 2 digits chacun. On peut envisager de multiplexer les 4 afficheurs 7 segments. Il faudra alors déclarer 2 variables BCD1 et BCD2 ( à la place d une seule BCD). 7.1) Proposer un nouveau programme pour la fonction commutation().