Electronique


Page d'accueil
Electronique

Robotique
Liens préférés

 

 

Partenaires

Comparateur de prix
Idee de cadeaux
Robot mobile IRBOT

Sommaire

 

 

 

 

 

 

 

 

Le microcontrôleur PIC16F84

C'est un microcontrôleur de la société Microchip qui offre un très bon rapport qualité/prix.

Ses principales caractéristiques:

Le tout sur un pavé de 18 pins.

Vous pouvez télécharger le datasheet complet (environ 120 pages) ainsi que des notes d'applications chez Microchip.

Début de page

 

Pour débuter

MPLAB - Plate forme de développement

Pour écrire un programme PIC il vous faut :

Tout cela est mis gracieusement à votre disposition par Microchip. Cela s'appelle MPLAB, téléchargez-le et installez-le sur votre micro.

Début de page

 

MPASM - L'assembleur

MPASM fait partie de MPLAB, c'est l'assembleur qui permet d'écrire le programme PIC.

Le meilleur moyen d'apprendre est d'analyser un programme simple, tel que clignotement d'une LED. Je vous conseille de télécharger le guide de MPASM de chez Microchip et de l'imprimer.

Pour vous donner un aperçu voici un petit bout de programme qui allume une LED lorsqu'on appui sur le bouton poussoir. La LED est connectée à la voie 0 et le B.P. à la voie 1 du port B.

 

toto btfss PORTB,1

b toto

bsf PORTB,0

 

toto est une étiquette

btfss est une instruction de test de bit (bit test file skip if set), elle test le bit 1 du registre PORTB, si ce bit est à 1 (Bouton poussoir appuyé) elle saute l'instruction suivante, c'est à dire qu'elle arrive à l'instruction bsf, si le bit est à 0 elle exécute l'instruction suivante

b toto branchement à l'étiquette toto, le programme boucle

bsf PORTB,0  bit set file, c'est à dire qu'elle positionne à 1 la voie 0 du PORTB (ce qui allume la LED)

 

Télécharger le programme complet (la LED change d'état à chaque appui sur le BP) : bp_led.zip

Début de page

 

La programmation des PICS

Auteur : Bigonoff

C'est un excellent cours sur la programmation du PIC16F84. Bigonoff vous apprend à programmer en assembleur. Il y décrit clairement toutes les fonctionnalités du PIC16F84. Toutes les instructions du Pic sont détaillées avec des exemples à l'appui. Je conseille vivement ce cours à tout ceux qui veulent se lancer dans la programmation des PIC. C'est un document Word en français de 188 pages.

En voici le Sommaire:

Un grand merci à Bigonoff pour cet excellent cours.

Téléchargez Bigocours révision 5

 

 

Le programmateur

Une fois le programme compilé, il faut le transférer dans la mémoire du microcontrôleur. Pour cela il vous faut :

Une petite interface matérielle

Ci-dessus, l'interface de programmation par le port série du PC. C'est une des meilleures interfaces de programmation, ne nécessite pas d'alimentation externe.

Ses caractéristiques :

Le kit comprend :

 

Un logiciel

Un logiciel qui assure le transfert des données entre le PC et le microcontrôleur (il est fourni avec le programmateur) ou bien il se trouve sur le Web.

Je vous conseille de loin ICPROG , c'est le meilleur logiciel de programmation de PIC à l'heure actuelle, et il a l'avantage d'être disponible en freeware.

Début de page

 

 

Votre premier programme

Clignotement d'une LED

Eh oui, il faut commencer petit pour terminer grand.

2 approches différentes :

Début de page

 

Carte d'expérimentation

Pour tester de nouveaux montages à base de PIC, il peut s'avérer utile de disposer d'une platine de développement. Pour ma part j'utilise la carte d'expérimentation pour PIC16F84 ci-dessus. Ce système permet de tester rapidement un PIC que vous avez réussi à programmer.

La platine dispose de sa propre tension d'alimentation 5V, d'un oscillateur quartz 4, 10 ou 20 Mhz, d'une zone pastillée permettant d'implanter des composants d'E/S, de 4 LED et un bouton poussoir pouvant être reliés aux E/S par des straps.

Début de page

Programmer en BASIC

Cette rubrique s'adresse à tout ceux qui veulent arriver rapidement à un résultat et qui n'ont pas envie de se mettre à l'assembleur .

Il est désormais tout à fait possible de programmer les PIC en d'autres langages, tel que le Basic, le C, le Pascal. Des produits très intéressants sont maintenant disponibles à des prix très doux.

Les modules PICBASIC

Un produit très intéressant est la gamme des modules PICBASIC. Ce sont des modules facilement programmables en BASIC, d'un rapport  qualité / prix sans équivalent sur le marché des microcontrôleurs. Ils révolutionnent l'usage des microcontrôleurs en les rendant accessible à tous. En plus, tout une gamme d'accessoires sont disponibles, écran LCD, télécommande IR ou radio, commande de moteurs, carte d'expérimentation ....

Voir aussi le Forum section PICBASIC

Autres liens

Ci-dessous une sélection de liens vers des sites proposant des compilateurs gratuit ou non .

 

Début de page

 

 

Des exemples de réalisation

Horloge DCF77

Il s'agit d'une horloge à mise à l'heure automatique par les signaux horaires DCF77 émis par l'émetteur de Francfort (Allemagne).

Ci-dessous la roue du temps.

On constate que dans l'espace de 60 sec sont transmis les informations des minutes, heures, jour, jour de la semaine, mois et année. Le programme de l'horloge DCF77 n'exploite que les informations des minutes et heures.

Image extraite du site DCF77

Un module de réception DCF77 de chez Conrad capte et démodule les signaux horaires. En sortie du module, un 0 logique correspond à une impulsion de 100ms, alors qu'un 1 logique correspond à une impulsion de 200ms. Le microcontrôleur mesure la durée des impulsions et décode le signal horaire. L'affichage de l'heure se fait sur un module série 4 x 7 segments de chez Sélectronic. Le traitement du signal horaire a lieu dans une routine d'interruption. Il reste 70% de mémoire disponible pour écrire le programme principal.

Télécharger le schéma,le programme, les organigrammes et la doc de l'horloge DCF77. (dcf77.zip)

Début de page

 

Programmateur de chauffage DCF77

Il s'agit d'un programmateur de chauffage électrique qui pilote les radiateurs de 5 zones en fonction de l'heure et de la présence des personnes. Pour alléger votre facture EDF, c'est le système idéal.

Il se compose de 2 modules

Caractéristiques:

Le chauffage par détection de présence fonctionne selon le principe suivant : tant qu'il y a une personne dans la pièce et que l'on est dans la plage horaire de fonctionnement, le chauffage fonctionne. Si la personne quitte la pièce, après une tempo de 30' le chauffage se met en veille. Quand une personne revient, le chauffage se rallume instantanément. En dehors des plages horaires le chauffage est en veille.

 

Téléchargez chauff.zip

Début de page

 

Horloge très originale

The propeller clock, d'après une idée ingénieuse de Bob Blick.

Un PIC16C84 tournoie à 1800 tr/mn en bout d'arbre moteur !!!

Sept LEDs en rotation donnent l'illusion de l'heure affichée dans l'espace.

Principe

Un moteur entraine une hélice (le circuit imprimé avec les LED), et le microcontrôleur (PIC16C84 ou F84) génère l'heure et change l'état d'une rangée de 7 LEDs afin de simuler l'affichage sur une matrice de 7x30 points. L'alimentation électrique est prise sur le bobinnage du moteur.

C'est une illusion mais l'effet obtenu est remarquable.

Vous trouverez toutes les informations (plan, schéma, logiciel, circuit imprimé, photos) relatives à sa construction sur la page Propeller Clock de Bob Blick.

Pour ma part, j'ai utilisé un moteur plat d'un lecteur de cartouche avec le circuit imprimé décris dans la page de Bob Blick. Le résultat est concluant.

 

Début de page

 

 

Télécommande par téléphone

Il s'agit d'une télécommande du système d'alarme (dans mon cas personnel) via le téléphone avec accusé de réception sous la forme d'un message vocal. L'accès est sécurisé par un mot de passe de 4 chiffres.

Après s'être identifié, le menu suivant est diffusé :

Pour modifier (l'état du système d'alarme) tapez le 1

Pour interroger (l'état du système d'alarme) tapez le 2

Après avoir effectué un choix, un message "Actif" ou "Arrêt" est diffusé en terme de réponse.

Le processus est dirigé par un PIC16F84, les messages vocaux sont mémorisés dans le circuit ISD1016A (ou 1416).

ISD1016A est un circuit de 28pins qui permet d'enregistrer et de rejouer un message vocal d'une durée de 16s, il peut être fractionné en plusieurs messages.

Télécharger le datasheet série 1000 d'ISD

Pour mémoriser les messages vocaux, il est nécessaire de réaliser un petit montage avec un micro de bonne qualité, un HP et des switchs pour sélectionner les adresses (cela est expliqué dans le datasheet).

Téléchargez com_tel.zip

Début de page

 

Boîtier d'alarme RS232

Ce système a été conçu pour une application professionnelle, mais peut être utilisé pour un usage personnel.

Il s'agit d'un boîtier capable de générer une alarme visuelle (affichage 7 segments du n° de l'alarme), sonore et matérielle (contact d'un relais). Le déclenchement de l'alarme se fait par le port série RS232 (à partir d'un modem, micro) par réception d'un mot de commande.

Le boîtier reconnaît 8 types d'alarme et gère également les fins d'alarme.

Ex: le boîtier est relié à un micro

pour déclencher l'alarme 1, il faut lui envoyer la chaîne " med1 " sur le port série

pour arrêter l'alarme, envoyez " $fin "

 

Télécharger boitier.zip

Début de page

 

 

Routine RS232

RS232 est le protocole de transmission de données en série. Il est notamment utilisé sur le port série des micros.

Il s'agit de la note d'application AN555 de Microchip que j'ai adaptée au PIC16F84. Des schémas d'interfaces avec le MAX232 sont proposés dans la note AN555.

Peut-être un peu compliquée, mais fiable.

Ses caractéristiques

 

Télécharger rs232.zip

Début de page

 

Afficheur LCD

Il peut s'avérer interessant de raccorder un module d'affichage LCD au microcontrôleur pour plusieurs raisons. Pour faciliter le débogage, pour donner un aspect plus professionnel à votre montage, pour afficher des informations utiles ...

Voici quelques liens interressants sur le principe de pilotage des modules LCD

 

Il existe plusieurs solutions de cablage pour piloter un module d'affichage LCD.

 

Solution 1 (Cablage complet en mode 8bits, 11fils )

Routine d'affichage (contrôle par 8bits) de caractères sur un module LCD de 2 lignes à partir d'un PIC16F84.

Téléchargez le schéma et la routine lcd.zip

 

Solution 2 (Cablage complet en mode 4 bits , 7fils)

Une autre routine LCD (contrôle par 4 bits) adaptée de la note d'application de Microchip par Norm Cramer : cramer.zip

 

Solution 3 (Cablage série en mode 4bits, 2fils)

Encore mieux, pilotage d'un module LCD à l'aide de 2 fils en utilisant un 74LS174 (Sextuple bascule de type D) cablé en registre à décalage. Les données sont transmises en série vers le registre à décalage et les sorties de celui-ci adressent le module d'affichage.

Voir la page LCD (fin de page) de Mike Pretko

 

Solution 4 (Utilisation d'un 2ème microcontrôleur piloté par liaison RS232)

 

 

Début de page

 

Télécommande infrarouge

Ce projet permet de visualiser les codes RC5 des télécommandes infrarouge Philips sur un afficheur LDC 2 x 20 caractères.

Je vous invite à aller visiter une autre page qui traite des télécommandes IR.

Télécharger ReadRC5.zip

 

Début de page

 

Système d'exploitation multitâches

Auteur : Pavel Baranov

Ce logiciel, nommé Posit1, est un système d'exploitation multitâches simplifié pour microcontrôleur PIC. Il permet d'écrire un programme complexe d'une manière très structurée.

Il se compose d'un programme principal os.asm qui exécute les différents sous-programmes ou tâches (t0.asm, t1.asm ...) à tour de role.

Chaque fichier tâche est découpé en 3 parties:

- la partie initialisation

- la partie programme principal

- le partie interruption

Il suffit de compiler os.asm, les autres fichiers y sont inclus.

En exemple d'application de Posit1, je vous invite à regarder le logiciel du robot de Pavel.

 

Télécharger Posit1 sur le site de Pavel Baranov

 

Début de page

 

Sonde logique multifonction

Il s'agit de la note d'application AN689 (Engineer's Assistant Using a PIC16F84A) de Microchip.

C'est un projet remarquable qui utilise toutes les ressources du PIC16F84.

C'est une sonde logique multifonction qui se compose :

  • d'une sonde de niveau logique
  • d'un analyseur d'état logique à 1 canal
  • d'un récepteur code série RS232
  • d'un fréquencemètre compteur

Le tout dans un instrument (une pointe de touche) mono circuit.

Toutes les fonctions sont supportées par le logiciel.

Affichage sur un module LCD (Hitachi) avec 2 lignes de 20 colonnes.

Télécharger la note d'application AN689 de Microchip.

Visiter la page d' Erik qui donne des informations interressantes pour la réalisation.

J'ai réussi à me procurer le logiciel en assembleur MPASM (non inclu dans la note), et le circuit imprimé double face aux formats .pcb (Protel), .bmp et .pdf.

Télécharger probe.zip

 

Début de page

 

Serrure à carte à puce

Auteur : Jean Louis JONDOT

Une application simple, pratique et surtout très pédagogique.

Ce dispositif permet de commander une serrure électrique par l'intermédiaire d'une ou de plusieurs cartes à puce de type PROM F256 ( carte téléphonique France Télécom usagée ou non ).

Seule la partie commande est étudiée, en effet la partie 'actionneur' peut être réalisée très simplement par l'intermédiaire d'un photo-triac ou d'un relais.

La commande de la serrure est composée d'un connecteur de carte à puce (pour la lecture d'une carte), d'une sélection d'un retard de 0 à 15 secondes (durée supplémentaire d'ouverture de la porte après le retrait d'une carte valide), d'un haut-parleur (générant une tonalité en cas de carte non reconnue ou invalide) et de deux voyants (signalant l'un l'ouverture de la porte et l'autre une alarme en cas de carte non reconnue ou invalide). Une alimentation de 3 à 5Volts est suffisante.

La sécurité du dispositif est assurée par l'utilisation de carte à puce possédant un numéro infalsifiable propre à chaque carte et indiqué en clair au dos de celle-ci.

 

Télécharger la documentation (Word97), les typons (Eagle 2.6), le programme : serrure.zip

Début de page

 

Circuit de reconnaisance vocale

Reconnaissance vocale avec VoiceDirect, kit d'expérimentation pour applications intégrées.

Le kit de reconnaissance vocale (VoiceDirect 364 Speech Recognition Kit) en provenance de chez Sensory (USA) permet d'intégrer facilement une fonction de reconnaissance vocale dans n'importe quelle application.

Caractéristiques:

Télécharger les datasheet de Voice Direct à partir du site de Sensory.

Début de page

 

Page d'accueil | Electronique | Robotique | Galerie photo | Liens préférés


Yvan.Heilig@wanadoo.fr
Date de dernière mise à jour : 17/09//2004