Répondre à la discussion
Affichage des résultats 1 à 8 sur 8

pic16f628a , oscillateur interne et temporisation de l'ordre de la seconde



  1. #1
    mdiabolo

    pic16f628a , oscillateur interne et temporisation de l'ordre de la seconde


    ------

    Bonjour

    Voilà mon dilemne. Je souhaite commander de manière basique un moteur pas à pas (surement bipolaire car le seul unipolaire que j'avais ne semble pas fonctionner (1 bobine morte ?)).

    L'idée est de soit me servir d'un ULN2003 (moteur unipolaire) soit d'un L298 (moteur bipolaire) et je faire le contrôle par le pic afin d'économiser sur le L297. J'ai déjà des ULN2003 et L298 en stock ainsi que des pics 16F628A. Donc je pars avec ce matériel.

    Le but à terme est de pouvoir faire un programme permettant de faire avancer disons 2s le moteur dans un sens puis 1s dans l'autre puis 5s dans l'autre (exemple, mais cela devra pouvoir être changer facilement).

    Je suis parti sur l'idée suivante:
    - dans le main, j'ai des fonctions de ce genre:
    - faire avancer le moteur 2s
    - faire reculer le moteur 1s
    - faire avancer le moteur 5s

    Avec une fonction de type anvancermmoteur(int time) et reculer_moteur(int time).

    Au début de la fonction je configure un timer correspondant au temps voulu. Une fois le timer déclenché dans l'interruption je mets à jour une variable. Dès que cette variable est à jour, je finis la fonction et je passe donc à la suivante.

    Dans la fonction avance ou recule, j'aurais un "switch case" pour faire avancer mon moteur selon la bonne séquence.

    Mon problème:
    Je désire pour des raisons de coût fonctionner avec l'oscillateur interne. D'après la datasheet c'est soit 4Mhz soit 48khZ.

    Dilemne: avec un oscillateur 4Mhz, il me semble difficile de configure un des 3 timers du 16f628a pour des périodes de l'ordre de la seconde( dois-je rajouter un compteur dans une variable alors ?)

    avec un oscillateur 48kHz, il me semble délicat (trop lent) de piloter le moteur (ou alors c'est faisable). Qu'en pensez vous ?

    Merci d'avance pour votre aide

    PS: et merci d'avoir tout lu

    -----

  2. Publicité
  3. #2
    Forhorse

    Re : pic16f628a , oscillateur interne et temporisation de l'odre de la seconde

    Citation Envoyé par mdiabolo Voir le message
    Dilemne: avec un oscillateur 4Mhz, il me semble difficile de configure un des 3 timers du 16f628a pour des périodes de l'ordre de la seconde( dois-je rajouter un compteur dans une variable alors ?)
    Oui
    Moi je fais toujours ainsi. J'utilise un timer qui provoque une interruption toute les 10 ou 100ms. La routine d'interruption se contente d'incrementer 1 compteur (1 variable de 8bits)
    Dans la boucle principale du programme, je test ce compteur pour savoir s'il est superieur à 10 (ou 100) et j'obtient donc une base de temps de 1 seconde... ensuite facile de compter les minutes, heures, jours...
    Il faut biensûr un programme bien fait, pas un truc de poney avec des "delay" partout

  4. #3
    mdiabolo

    Re : pic16f628a , oscillateur interne et temporisation de l'ordre de la seconde

    Ok merci pour le retour.

  5. #4
    ftorama

    Re : pic16f628a , oscillateur interne et temporisation de l'odre de la seconde

    Citation Envoyé par Forhorse Voir le message
    Il faut biensûr un programme bien fait, pas un truc de poney avec des "delay" partout
    Je serais curieux de voir un poney programmer

  6. #5
    Forhorse

    Re : pic16f628a , oscillateur interne et temporisation de l'odre de la seconde

    Justement, avec les sabots c'est pas facile ! je te laisse imaginer le resultat...
    Déjà que coder avec les pieds... hein ! alors avec des des sabots je te racontes pas

  7. A voir en vidéo sur Futura
  8. #6
    ftorama

    Re : pic16f628a , oscillateur interne et temporisation de l'odre de la seconde

    Citation Envoyé par Forhorse Voir le message
    Justement, avec les sabots c'est pas facile ! je te laisse imaginer le resultat...
    Déjà que coder avec les pieds... hein ! alors avec des des sabots je te racontes pas
    Pour des microcontrôleurs conçus avec des moufles, c'est raccord.

    PS: je m'étais juré de pas la faire, j'ai craqué

  9. Publicité
  10. #7
    gedonet

    Re : pic16f628a , oscillateur interne et temporisation de l'odre de la seconde

    Bonjour
    Avec le timer1 et un prediviseur à 8, le timer1 va deborder toutes les 0,524288 seconde (65536X8), il te faut deux debordements pour une seconde environ.
    Si tu veux la seconde precise, il te faut un debordement toutes les 500000µs (1/2seconde) pour cela il faut precharger une valeur dans TMR1H et TMR1L. Pour connaitre cette valeur, tu fais 500000/8=62500. donc ton compteur doit compter jusqu'à 62500 au lieu de 65536 normalement. Donc la valeur à precharger est 65536-62500=3036=0xBDC, donc tu ecris 0xB (11 en decimal) dans TMR1H et 0XDC(220 en decimal) dans TMR1L.
    Gilles

  11. #8
    mdiabolo

    Re : pic16f628a , oscillateur interne et temporisation de l'ordre de la seconde

    Super. Je m'en suis sorti ! Merci.

Sur le même thème :

Discussions similaires

  1. oscillateur interne pic
    Par paterson dans le forum Électronique
    Réponses: 3
    Dernier message: 09/05/2008, 16h27
  2. Oscillateur interne Pic
    Par micpic dans le forum Électronique
    Réponses: 7
    Dernier message: 02/08/2007, 16h52
  3. utilisation oscillateur interne pic16F918
    Par eurocky dans le forum Électronique
    Réponses: 2
    Dernier message: 02/08/2006, 21h34
Découvrez nos comparatifs produits sur l'informatique et les technologies.