PIC + Clock
Répondre à la discussion
Affichage des résultats 1 à 15 sur 15

PIC + Clock



  1. #1
    invite0b1a0402

    PIC + Clock


    ------

    Bonjour a tous

    Voila, je suis un 1ere STI electronique, un peu débutant mais passionné.

    Je suis en train de construire une éolienne qui rechargerais une batterie. Cette batterie servira pour alimenter un brumisateur et des ventilateurs qui seront dans ma serre. Entre eux, je mettrais un thermostat MK138 pour que les composant s'allume au dessus de 20°C. Mais je voudrais installer un PIC où le thermostat serait raccorder. Ce Pic contrôlera les ventilos lorsque la chaleur dépasse les 20°C (ou 25°C) et tourne jusqu'à temps que la température baisse (un peu dure dans une serre, surtout en été). Ce PIC contrôlera également un brumisateur sur un temps donné (5 minutes de fonctionnement toutes les 15 minutes) avec une température superieur de 20°C. Mon prof d'électronique m'a expliqué qu'il faut un Quartz et deux condensateurs au bornes du Clk du PIC pour lui instaurer un temps.

    Mais questions seraient de savoir:
    - quels PIC choisir ?
    - quelles valeurs pour le quartz et les deux condensateurs ?
    - sur quoi doit-on raccorder les deux condensateurs en entrée ?

    Pour précision, je travaille sur du 12V (pas de risque j'espère avec le PIC)

    merci

    -----

  2. #2
    mortaurat

    Re : PIC + Clock

    Un pic en 12V il fait "pan" =)

    Tu peut prendre un 18f2550 à 4MHz.
    Les condo de compensation => on s'en tape, sauf si tu veux exactement avoir 4MHz, et non 4 000 085 Hz

  3. #3
    invite0b1a0402

    Re : PIC + Clock

    ok

    Mais le PIC, je dois l'alimenter en 5V ?

    Les condensateur servent juste à être plus précis pour la frequence de l'horloge ?

  4. #4
    Gérard

    Re : PIC + Clock

    Voir les cours de Bigonoff, c'est la bible.

  5. A voir en vidéo sur Futura
  6. #5
    RISC

    Re : PIC + Clock

    Salut,
    Citation Envoyé par mortaurat Voir le message
    Un pic en 12V il fait "pan" =)
    Dans la plupart des cas ton affirmation est vraie, mais....il existe plusieurs PIC haute tension (versions "HV" comme High voltage) qui ont un régulateur intégré et qui peuvent donc être utilisé sous 12V, 24V voire plus.

    Exemple : PIC16HV785, PIC12HV615,PIC16HV610,
    Exemple d'utilisation : le...controle moteur pour ventilateur

    Il existe des notes d'applications pour ces PICs "un peu spéciaux" sur la page de leur datasheet.

    Leur avantage est généralement qu'ils incorpore plus d'analogique comme un AOP ou un AOP+un comparateur

    a+

  7. #6
    RISC

    Re : PIC + Clock

    Salut,
    Citation Envoyé par iverson44 Voir le message
    Je suis en train de construire une éolienne qui rechargerais une batterie. Cette batterie servira pour alimenter un brumisateur et des ventilateurs qui seront dans ma serre. Entre eux, je mettrais un thermostat MK138 pour que les composant s'allume au dessus de 20°C. Mais je voudrais installer un PIC où le thermostat serait raccorder. Ce Pic contrôlera les ventilos lorsque la chaleur dépasse les 20°C (ou 25°C) et tourne jusqu'à temps que la température baisse (un peu dure dans une serre, surtout en été). Ce PIC contrôlera également un brumisateur sur un temps donné (5 minutes de fonctionnement toutes les 15 minutes) avec une température superieur de 20°C. Mon prof d'électronique m'a expliqué qu'il faut un Quartz et deux condensateurs au bornes du Clk du PIC pour lui instaurer un temps.

    Mais questions seraient de savoir:
    - quels PIC choisir ?
    - quelles valeurs pour le quartz et les deux condensateurs ?
    - sur quoi doit-on raccorder les deux condensateurs en entrée ?
    A vérifier : je pense que pour ton application, la durée n'a pas a être très "précise". Si ma supposition est vraie, tu peux te passer d'un oscillateur externe en utilisant l'horloge interne des PIC (un oscillateur RC). Leur précision varie en fonction de la température de fonctionnement et de "l'age" du PIC. Les PICs récents ont des tolérances plus serrées sur la dérive de la fréquence en fonction de la température. De l'ordre de +/-5% (anciens PICs) à +/- 2% pour les plus récents sur toute la gamme de température, c-à-d -40 à +85C.

    a+

  8. #7
    mortaurat

    Re : PIC + Clock

    Hey risc je me posais une question,
    lorsque l'on dit qu'on utilise "l'oscillateur interne du pic", on n'utilise aucun composant exterrieur ?
    Je n'est jammais essayé alors simple curiosité =)

  9. #8
    invite7a49d0d5

    Cool Re : PIC + Clock

    Citation Envoyé par mortaurat Voir le message
    Hey risc je me posais une question,
    lorsque l'on dit qu'on utilise "l'oscillateur interne du pic", on n'utilise aucun composant exterrieur ?
    Je n'est jammais essayé alors simple curiosité =)
    Bonsoir,

    oui c'est ça, l'horloge est générée par le pic...
    sans composants additionnels (quartz, ...)...

    par exemple sur un 16F88 on règle la fréquence (max 8Mhz) avec
    le registre OSCON (et on peut l'affiner avec OSCTUNE).

    et en choisissant "_INTRC_IO" au lieu de "HS" dans les fusibles...

    et ça "libère" 2 broches (et plus de quartz + 2C)...

    sur des pics plus récents (16F1xxx) l'horloge interne
    peut "monter" @ 32Mhz...

    vede
    ;O]
    ______________________________ _____
    ...

    un doc à ce sujet
    http://pagesperso-orange.fr/fabrice....ne%2016F88.htm

  10. #9
    invite7a49d0d5

    Cool Re : PIC + Clock

    ps :
    et ça fonctionne très très bien...
    tant que pas besoin de "fine" précision (1/10000s en gros gros)...

    et c'est "étalonnable"... avec OSCTUNE...
    pour ceusses qu'ont besoins d'une précision "atomique" ;O]

    ______________________________ ____________
    ...

  11. #10
    mortaurat

    Re : PIC + Clock

    Citation Envoyé par vede Voir le message
    pour ceusses qu'ont besoins d'une précision "atomique" ;O]
    Jviens de voir ca, precision +- 1%, c'est vraiment pas mal.
    Bon ca doit être du RC vu le coefficient de qualité un peut pourri =)

    Par compte, je ne capte pas du tout l'interet de la famille 16F1xx.
    Ce sont des "mid-range" ameliorés. Ils sont moins rapides et moins performant que les 18F pour un prix equivalent (d'autant plus que nous, microchip, c'est du gratuit =)). T'a une idée ?

  12. #11
    RISC

    Re : PIC + Clock

    Citation Envoyé par mortaurat Voir le message
    Par compte, je ne capte pas du tout l'interet de la famille 16F1xx.Ce sont des "mid-range" ameliorés.
    Les 16F1xxx tournent à 32MHz, sont compatibles avec le soft des anciens PIC16 mais surtout...le code C compilé diminue de 30 à 40% grâce aux 14 nouvelles instructions. Ils ont beaucoup plus de timers, de Flash et de RAM
    Si tu doit refaire un produit initialement conçu avec un PIC16, c'est beaucoup plus rapide de migrer sans avoir à tout refaire

    Ils sont moins rapides et moins performant que les 18F pour un prix equivalent (d'autant plus que nous, microchip, c'est du gratuit =)). T'a une idée ?
    Moins rapides et moins performants, oui mais il y a par exemple des petits boitiers jusqu'à 8 broches avec UART/I2C/SPI..
    Ils ont aussi PLUS de timers que les PIC18 dont 3 timers indépendants qui pilotent des PWM. Très pratique pour le contrôle moteur

    Je viens de voir récemment des nouveaux PIC12F1xxx et PIC16F1xxx qui sont annoncés pour ne consommer que 50uA / MHz ! Pour les applis sur piles c'est certainement imbattable...et introuvable dans la famille PIC18 ;=)

    a+

  13. #12
    Qristoff
    Animateur Électronique

    Re : PIC + Clock

    Ce qui est pratique aussi pour des applications pouvant nécessiter une programmation journalière (je pense que la gestion d'une serre en est une !) est d'utiliser une horloge RTC associé au pic (il semble qu'il y ai des pics avec la fonction RTC intégrée mais je n'ai plus la référence en tête).
    Et ça simplifie la programmation sans se soucier de gérer les timers et autres gestions du temps, il suffit d'écrire: si heure=18:00 alors je démarre arrosage ou ventilateurs....
    Pour la RTC, j'utilise souvent le DS1302 trés simple mais efficace !
    Tout existe, il suffit de le trouver...!

  14. #13
    invite0b1a0402

    Re : PIC + Clock

    Je n'ai pas compris comment on configure le pic pour lui permettre d'utiliser lui-même son horloge.
    Je suis sous le logiciel flowcode et je ne comprends pas comment configurer le pic. Je ne sais pas ou faut mettre OSCON, OSCTUNE. _INTRC_IO.

    Si quelqu'un pouvait m'en ire un peu plus ?
    Et faut-il raccorder un composant ou quelque chose aux broche du pic pour que cette horloge fonctionne ?

  15. #14
    invite0b1a0402

    Re : PIC + Clock

    Pour mon code C, j'obtiens cela.
    Et je voulais savoir si cela l'horloge fonctionnerait avec cette config ?

    //****************************** ****************************** ************************
    //**
    //** File name: D:\tony\Electronique\Flowcode\ pic16f88.c
    //** Generated by: Flowcode v3.1.0.31
    //** Date: Saturday, April 10, 2010 21:41:41
    //** Licence: Professional
    //**
    //** ***UNREGISTERED***
    //**
    //**
    //** http://www.matrixmultimedia.com
    //****************************** ****************************** ************************


    //Définir pour microcontrôleur
    #define P16F88
    #define MX_EE
    #define MX_EE_TYPE2
    #define MX_EE_SIZE 256
    #define MX_SPI
    #define MX_SPI_B
    #define MX_SPI_SDI 1
    #define MX_SPI_SDO 2
    #define MX_SPI_SCK 4
    #define MX_UART
    #define MX_UART_B
    #define MX_UART_TX 5
    #define MX_UART_RX 2
    #define MX_I2C
    #define MX_I2C_B
    #define MX_I2C_SDA 1
    #define MX_I2C_SCL 4
    #define MX_PWM
    #define MX_PWM_PORT portb
    #define MX_PWM_TRIS trisb
    #define MX_PWM_CNT 1
    #define MX_PWM_1 0
    #define MX_PWM_1a 3

    //Fonctions
    #include <system.h>
    #pragma CLOCK_FREQ 4000000

    ;Program Configuration Register 1
    __CONFIG _CONFIG1, _CP_OFF & _CCP1_RB0 & _DEBUG_OFF & _WRT_PROTECT_OFF & _CPD_OFF & _LVP_OFF & _BODEN_OFF & _MCLR_ON & _PWRTE_ON & _WDT_OFF & _INTRC_CLKOUT
    ; bits de configuration :
    ; Code protection OFF
    ; CCP1 function on RB0
    ; In-Circuit Debugger OFF
    ; FLASH Program Memory Write protection OFF
    ; Data EE Memory Code Protection OFF
    ; Low Voltage Programming OFF
    ; Brown-out Reset OFF
    ; RA5/MCLR pin function is MCLR
    ; Power-up Timer ON
    ; Watchdog Timer OFF
    ; INTRC oscillator ; CLKO function on RA6/OSC2/CLKO

    //Configuration de données

    //Fonctions internes
    #include "C:\Program Files\Matrix Multimedia\Flowcode V3\FCD\internals.h"

    //Déclarations de fonction Macro
    void FCM_Entree_sortie();


    //Déclarations de Variable
    char FCV_THERMOSTAT;
    char FCV_OFF;
    char FCV_ON;



    //Définitions supplémentaires


    //Implémentations Macro

    void FCM_Entree_sortie()
    {

    //Code C
    //Code C:
    trisa=0x80;
    trisb=0x00;
    option_reg=0x00;


    }

    //Installation supplémentaire


    void main()
    {

    //Initialisation
    ansel = 0;
    cmcon = 0x07;


    //Code d'initialisation d'Interruption
    option_reg = 0xC0;


    //Entree / sortie
    //Appel d'une Macro: Entree_sortie
    FCM_Entree_sortie();


    //Calcul
    //Calcul:
    // OFF = 0
    // ON = 1
    FCV_OFF = 0 ;
    FCV_ON = 1 ;


    //Boucle
    //Boucle: Tant que1
    while( 1 )
    {
    //Entrée
    //Entrée: A0 -> Thermostat
    trisa = trisa | 0x01;
    FCV_THERMOSTAT = ((porta & 0x01) == 0x01);


    //Condition
    //Condition: Thermostat = ON?
    if( FCV_THERMOSTAT == FCV_ON )
    {
    //Ventilo
    //Sortie: ON -> B4
    trisb = trisb & 0xef;
    if (FCV_ON)
    portb = (portb & 0xef) | 0x10;
    else
    portb = portb & 0xef;


    //Brumisateur
    //Sortie: ON -> B0
    trisb = trisb & 0xfe;
    if (FCV_ON)
    portb = (portb & 0xfe) | 0x01;
    else
    portb = portb & 0xfe;


    //Pause
    //Pause: 300 s
    delay_s(255);
    delay_s(45);


    //Sortie
    //Sortie: OFF -> B4
    trisb = trisb & 0xef;
    if (FCV_OFF)
    portb = (portb & 0xef) | 0x10;
    else
    portb = portb & 0xef;


    //Pause
    //Pause: 900 s
    delay_s(255);
    delay_s(255);
    delay_s(255);
    delay_s(135);


    } else {
    //Brumisateur + ventilo
    //Sortie: OFF -> PORT B
    trisb = 0x00;
    portb = FCV_OFF;


    //Pause
    //Pause: 300 s
    delay_s(255);
    delay_s(45);


    }


    }


    mainendloop: goto mainendloop;
    }

    désolé, mais c'est un peu long

  16. #15
    Laboum

    Re : PIC + Clock

    Bonsoir,
    Citation Envoyé par iverson44 Voir le message
    désolé, mais c'est un peu long
    Code:
    //****************************** ****************************** ************************
    //**
    //** File name: D:\tony\Electronique\Flowcode\ pic16f88.c
    //** Generated by: Flowcode v3.1.0.31
    //** Date: Saturday, April 10, 2010 21:41:41
    //** Licence: Professional
    //**
    //** ***UNREGISTERED***
    //**
    //**
    //** http://www.matrixmultimedia.com
    //****************************** ****************************** ************************
    /Définir pour microcontrôleur
    #define P16F88
    #define MX_EE
    #define MX_EE_TYPE2
    #define MX_EE_SIZE 256
    #define MX_SPI
    #define MX_SPI_B
    #define MX_SPI_SDI 1
    #define MX_SPI_SDO 2
    #define MX_SPI_SCK 4
    #define MX_UART
    #define MX_UART_B
    #define MX_UART_TX 5
    #define MX_UART_RX 2
    #define MX_I2C
    #define MX_I2C_B
    #define MX_I2C_SDA 1
    #define MX_I2C_SCL 4
    #define MX_PWM
    #define MX_PWM_PORT portb
    #define MX_PWM_TRIS trisb
    #define MX_PWM_CNT 1
    #define MX_PWM_1 0
    #define MX_PWM_1a 3
    
    //Fonctions
    #include <system.h>
    #pragma CLOCK_FREQ 4000000
    
    ;Program Configuration Register 1
    __CONFIG _CONFIG1, _CP_OFF & _CCP1_RB0 & _DEBUG_OFF & _WRT_PROTECT_OFF & _CPD_OFF & _LVP_OFF & _BODEN_OFF & _MCLR_ON & _PWRTE_ON & _WDT_OFF & _INTRC_CLKOUT
    ; bits de configuration :
    ; Code protection OFF
    ; CCP1 function on RB0
    ; In-Circuit Debugger OFF
    ; FLASH Program Memory Write protection OFF
    ; Data EE Memory Code Protection OFF
    ; Low Voltage Programming OFF
    ; Brown-out Reset OFF
    ; RA5/MCLR pin function is MCLR
    ; Power-up Timer ON
    ; Watchdog Timer OFF
    ; INTRC oscillator ; CLKO function on RA6/OSC2/CLKO
    
    //Configuration de données
    
    //Fonctions internes
    #include "C:\Program Files\Matrix Multimedia\Flowcode V3\FCD\internals.h"
    
    //Déclarations de fonction Macro
    void FCM_Entree_sortie();
    
    //Déclarations de Variable
    char FCV_THERMOSTAT;
    char FCV_OFF;
    char FCV_ON;
    
    //Définitions supplémentaires
    
    //Implémentations Macro
    
    void FCM_Entree_sortie()
    {
    
    //Code C
    //Code C:
    trisa=0x80;
    trisb=0x00;
    option_reg=0x00;
    
    }
    
    //Installation supplémentaire
    
    void main()
    {
    
    //Initialisation
    ansel = 0;
    cmcon = 0x07;
    
    //Code d'initialisation d'Interruption
    option_reg = 0xC0;
    
    //Entree / sortie
    //Appel d'une Macro: Entree_sortie
    FCM_Entree_sortie();
    
    //Calcul
    //Calcul:
    // OFF = 0
    // ON = 1
    FCV_OFF = 0 ;
    FCV_ON = 1 ;
    
    //Boucle
    //Boucle: Tant que1
    while( 1 )
    {
    //Entrée
    //Entrée: A0 -> Thermostat
    trisa = trisa | 0x01;
    FCV_THERMOSTAT = ((porta & 0x01) == 0x01);
    
    //Condition
    //Condition: Thermostat = ON?
    if( FCV_THERMOSTAT == FCV_ON )
    {
    //Ventilo
    //Sortie: ON -> B4
    trisb = trisb & 0xef;
    if (FCV_ON)
    portb = (portb & 0xef) | 0x10;
    else
    portb = portb & 0xef;
    
    //Brumisateur
    //Sortie: ON -> B0
    trisb = trisb & 0xfe;
    if (FCV_ON)
    portb = (portb & 0xfe) | 0x01;
    else
    portb = portb & 0xfe;
    
    //Pause
    //Pause: 300 s
    delay_s(255);
    delay_s(45);
    
    //Sortie
    //Sortie: OFF -> B4
    trisb = trisb & 0xef;
    if (FCV_OFF)
    portb = (portb & 0xef) | 0x10;
    else
    portb = portb & 0xef;
    
    //Pause
    //Pause: 900 s
    delay_s(255);
    delay_s(255);
    delay_s(255);
    delay_s(135);
    
    } else {
    //Brumisateur + ventilo
    //Sortie: OFF -> PORT B
    trisb = 0x00;
    portb = FCV_OFF;
    
    //Pause
    //Pause: 300 s
    delay_s(255);
    delay_s(45);
    
    }
    
    }
    
    mainendloop: goto mainendloop;
    }
    Présenté comme cela, ce sera plus facile, pour le futur intervenant !
    Bon courage

Discussions similaires

  1. Réalisation d'une Horloge/Clock Nixie - PIC + Module RTC
    Par jorg1n dans le forum Électronique
    Réponses: 26
    Dernier message: 31/05/2010, 08h16
  2. clock programmable
    Par noisyboxes dans le forum Électronique
    Réponses: 11
    Dernier message: 20/05/2007, 15h57
  3. Clock bascule D
    Par invite4192ae6c dans le forum Électronique
    Réponses: 7
    Dernier message: 17/07/2006, 18h46
  4. Bascule D et clock
    Par inviteb3482fa2 dans le forum Électronique
    Réponses: 7
    Dernier message: 25/05/2006, 14h04
  5. propeller clock
    Par invite1fd09c5f dans le forum Électronique
    Réponses: 2
    Dernier message: 26/03/2004, 22h38
Découvrez nos comparatifs produits sur l'informatique et les technologies.