Mini automate / "dataloggueur" programmable à PIC 16F877a
Mise à jour le 16 octobre 2008
http://matthieu.weber.free.fr
PROJET EN COURS DE DÉVELOPPEMENT...
Contexte :
Il m'est
venu l'idée de
concevoir ce mini automate / "dataloggueur"
pour réaliser la partie commande
de
divers automatismes, notamment en domotique, alarme et
sécurité,
photographie (intervallomètres...) et réaliser
diverses
animations lumineuses à l'occasion
d'évènements
festifs. L'affichage est d'origine confié à un écran LCD 128 X 64
caractères TACTILE rétro-éclairé bleu vendu chez Lextronics)
mais l'automate est adaptable à d'autre afficheurs, comme un LCD 2
X 16
caractères, ou un LCD graphique de taille quelconque (A vous d'adapter
le code en
conséquence ! ).
Cet automate
possède de nombreuses entrées sorties dont
certaines
peuvent fournir une certaine puissance (quelques ampères)...
Une sortie par LED infrarouge et radio 433Mhz permet de télécommander tout appareil domestique (...pour peu qu'il soit télécommandable), ce qui ouvre de nombreuses applications domotiques (programmateur pour la cafetière, les volets roulants ; réveil le matin avec la chaîne hi fi, simulateur de présence....). Une entrée infrarouge et radio pour acquérir les codes de ces télécommandes d'appareils est également prévue...
Vous trouverez ci-dessous un résumer de ses caractéristiques. Sachez que l'automate intègre certains composants de puissance permettant de l'interfacer aisément avec un équipement existant.
Avancement du projet :
Conception et spécifications | Schéma électronique | Dessin du circuit imprimé | Soudage et Réalisation | Développement logiciel (Firmware) | Tests et Validations |
100% | 95% | 80% | 0% | 5% | 0% |
Caractéristiques techniques :
Alimentation par 2 à 4 piles ou accus R6, et/ou par adaptateur secteur (6 à 24V DC).
Automate / dataloggueur robuste, compact et utilisable "sur le terrain".
Recharge automatique intégrée des accus.
Gestionnaire d'alimentation (différents "niveaux" d'alimentation).
Autonomie de plusieurs mois en mode "veille profonde", consommation < 100 µA.
Mesure et indication des tensions batteries, pile horloge et alimentation extérieure.
Horloge temps réel sur bus I²C avec calendrier. (Jour de la semaine, mois date et année). Sauvegarde par pile bouton lithium.
Afficheur LCD : Plusieurs types d'afficheurs utilisables : Alphanumériques, graphiques, tactiles... jusqu'à 8 bits de données + 10 bits de contrôles.
3 intensités de rétro éclairage de l'écran LCD.
8 sorties drain ouvert pouvant chacune piloter des charges allant jusqu'à 4 ampères sous 24 V. (L'état de ces 8 sorties est affiché sur la face avant du boîtier, par LEDs).
Deux de ces 8 sorties peuvent êtres configurées en PWM par le microcontrôleur (commande de moteurs par pont en H par exemple via 2 relais inverseurs).
Haut parleur (buzzer).
1 Micro électret (Pré-amplifié via un AOP).
1 Module émetteur radio Aurel 433 Mhz.
1 Module récepteur radio Aurel 433 Mhz.
1 LED émettrice pour télécommande infrarouge.
1 Récepteur pour télécommandes infrarouge du commerce standard ; 40Khz ou autre.
1 Photo diode pour mesurer l'éclairage ambiant (mesure analogique).
1 Port série RS-232c, réveil depuis le mode "sommeil profond" sur interruption par signal sur broche RX
1 Sonde de température (AD590M : - 55 à + 150°C).
1 Mémoire flash intégré au PIC.
1 Mémoire flash 24C16 sur port I2C, extensible à 1 Mbit.
1 Lecteur de carte mémoire flash type "Secure Digital" ou "MultiMedia Card" en 3V3.
1 Bus I²C.
1 Bus SPI (en 3V3).
Aisément interfaçable avec des circuits de puissance 230V, etc.
Mise à jour du Firmware via le port série. (Bootloader).
Schéma de principe et fonctionnement :
Schéma ( INCOMPLET, INEXACT- PROJET EN COURS ) de l'automate (Cliquez ici pour l'agrandir)
Architecture :Composant | Nom | Nb pattes | Fonction |
IC1 | PIC 16F877a | 40 | Microcontrôleur (ou 18F4420) |
IC2 | MAX 756 | 8 | Alimentation boost & ref. tension |
IC3 | MAX 220 ou 232 | 16 | Interface série RS-232c |
IC4 | 74 HCT 373 | 20 | Buffer 8 bits |
IC5 | PCF 8583 | 8 | Horloge temps réel I²C |
IC6 | 24C16 | 8 | EEPROM I²C |
IC7 | MPX 4400P | 4 | Capteur barométrique |
IC8 | AD 590 ou 592 | 3 | Capteur de température |
IC9 | LM 301 | 8 | Pré amplificateur micro & baro. |
IC10 | Connecteur | 9 | Connecteur carte Flash MMC/SD |
IC11 | TLC 2543 | 20 | CAN 12 bits, 10 voies |
Nom du périphérique | Nécessite... | Ne peut dialoguer au même moment que... | N° d'alimentation et consommation (sur batteries) : en veille / marche... | |||
Systèmes primaires |
Alim 1 | Alim 2 (/cs CAN) |
Alim 3 | |||
Régulateur (MAX 756) | - | - | 60 µA | 60 µA | 60 µA | 60 µA |
CPU (PIC 16F / 18F) | - | - | 2 µA / 7 mA | 2 µA / 7 mA | 2 µA / 7 mA | 2 µA / 7 mA |
Écran LCD (2 X 16 chars rétro éclairage OFF) | Alim 1 | CAN, EEPROM, MMC, RADIO tx, LED ir, Buzzer | - | 2 mA | - | - |
Clavier 12 touches & 7 résistances (1,5M) de tirages vers +Vcc | - | - | 18 µA | 18 µA | 18 µA | 18 µA |
Référence de tension 4,096V (MAX6341) | MAX 220 | - | - | - | 2 mA | - |
MAX 220 (Liaison RS232) | Alim 1 ou 2 | - | - | 1 mA | 1 mA | - |
Lecteur de cartes MMC & bus SPI | Alim 3 | LCD, CAN, EEPROM | - | - | - | 0? / 30 mA? |
EEPROM (24Cxxx) & bus I²C |
- | LCD, MMC, CAN | 1 µA / 1 mA | 1 µA / 1 mA | 1 µA / 1 mA | 1 µA / 1 mA |
Bus LIN ou CAN | - | - | +/- 0 mA | +/- 0 mA | +/- 0 mA | +/- 0 mA |
CAN | Alim 2 (/CS) & Référence de tension | LCD, MMC, EEPROM | 4 µA / 2,5 mA | 4 µA / 2,5 mA | 4 µA / 2,5 mA | 4 µA / 2,5 mA |
Sondes de températures ( AD590 @ 25°C ) |
CAN | cf. CAN | - | - | 280 µA X 2 | - |
Baromètre | CAN et Alim 3 | cf. CAN | - | - | - | X |
Entrée microphone | CAN et Alim 3 | cf. CAN | - | - | - | X |
Radio émetteur | Alim 3 | LCD | - | - | - | 4 mA |
Radio récepteur | Alim 3 | - | - | - | - | 3 mA |
Buzzer | - | LCD | 0 / 2 mA | - | - | - |
IR récepteur | Alim 1 ou 2 | - | - | 2 mA | 2 mA | - |
IR émetteur | - | LCD | 0 / 30 mA | - | - | - |
Photo diode | CAN | cf. CAN | 0 mA | 0 mA | 0 mA | 0 mA |
Consommation totale (sys. primaires+Alim X) Typique, en veille | - | - | 85 µA | 5,085 mA | 5,519 mA | 7,085 mA |
Consommation totale maximale (sys. primaires+Alim X), en marche, sans sorties de puissances | - | - | 32,5 mA | 12,5 mA | 16 mA | 37 mA |
Autonomie approx. maximale en veille ( 2 accumulateurs R6 en série (2000 mA/h) ) |
- | - | 1 an et 3 mois | > 8 jours | > 6 jours | > 5 jours |
Programme du PIC :
Affectation des entrées/sorties du Microcontrôleur PIC (IC1):
Patte | Nom | Connecté à | Patte | Nom | Connecté à |
1 | Vpp | RC Reset | 40 | RB7 | I.R. rx |
2 | RA0 | LCD D0 ; Radio tx ; P0* |
39 | RB6 | Radio rx ; Int. RS-232 DSR**** |
3 | RA1 | LCD D1 ; +Buzzer ; P1* | 38 | RB5 | Clavier numérique / Entrée ext. |
4 | RA2 | LCD D2 ; +Led I.R. ; P2* | 37 | RB4 | Clavier numérique / Entrée ext. |
5 | RA3 | LCD D3 ; CAN EOC**** ; P3* | 36 | RB3 | Clavier numérique / Entrée ext. |
6 | RA4 | LCD D4 ; /SS2 (SPI ext.)** ; P4* | 35 | RB2 | Clavier numérique / Entrée ext. |
7 | RA5 | LCD D5 ; /SS1 (MMC(1)**) ou I²C ; P5* | 34 | RB1 | Clavier numérique / Entrée ext. |
8 | RE0 | LCD D6 ; Bklight. D0* | 33 | RB0 | Clavier numérique / Entrée ext. |
9 | RE1 | LCD D7 ; Bklight. D1* | 32 | VDD | Sortie (6) du MAX 756 |
10 | RE2 | Alim 1 (LCD, I.R. rx, RS232) | 31 | GND | Masse |
11 | VCC | Sortie (6) du MAX 756 | 30 | RD7 | Clavier numérique / Entrée ext. |
12 | GND | Masse | 29 | RD6 | CE Buffer |
13 | OSC1 | Quartz 12 Mhz | 28 | RD5 | Alim 2 (Vref, RS232, T°C) |
14 | OSC2 | Quartz 12 Mhz | 27 | RD4 | Alim 3 (MMC, Radios, Micro-BF, baromètre) |
15 | RC0 | LCD RS ; Commande charge batterie | 26 | RC7 / RX | RS232 Sortie (12) MAX 220 |
16 | RC1 | P6 (PMW) | 25 | RC6 / TX | RS232 Entrée (11) MAX 220 |
17 | RC2 | P7 (PMW) | 24 | RC5 | MOSI MMC (2)** ; CAN Din |
18 | RC3 | I²C SCL ; CLK MMC (5)** ; CAN SCL | 23 | RC4 | I²C SDA ; MISO MMC (7)*** ; CAN Dout |
19 | RD0 | LCD CE1 | 22 | RD3 | Bus LIN ou CAN |
20 | RD1 | LCD CE2 | 21 | RD2 | Bus LIN ou CAN |
* : Via un buffer télécommandé (latch). Entrées 0 à 5 du buffer : Commande des sorties de puissance (Px), entrées 6 et 7 du buffer : Commande du rétro éclairage LCD (Bklight. Dx).
** : Conversion 5 volts vers 3V3 nécessaire (diode zéner plus résistances).*** : Conversion 3V3 volts vers 5V nécessaire (transistors plus résistances).
**** : Via une résistance (entrés/sorties simultanées de signaux).
Circuit imprimé et implantation des composants :
ARTICLE EN COURS DE RÉDACTION...
Photos :
ARTICLE EN COURS DE RÉDACTION...
http://matthieu.weber.free.fr