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

Programmation PIC16F84A sous Flowcode dans le cadre d'un PPE



  1. #1
    Nikazuki

    Programmation PIC16F84A sous Flowcode dans le cadre d'un PPE


    ------

    Bonjour ou bonsoir ,

    Je vous expose un peu la situation avant de vous parler de mon problème :

    Nous sommes un groupe de 4 élèves et nous devons atteindre un but , améliorer un système technique dans le cadre de PPE ( projet pluritechnique " encadré " ) . Nous arrivons à terme des semaines disponibles pour terminer ce projet mais nous n'avons toujours pas fini .
    Le système technique en question est le store Somfy , nous devons créer différents seuils de basculement du ventail en fonction de l'intensité du vent .
    Notre maquette est constituée d'un anémomètre ( pour le vent ) et une lampe ( pour l'intensité lumineuse ) .

    Pour réaliser l'amélioration , les professeurs nous ont conduit sur le choix de système ILS. Nous ne voulions pas vraiment partir sur ce système à la base mais on nous a comme dirait forcer à choisir cette option. Voici un peu la solution mise en place pour le moment , j'espère pouvoir me faire comprendre :s

    Donc , nous avons créer un système poulie relié à l'axe du tambour-ventail qui entraîne un pignon . Ce pignon entraine en rotation 4 disques dans lesquels on place 4 aimants . Les ILS étant disposés pour que les contacts se ferment ou/et s'ouvrent . On sait que en un tour de l'anémomètre , l'ILS s'ouvre 2 fois et se ferme deux fois .

    Cependant , pour traiter ses informations , on doit programmer sous Flowcode et c'est ici que les problèmes commencent .. Le professeur spécialisé en électronique m'a demandé d'abord d'utiliser des interruptions pour simuler un compteur de période par seconde et ainsi , on obtient une fréquence . Je mets en pièce jointe le programme correspondant ( pour l'instant il compte simplement le temps .. )

    -----
    Images attachées Images attachées

  2. Publicité
  3. #2
    Antoane
    Responsable technique

    Re : Programmation PIC16F84A sous Flowcode dans le cadre d'un PPE

    Bonjour et bienvenu !
    Jusqu'à la version 3, Flowcode ne gérait pas les interruptions multiples (TMR0 et RB0). Je ne suis pas sûr que la 4 le fasse.
    J'ai pas tout compris concernant les ILS.
    Et surtout : C'est quoi la question
    Deux pattes c'est une diode, trois pattes c'est un transistor, quatre pattes c'est une vache.

  4. #3
    QuentinC

    Re : Programmation PIC16F84A sous Flowcode dans le cadre d'un PPE

    J'utilise souvent Flowcode 4 (pour mes projets personnels), beaucoup diront que ce n'est pas adapté, en attendant il marche bien et permet de faire pas mal de choses facilement et rapidement !
    Je confirme qu'il gère parfaitement les interruptions multiples, j'en utilise trois en même temps sur un 16F877a sans problèmes, mais il ne sait pas les simuler correctement !

  5. #4
    Nikazuki

    Re : Programmation PIC16F84A sous Flowcode dans le cadre d'un PPE

    C'est bien Flowcode 4 que j'utilise . Enfaite la question s'est comment exploiter le signal de l'anémomètre pour obtenir une fréquence de vent ?

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

    Re : Programmation PIC16F84A sous Flowcode dans le cadre d'un PPE

    Tu as quoi comme signal provenant de l’anémomètre ?
    Des impulsions ?
    Si c'est le cas tu peux peut être déclencher une interruption (genre INT sur RB0) a chaque impulsion, dans la quelle tu incrémente un compteur, que tu lis et remets a zéro tous les X temps avec une autre interruption, après tu aura donc un certain nombre d’impulsion par X temps, tu peux en déduire la fréquence !

  8. #6
    Nikazuki

    Re : Programmation PIC16F84A sous Flowcode dans le cadre d'un PPE

    Je peux récuperer la tension de l'anémomètre à partir de notre maquette , c'est un signal rectangulaire d'après mes souvenirs et je sais que l'on a 4 impulsions en un tour .
    Dernière modification par Nikazuki ; 18/04/2012 à 13h36.

  9. Publicité
  10. #7
    Antoane
    Responsable technique

    Re : Programmation PIC16F84A sous Flowcode dans le cadre d'un PPE

    Un ILS, c'est un contact sec (=un interrupteur). Il faut donc en faire une information sous forme électrique, qui soit comprise par le µC : un signal logique 0/5V.
    Puis appliquer le programme proposé par QuentinC.
    Au passage : attention au type de variable utilisé : dans ton programme post#1, par exemple, il fallait que "fréquence" soit de type "float" (virgule flottante).
    Deux pattes c'est une diode, trois pattes c'est un transistor, quatre pattes c'est une vache.

  11. #8
    QuentinC

    Re : Programmation PIC16F84A sous Flowcode dans le cadre d'un PPE

    Pareil, le compteur devrait être un entier et non un octet !

  12. #9
    Nikazuki

    Re : Programmation PIC16F84A sous Flowcode dans le cadre d'un PPE

    Alors si j'ai bien compris , voici ce que j'ai fais .
    Il compte jusqu'à 4 interruptions et lorsqu'il arrive à 4 interruptions , le compteur se remet à 0 . Sachant qu'il y a 4 interruptions en 1 Tour , pour avoir une fréquence , je fais 4 divisé par le nombre de seconde qu'il aura compter .

    C'est bien ça ?
    Images attachées Images attachées

  13. #10
    QuentinC

    Re : Programmation PIC16F84A sous Flowcode dans le cadre d'un PPE

    Je ne m'y prendrai pas comme ça moi, en 4 impulsions tu n'auras pas de précision, essaie plutôt de compter le nombre d'impulsion pendant un quart ou une demie seconde (tu gère le temps avec une seconde interruption) et après tu fais un petit calcul pour te ramener a la fréquence !

  14. #11
    Nikazuki

    Re : Programmation PIC16F84A sous Flowcode dans le cadre d'un PPE

    Si tout se passe bien , je pourrais avoir accès au système demain . Donc pour compter le nombre d'impulsions plus précisément , je visualise le signal de l'anémomètre ( signal des ILS donc ) et je regarde combien de période il y a en une demie-seconde ?

    J'aurai donc le nombre x d'impulsions en une demie-seconde . Sur flowcode , tant que j'ai moins de x impulsions , le compteur continue . Dès que je dépasse x impulsions , le compteur se remet à 0 et je fais mon calcul de fréquence par x/ le nombre de seconde écoulé ?

  15. #12
    Antoane
    Responsable technique

    Re : Programmation PIC16F84A sous Flowcode dans le cadre d'un PPE

    Citation Envoyé par QuentinC Voir le message
    Je ne m'y prendrai pas comme ça moi, en 4 impulsions tu n'auras pas de précision,
    Ca dépend de la fréquence de son timer. La résolution sera de (fréquence du timer) / (fréquence de rotation de l'anémomètre).

    essaie plutôt de compter le nombre d'impulsion pendant un quart ou une demie seconde (tu gère le temps avec une seconde interruption) et après tu fais un petit calcul pour te ramener a la fréquence !
    La résolution sera de : (temps pendant lequel tu comptes) * (fréquence de rotation de l'anémomètre)

    Connaissant la fréquence de rafraichissement souhaitée (tout les combien de temps veux-tu avoir une nouvelle mesure ?) et les fréquences de rotation mini et maxi de l'anémomètre qui t'intéresse, à toi de choisir la meilleur méthode.


    PS : au passage : avec la première méthode, la fréquence de rafraichissement n'est pas constante et augmente lorsque le vent diminue. Ce n'est pas forcément un problème vu que tu n'as pas besoin de mesure lorsqu'il n'y a pas de vent...
    P²S : avec la seconde méthode, le calcul de vitesse ne demande pas de faire de division, mais uniquement une multiplication.
    Dernière modification par Antoane ; 18/04/2012 à 16h46.
    Deux pattes c'est une diode, trois pattes c'est un transistor, quatre pattes c'est une vache.

  16. Publicité
  17. #13
    umfred

    Re : Programmation PIC16F84A sous Flowcode dans le cadre d'un PPE

    Citation Envoyé par Nikazuki Voir le message
    Le professeur spécialisé en électronique m'a demandé d'abord d'utiliser des interruptions pour simuler un compteur de période par seconde et ainsi , on obtient une fréquence . Je mets en pièce jointe le programme correspondant ( pour l'instant il compte simplement le temps .. )
    à partir de là, et comme suggérer dans les post précédents, il faudrait ajouter une interruption pour compter le nombre d'impulsions, et à chaque fois que l'on tombe dans l'interruption de la seconde, on utilise la valeur du compteur d'impulsion pour déterminer la fréquence et ainsi de réagir en fonction de la fréquence trouvée dans le programme principal.

    A noter que la fréquence est tout simplement le nombre d'impulsion compté pendant la seconde, ainsi pas besoin de faire de calcul, juste faire attention à la valeur maxi du nombre d'impulsions que l'on peut obtenir pendant cette seconde en fonction de la vitesse du vent; ça définira le type le plus adapté à utiliser (quitte à écrêter si on atteint une certaine valeur; par exemple, on arrête de compter si on a plus de 65000 impulsions de comptabiliser)

    PS: j'espère qu'il est pas trop tard si ça peut aider

Discussions similaires

  1. Programmation afficheur LCD sous Flowcode
    Par le_calou dans le forum Électronique
    Réponses: 1
    Dernier message: 26/04/2010, 15h32
  2. programmation d'une horloge sous flowcode
    Par now9434 dans le forum Électronique
    Réponses: 20
    Dernier message: 27/01/2010, 20h59
  3. PPE: interruption sous flowcode
    Par supernormalll dans le forum TPE / TIPE et autres travaux
    Réponses: 0
    Dernier message: 08/05/2009, 21h05
  4. Programmation sous Flowcode d'un PIC 16F84
    Par bboytom dans le forum Électronique
    Réponses: 9
    Dernier message: 18/03/2009, 18h02
  5. Programmation sous flowcode
    Par Mickl1722 dans le forum Électronique
    Réponses: 7
    Dernier message: 21/01/2009, 22h37
Découvrez nos comparatifs produits sur l'informatique et les technologies.