Bienvenue aux nouveaux arrivants sur FantasPic !

- Pensez à lire les règles durant votre visite, il n'y en a pas beaucoup, mais encore faut-il les respecter .
- N’hésitez pas à faire des remarques et/ou suggestions sur le Forum, dans le but de l'améliorer et de rendre vos prochaines visites plus agréables.
- Vous pouvez regarder votre "panneau de l'utilisateur" afin de configurer vos préférences.
- Un passage par "l'utilisation du forum" est recommandé pour connaître les fonctionnalités du forum.

--- L’équipe FantasPic ---
Forum général sur le langage C !

Modérateur : Jérémy

thermomètre afficheur 7 segments
venom
Avatar de l’utilisateur
Confirmé
Confirmé
Messages : 953
Âge : 38
Enregistré en : avril 2016
Localisation : Klyntar
Contact :

#131 Message par venom » dim. 7 mai 2017 15:36 lien vers la Data-Sheet : Cliquez ici

Bonjour a tous,

Bon je ne sais pas si c'est un problème de code ou de microcontrolleur. J'ai passé une bonne partie du weekend a chercher, tester differantes formules pour avoir un bon résultat. Sans succès.

Pour ce qui est de l’entrée analogique, je ne sais pas si c'est elle le souci car j'ai le même souci sur toutes les entrées. des que je relie le Vout du MCP9700 au pic (sur n'importe quel entrée ana), le multimètre chute de 700 a 100 instantanément. :shock:

Donc je coince. je ne sais pas si c'est du au code ou au pic. Car quand le pic n'a pas de code la tension ne chute pas. :mur:

Ps : mon dernier code est disponible sur mon premier message page 1 Même si pour le moment mon but est de savoir pourquoi sa chute.

Merci






@++
Mon site web
Mon discord : venom#4888

thermomètre afficheur 7 segments
paulfjujo
Avatar de l’utilisateur
Expert
Expert
Messages : 2589
Âge : 73
Enregistré en : juillet 2015
Localisation : 01800
Contact :

#132 Message par paulfjujo » dim. 7 mai 2017 20:17 lien vers la Data-Sheet : Cliquez ici

essaie d'utiliser
soit ADC_Int() ; // seul

ou
ADCON1=0x80;// ADFM=1 justifié à droite
ADCON0=0b00010101;//channel2 ADON=1

mais pas les 2 à la fois.

de meme mettre
TRISA = 0x00000100; // port A2 en entrée. Entrée = 1, sortie = 0
AVANT
ANSELA=4;
Aide toi, le ciel ou FantasPic t'aidera

thermomètre afficheur 7 segments
venom
Avatar de l’utilisateur
Confirmé
Confirmé
Messages : 953
Âge : 38
Enregistré en : avril 2016
Localisation : Klyntar
Contact :

#133 Message par venom » dim. 7 mai 2017 21:45 lien vers la Data-Sheet : Cliquez ici

Merci paul,

Malheureusement ça reste pareil. J'ai donc pris le taureau par les cornes (je ne vous dit pas l’état de la pièce ou je travail) :sifflotte:
Je me suis amusé a mettre en commentaire chaque lignes pour voir celle qui fait chuter la valeur du multimètre.

Résultat est : la ligne TRISA = 0x00000100; // port A2 en entrée. Entrée = 1, sortie = 0 :shock: Pourquoi je ne sais pas. Sans cette ligne le multimètre ne chute pas. Mais les 7seg ne fonctionne pas forcement :wink:

Voir aussi du côté des options du compilateur.






@++
Mon site web
Mon discord : venom#4888

thermomètre afficheur 7 segments
paulfjujo
Avatar de l’utilisateur
Expert
Expert
Messages : 2589
Âge : 73
Enregistré en : juillet 2015
Localisation : 01800
Contact :

#134 Message par paulfjujo » lun. 8 mai 2017 13:29 lien vers la Data-Sheet : Cliquez ici

Résultat est : la ligne TRISA = 0x00000100;

à remplacer par

la ligne
TRISA = 0b00000100; //
ou TRISA= 0x04;

revoir les post #5 et 6 à ce sujet
Aide toi, le ciel ou FantasPic t'aidera

thermomètre afficheur 7 segments
venom
Avatar de l’utilisateur
Confirmé
Confirmé
Messages : 953
Âge : 38
Enregistré en : avril 2016
Localisation : Klyntar
Contact :

#135 Message par venom » mar. 9 mai 2017 06:34 lien vers la Data-Sheet : Cliquez ici

Merci paul,
:oops: J'ai tellement fait de modification de code que je ne savais plus ce que javais modifier et non.

Maintenant ça fonctionne, plus de chute du multimètre. Donc avec le code en page 1 je commence a voir des résultats s'afficher sur mes 7seg :eek: 8-)
Donc déjà un grand merci a tous pour votre aide et votre patience. 8-)

Reste maintenant a peaufiné le code car les valeurs varient trop souvent (les 7seg changent d’état trop souvent sa créer des clignotements et des mélanges de chiffres).

Je ne sais pas si c'est possible de faire un timer ou une procédure qui récupérerait la valeur genre toutes les 30 secondes ? car la c'est a chaque boucle :?





@++
Mon site web
Mon discord : venom#4888

thermomètre afficheur 7 segments
Jérémy
Administrateur du site
Administrateur du site
Messages : 2722
Âge : 44
Enregistré en : juillet 2015
Localisation : Dans le sud
Contact :

#136 Message par Jérémy » mar. 9 mai 2017 07:36 lien vers la Data-Sheet : Cliquez ici

Bonjour à tous,

Génial !!! :bravo:

Je ne sais pas si c'est possible de faire un timer ou une procédure qui récupérerait la valeur genre toutes les 30 secondes ? car la c'est a chaque boucle

C'est possible est même conseillé !

L'idée et de faire une fonction, qui lis la tension analogique, qui la convertisse, et qui l'affiche . Ensuite tu appelle cette focntion toute les 30 secondes par exemple via un timer sur interruption !
Comme ca pendant les 30 secondes tu peux faire autre chose !

Ta persévérance à payée !
C'est en faisant des erreurs, que l'on apprend le mieux !!!

thermomètre afficheur 7 segments
Gérard
Avatar de l’utilisateur
Expert
Expert
Messages : 1640
Âge : 65
Enregistré en : septembre 2015
Localisation : Alsace - Haut-Rhin

#137 Message par Gérard » mar. 9 mai 2017 10:50 lien vers la Data-Sheet : Cliquez ici

Tu peux faire 100 boucles d'affichage et après tu vas de nouveau faire une nouvelle conversion.
Le 18/04/19 je suis devenu papy de jumeaux, le 01/09/23 une petite cousine des jumeaux est née.

thermomètre afficheur 7 segments
Temps-x
Avatar de l’utilisateur
Expert
Expert
Messages : 2596
Enregistré en : juillet 2016
Localisation : Terre

#138 Message par Temps-x » mer. 10 mai 2017 01:42 lien vers la Data-Sheet : Cliquez ici

Bonjour tous le monde,

Félicitation venom pour ta réussite,

Pour ton programme, traitement des données, scanne du CAN, et affichage, faire une petite tempo, si les traitements sont trop rapides.

A+
:roll: Les requins, c'est comme le langage ASM, c'est le sommet de la chaîne alimentaire. :wink:

thermomètre afficheur 7 segments
venom
Avatar de l’utilisateur
Confirmé
Confirmé
Messages : 953
Âge : 38
Enregistré en : avril 2016
Localisation : Klyntar
Contact :

#139 Message par venom » mer. 10 mai 2017 22:21 lien vers la Data-Sheet : Cliquez ici

Bonjour a tous,

Merci pour vos encouragement et les méthodes pour amélioré mon affichage. Merci !

J'ai pour le moment opté pour une boucle for comme la suggérer Gérard.(assez simple pour mon niveau) :oops:

J'ai mis a jour le code en page 1, et j'y ai ajouté le calcul de Paul qui est :

Code : Tout sélectionner

= ADC_Read(2)*500;
= L>>10;
= L-50
temp_res 
= L 


A la seul différence, c'est que j'ai du modifier la ligne L = L-50 par L = L-42 pour qu'au alentour de 700mV j'obtiens un affichage de 20° D’après vous est-ce normale ?

Et mon autre problème c'est que passer 710mV donc 21° mes afficheurs montent bien 21° mais au delà mes 7seg n'affichent plus rien. ils sont éteint. :shock:

Mais bon sa avance sa avance. :langue:






@++
Mon site web
Mon discord : venom#4888

thermomètre afficheur 7 segments
paulfjujo
Avatar de l’utilisateur
Expert
Expert
Messages : 2589
Âge : 73
Enregistré en : juillet 2015
Localisation : 01800
Contact :

#140 Message par paulfjujo » jeu. 11 mai 2017 19:17 lien vers la Data-Sheet : Cliquez ici

A la seul différence, c'est que j'ai du modifier la ligne L = L-50 par L = L-42
pour qu'au alentour de 700mV j'obtiens un affichage de 20° D’après vous est-ce normale ?


cela represente 8°C d" ecart .. :eek: c'est hors norme ..

ordre sequence à modifier, OSCON en premier,
ADC Init, apres init des registres


Code : Tout sélectionner

 
 
 void main
() {
 
    OSCCON 
= 100;         //Fréquence pour oscillateur interne. oscillateur 1 MHz

    TRISA = 0b00000100;   // port A2 en entrée. Entrée = 1, sortie = 0
    TRISB = 0b00000000;   // tous les port B en sortie. Entrée = 1, sortie = 0

    PORTA.RA0 = 0;        //Disable digit 1
    PORTA.RA1 = 0;        //Disable digit 2
    CMCON=0;              // inhibe les comparateurs
   
   ANSEL 
= 0b00000100;   // Configure AN2 en analog
 
   
    ADC_Init
();           // Initialise module ADC
    Delay_ms(100);

    while(1)
    {
     ... etc ..




Et mon autre problème c'est que passer 710mV donc 21°
mes afficheurs montent bien 21° mais au delà mes 7seg n'affichent plus rien. ils sont éteint



je ne vois pas le rapport ...
essaie de faire afficher une variable de 0 à 99 , pour verifier l'affichage ..
et une led qui change d'etat à chaque tour de programme
pour verifier si il tourne toujours quand l'affichage s'eteint .


As-tu la possiblité de connecter l'UART du PIC sur un terminal
cela aiderait bien à differencier les problemes
acquisiton ADC
ou Affichage
Aide toi, le ciel ou FantasPic t'aidera


Retourner vers « Langage C »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 48 invités