Répondre à la discussion
Page 1 sur 2 1 DernièreDernière
Affichage des résultats 1 à 30 sur 33

Horloge à PIC16F



  1. #1
    nainpiain

    Horloge à PIC16F


    ------

    Bonsoir,

    je suis actuellement en train d'essayer de réaliser une horloge type Gorgy, à titre purement pédagogique. pour ce faire j'utilise un PIC16F877 avec le compilateur Basic Proton+.
    j'ai réalisé une partie de l'horloge :
    - le pilotage des 6 digit 7 segments multiplexés par le PIC,
    HH:MM:SS
    j'utilise une interruption avec le timer au centième de seconde, qui incrémente les secondes, puis les minutes etc...
    les valeurs sont ensuite envoyées sur le digit correspondant.

    mais malheureusement je suis bloqué sur un point, celui de faire allumer les 59 leds des secondes. c'est à dire
    toutes les secondes alumage de la led1, puis 2, 3...lorsque les 59 leds
    sont alumées, à la 60ème secondes, elles devront toutes s'éteindrent
    et le cycle recommence.

    ce serait tellement plus simple si le PIC avait les 60 sorties...
    je cherche un composant qui pourrait me facilier la tâche, j'ai bien pensé au 4017, mais permet qu'un allumage d'une led à la fois.
    pensé au PCF8574 : 8 sorties en I2C, il en faudra 8 !! + du temps µC
    pour gérer l'I2C, bref je pense qu'il y a forcement une solution beaucoup plus élégante....

    Si vous avez une idée (hard et soft) je suis absolument preneur.
    merci d'avoir d'avoir lu mon post.

    a+.
    Laurent.

    -----

  2. Publicité
  3. #2
    Gérard

    Re : Horloge à PIC16F

    Tu cables les 60 LED en matrice de 8x8 et 16 fils suffiront.
    Il faut multiplexer.

    Tu devras convertir le registre secondes (qui est en binaire) pour allumer la matrice.

    Je suis sur un projet similaire en ce moment.


    Comment crées-tu la base de temps ?
    Perso, je prends un Qz de 3,2768MHz avec TMR1.

  4. #3
    Qristoff
    Animateur Électronique

    Re : Horloge à PIC16F

    Il existe des composants tout faits pour la gestion du temps...

  5. #4
    Gérard

    Re : Horloge à PIC16F

    Citation Envoyé par Qristoff Voir le message
    Il existe des composants tout faits pour la gestion du temps...
    Mais encore ?

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

    Re : Horloge à PIC16F

    Je pense que tu veux parler du PCF8583 ou le DS1307 etc... pour l'instant je m'attarde à faire afficher des choses, et puis j'espère bien faire mieux qu'un PCF8583 et utiliser un DCF77.

    Gérard, ok pour la matrice 8x8, mais je ne vois pas tout comment la commander, si dans les 59 led j'en avait qu'une à allumer chaque seconde, je
    pense que j'aurais réglé le problème mais là par exemple, à la 59ème seconde
    il faut que les 59 led soit allumées. je ne vois pas du tout comment faire.
    si la matrice 7*6 pour les digit est claire dans ma tête, bcp moins évident pour la 8*8.
    pour faire une interruption à 100Hz j'utilise un quartz à 20MHz, puis avec la constante XTAL je recalcule la valeur du timer TMR1L (16bits) que je place à la valeur 15543, sur 1heure j'ai noté aucune dérive, sur 24h pas testé mais obligatoirement il y a une dérive, qu'il faudrai compenser...
    si tu veux le code, n'hesite pas...j'ai aucun mérite je me suis largement inspéré
    sur le forum de proton+

    si tu as une idée comment piloter cette matrice de 8*8, je suis preneur
    a+

  8. #6
    Gérard

    Re : Horloge à PIC16F

    Regarde ta boite MP.
    Bonne nuit.

  9. Publicité
  10. #7
    Qristoff
    Animateur Électronique

    Re : Horloge à PIC16F

    Citation Envoyé par nainpiain Voir le message
    Je pense que tu veux parler du PCF8583 ou le DS1307 etc... pour l'instant je m'attarde à faire afficher des choses, et puis j'espère bien faire mieux qu'un PCF8583 et utiliser un DCF77.
    c'est exactement à ça que je pense...
    pour la matrice, une découpe en quadrant permet d'économiser les bits..

  11. #8
    Gérard

    Re : Horloge à PIC16F

    Citation Envoyé par Qristoff Voir le message
    .......
    pour la matrice, une découpe en quadrant permet d'économiser les bits..
    Tu peux expliquer ?

  12. #9
    nainpiain

    Re : Horloge à PIC16F

    voiçi le problème :
    une matrice 8*8 (exemple portb*portd)
    on aura alors :

    D7 D6 D5 D4 D3 D2 D1 D0

    08 07 06 05 04 03 02 01 B.0
    16 15 14 13 12 11 10 09 B.1
    24 23 22 21 20 19 18 17 B.2
    32 31 30 29 28 27 26 25 B.3
    40 39 38 37 36 35 34 33 B.4
    48 47 46 45 44 43 42 41 B.5
    56 55 54 53 52 51 50 49 B.6
    64 63 62 61 60 59 58 57 B.7

    comment faire pour piloter les led que l'on veut :
    Exemple : si je veux allumer de la 1 à la 12 ?

    a+
    Dernière modification par nainpiain ; 18/01/2009 à 09h58.

  13. #10
    nainpiain

    Re : Horloge à PIC16F

    peut être en faisant un scrutage très rapide de B.0 à B.7 sur la branche de D.0 puis un autre scrutage très rapide de B.0 à B.7 sur la branche D.1 etc.... jusqu'à D.7

    j'y refflechi, si vous avez une routine qui traine dans vos dossier, je suis preneur

  14. #11
    nainpiain

    Re : Horloge à PIC16F

    Je viens de m'apercevoir d'un problème : en partant du principe que l'écriture d'une sortie se fait en 1 ms (difficile de faire plus rapide) il faudra donc 64 ms pour rafraichir la matrice : c'est trop lent !!!
    j'ai pas d'idée...

  15. #12
    Gérard

    Re : Horloge à PIC16F

    Citation Envoyé par nainpiain Voir le message
    Je viens de m'apercevoir d'un problème : en partant du principe que l'écriture d'une sortie se fait en 1 ms (difficile de faire plus rapide) il faudra donc 64 ms pour rafraichir la matrice : c'est trop lent !!!
    j'ai pas d'idée...
    Non.
    Tu places la donnée à écrire sur ligne1, tu valides ligne1, tempo 1ms, tu dévalides ligne1 .... tout ça 8x pour 8 lignes.

  16. Publicité
  17. #13
    nainpiain

    Re : Horloge à PIC16F

    Gérard, tu veux plutot dire :
    Tu places la donnée à écrire sur ligne1, tu valide colonne 1, tempo 1ms, tu dévalides colonne 1...tout ça 8x pour 8 colonnes ? non ?

  18. #14
    nainpiain

    Re : Horloge à PIC16F

    j'y arrive pas

  19. #15
    Qristoff
    Animateur Électronique

    Re : Horloge à PIC16F

    Sinon, tu peux utiliser aussi 5 x HEF4894 monté en série. Ils assurent direment la commande des leds (ajouter une résistance quand même). Et tu commandes l'ensemble avec 3 bits:
    - une clock (1 coup par seconde)
    - la donnée
    - le output enable (à utiliser lors de la remise à zéro du registre 60 bits)
    Avec ça, ton micro ne sera pas beaucoup au charbon...

  20. #16
    nainpiain

    Re : Horloge à PIC16F

    c'est tout à fait ce que recherche, je penchais actuellment pour la solution du CD4094 ou du 74HC595.
    le HEF4894 se met en cascade, finalement c'est un registre à décalage, si j'envoie à chaque cycle d'horloge (donc de seconde) un "1" il sera transferé directement sur la sortie suivante ?
    je vois pas trop comment le mettre en cascade.


    a+

  21. #17
    Qristoff
    Animateur Électronique

    Re : Horloge à PIC16F

    Citation Envoyé par nainpiain Voir le message
    c'est tout à fait ce que recherche, je penchais actuellment pour la solution du CD4094 ou du 74HC595.
    le HEF4894 se met en cascade, finalement c'est un registre à décalage, si j'envoie à chaque cycle d'horloge (donc de seconde) un "1" il sera transferé directement sur la sortie suivante ?
    je vois pas trop comment le mettre en cascade.


    a+
    La sortie Qs du premier doit être reliée à l'entrée D du suivant.
    Les CP doivent être relié tous ensembles (attention il y a une astuce, pour le routage du doit commencer par le dernier puis router vers le n-1, puis le n-2 etc pour finir sur le premier)
    Les OE doivent aussi être reliés ensemble (pour éventuellement éteindre toutes les leds en même temps)
    Les STR (strobe) doivent aussi être reliés ensemble. il permet de latcher la donnée vers la sortie. En reliant cette ligne à 1, les registres sont transparent et la données passe directement en sortie. C'est ce que tu peux faire dans un premier temps.

  22. #18
    nainpiain

    Re : Horloge à PIC16F

    merci, je vais voir ça cette semaine, essayer de m'en procurer.
    bonne soirée

  23. Publicité
  24. #19
    Qristoff
    Animateur Électronique

    Re : Horloge à PIC16F

    Citation Envoyé par nainpiain Voir le message
    merci, je vais voir ça cette semaine, essayer de m'en procurer.
    bonne soirée
    Il y en a chez Radiospares

  25. #20
    Gérard

    Re : Horloge à PIC16F

    Citation Envoyé par nainpiain Voir le message
    Gérard, tu veux plutot dire :
    Tu places la donnée à écrire sur ligne1, tu valide colonne 1, tempo 1ms, tu dévalides colonne 1...tout ça 8x pour 8 colonnes ? non ?
    Regarde le fichier joint.
    Fichiers attachés Fichiers attachés

  26. #21
    nainpiain

    Re : Horloge à PIC16F

    Gérard, ok dans le principe de la matrice, niveau câblage, niveau prog, moins évident...

    Qristoff, peut-on remplacer le registre par un 4094 ? aurais-je la même possibilté de les mettre en cascade ?
    beaucoup de difficultés pour se procurer les autres, radiospares il y a un minimum de commande.

    merci a+

  27. #22
    Qristoff
    Animateur Électronique

    Re : Horloge à PIC16F

    Citation Envoyé par nainpiain Voir le message
    Gérard, ok dans le principe de la matrice, niveau câblage, niveau prog, moins évident...

    Qristoff, peut-on remplacer le registre par un 4094 ? aurais-je la même possibilté de les mettre en cascade ?
    beaucoup de difficultés pour se procurer les autres, radiospares il y a un minimum de commande.

    merci a+
    Salut,
    Le HEF4894 avait deux avantages: il a 12 sorties contre 8 pour 4094, ce qui représente 5 boitiers contre 8.
    L'autre avantage est que les transistors de commande de led sont déja intégrés dans le 4894. Dans le cas du 4094, il faut regarder la datasheet pour savoir s'il est capable de driver simultanément 8 sorties à 15mA chacune, ça commence à faire beaucoup. (sinon tu peux essayer de trouver des leds haute muminosité avec un courant un peu plus faible)
    mais la fonctionnalité reste identique et tu peux les sérialiser de la même manière.
    A+

  28. #23
    nainpiain

    Re : Horloge à PIC16F

    Je préfererais effectivement les HEF4894, ses avantages ne sont pas discutables. Je vais me procurer des 4094, dans l'espoir qu'ils puissent me commander ce que je veux, j'ai des led faible consommation.
    dès que je les ai, je pense faire appel à tes compétances pour les mettre en oeuvre. merci

  29. #24
    Gérard

    Re : Horloge à PIC16F

    Citation Envoyé par nainpiain Voir le message
    Gérard, ok dans le principe de la matrice, niveau câblage, niveau prog, moins évident...
    .......

    merci a+
    Cablage : très simple
    Soft : tu mets la 1re donnée en haut (voir schéma matrice), tu valides la ligne correspondante, tempo 1ms, tu mets la 2e donnée ....

    C'est archi simple.

  30. Publicité
  31. #25
    Qristoff
    Animateur Électronique

    Re : Horloge à PIC16F

    Citation Envoyé par Gérard Voir le message
    Cablage : très simple
    Soft : tu mets la 1re donnée en haut (voir schéma matrice), tu valides la ligne correspondante, tempo 1ms, tu mets la 2e donnée ....

    C'est archi simple.
    Je veux bien admettre que c'est "archi simple" mais c'est quand même le µc qui fait tout le boulot au rythme de la matrice alors qu'un registre à décalage nécessite une impulsion par seconde. Pendant ce temps, le µc a le temps de faire d'autres choses plus intéressantes... prendre la température ambiante, vérfier si l'heure est bien synchronisée sur le DCF....si le pwm qui régle le contraste est correct, etc...

  32. #26
    Gérard

    Re : Horloge à PIC16F

    Citation Envoyé par Qristoff Voir le message
    Je veux bien admettre que c'est "archi simple" mais c'est quand même le µc qui fait tout le boulot au rythme de la matrice alors qu'un registre à décalage nécessite une impulsion par seconde. Pendant ce temps, le µc a le temps de faire d'autres choses plus intéressantes... prendre la température ambiante, vérfier si l'heure est bien synchronisée sur le DCF....si le pwm qui régle le contraste est correct, etc...

    Pour un µC, rien n'est "intéressant", il fait ce qu'on lui dit, point final.

    Une des nombreuses raison d'être des µC est la simplification du hard.
    Tes registres sont des trucs du siècle passé.

    Vérifier DCF, c'est une fois par nuit ... et encore, le Qz fera sans pb le reste.
    Le T° se mesure 1x toutes les 5mn.
    PWM géré en interne par IRQ, ne surcharge par trop le µC.

  33. #27
    Qristoff
    Animateur Électronique

    Re : Horloge à PIC16F

    Citation Envoyé par Gérard Voir le message
    Pour un µC, rien n'est "intéressant", il fait ce qu'on lui dit, point final.

    Une des nombreuses raison d'être des µC est la simplification du hard.
    Tes registres sont des trucs du siècle passé.

    Vérifier DCF, c'est une fois par nuit ... et encore, le Qz fera sans pb le reste.
    Le T° se mesure 1x toutes les 5mn.
    PWM géré en interne par IRQ, ne surcharge par trop le µC.
    j'ai pas l'impression que d'utiliser deux ports 8 bits et 100% du temps machine soit beaucoup plus "new age" !
    L'intégration hard par un µc est intéréssante si elle fait vraiment gagner en place et qu'on cherche à supprimer des DIP, mais là pour son horloge, la taille du ci est fixé par la taille de l'affichage, alors...
    pour une autre application, j'aurais surement été d'accord avec toi mais ici, ça n'est pas critique.

  34. #28
    Gérard

    Re : Horloge à PIC16F

    Citation Envoyé par Qristoff Voir le message
    j'ai pas l'impression que d'utiliser deux ports 8 bits et 100% du temps machine soit beaucoup plus "new age" !
    Personne n'a jamais dit que 100% du temps machine était utilisé !

    Citation Envoyé par Qristoff Voir le message
    L'intégration hard par un µc est intéréssante si elle fait vraiment gagner en place et qu'on cherche à supprimer des DIP
    C'est bien ce que j'ai dit.

    Citation Envoyé par Qristoff Voir le message
    mais là pour son horloge, la taille du ci est fixé par la taille de l'affichage, alors...
    pour une autre application, j'aurais surement été d'accord avec toi mais ici, ça n'est pas critique.
    Ca, c'est ton avis, je ne le partage pas.
    Reduire le nombre de CI est toujours un gain.

  35. #29
    nainpiain

    Re : Horloge à PIC16F

    Bonsoir,

    Je me suis procuré des HEF4094,
    j'ai essayé avec un; généré un signal d'horloge 1Hz synchro avec
    mes secondes sur CLK et j'envoie "1" en permanence sur D,
    et ça marche. par contre je me pose une question.
    comment faire pour leurs faire reprendre le cycle à ses registres au bout de 60 secondes ? pas moyen de faire un reset du registre ?
    à la 60ème secondes (ou la 0 seconde), mes 59 leds doivent s'éteindre
    et à la 1ère seconde la 1ère led doit se rallumer puis la 2ème etc...

    la solution que j'envisage pour la l'instant c'est :
    à la 60ème seconde : extinction des 59 leds par l'intermédiaire de la pin OE
    "output enable" et entre la seconde 0 et la 1ère seconde : envoyer "0" sur
    la pin D "data" et augmenter la fréquence sur CLK de manière à envoyer 59
    front en moins d'une seconde afin de faire un RAZ des registres. et enfin revenir au fonctionnement normal.
    ça vous semble comment ? une autre idée ? à moins que le RAZ soit possible au niveau des 4094 ? pas trouvé sur le datasheet.

    a+

  36. #30
    Qristoff
    Animateur Électronique

    Re : Horloge à PIC16F

    Salut,
    Effectivement, il n'y a pas de reset général mais ce n'est pas critique et tu as trouvé la solution toi même !
    juste aprés les douze coups de minuit, tu places OE et l'entrée D à 0 et tu "vides" le registre en envoyant le plus vite possible 60 coups d'horloges.
    Suivant la fréquence de ton µC, cela ne devrait pas prendre plus de 120µs à 4MHz d'horloge, c'est à dire non visible à l'oeil !

Page 1 sur 2 1 DernièreDernière

Discussions similaires

  1. Comptage fronts PWM PIC16F
    Par tahiticecil dans le forum Électronique
    Réponses: 2
    Dernier message: 30/11/2008, 19h22
  2. Débuter avec la programmation de PIC16F en C ?
    Par Coyazuu dans le forum Électronique
    Réponses: 8
    Dernier message: 15/10/2008, 12h30
  3. Convertion binaire To BCD avec pic16f
    Par bzh.diato dans le forum Électronique
    Réponses: 24
    Dernier message: 26/08/2006, 14h09
  4. Horloge lumineuse, horloge mecanique et Einstein
    Par pidofra dans le forum Physique
    Réponses: 6
    Dernier message: 22/03/2006, 15h21
  5. Quartz d1 PIC16F & MCP2510
    Par Blacky dans le forum Électronique
    Réponses: 4
    Dernier message: 10/02/2004, 18h48
Découvrez nos comparatifs produits sur l'informatique et les technologies.