Répondre à la discussion
Page 2 sur 3 PremièrePremière 2 DernièreDernière
Affichage des résultats 31 à 60 sur 89

Problème de commande Relais



  1. #31
    jorg1n

    Re : Problème de commande Relais


    ------

    Non je ne me suis pas encore penché sur le CAN...je suis un peu en stress et j'essaye de faire fonctionner correctement mes relais et le BP oN OFF...

    -----

  2. Publicité
  3. #32
    invite_P89
    Invité

    Re : Problème de commande Relais

    LU

    Alors un conseil pour l'alimentation du pic utilise un LM317 afin de régler la tension d'alimentation à 4,096V.Pour ton programme je ne vois pas. Tu as deux possibilités utiliser l'int par RB0 ou test de RA5 dans la boucle principale quelle solution as-tu choisi ?

  4. #33
    jorg1n

    Re : Problème de commande Relais

    Bon mon programme se débloque un tout petit peu...OUF
    bon maintenant j'ai encore une question sur les résistances de pull up...ou plutot une résistance de pull down...dois en mettre une sur RA4??
    Merci encore de votre aide

    Nicolas

  5. #34
    invite_P89
    Invité

    Re : Problème de commande Relais

    RA4 drain ouvert donc résistance pull up, pas pull down
    Dernière modification par Pom26 ; 12/11/2007 à 14h09.

  6. #35
    invite03481543

    Re : Problème de commande Relais

    Code:
    #include <p18f4682.h>
    
    #define A4 PORTAbits.RA4
    #define A5 PORTAbits.RA5
    
    #define RETRO PORTCbits.RC0
    int i;
    
    void init_uc(void);
    
    void main (void)
    {
    init_uc();
    i=0;
    A4=0;
    PORTB=0x00;
    
    while(1)
     {
    while(i==0)
       {
    	  if(A5==0)
    	  {		
    		A4=1;
    		RETRO=1;
    		i=1;			
    		}
    		
    		if(A5==1)
    		{
    		A4=0;
    	  }
    	 }
    		
    while(i==1)
       {
       	if(A5==0)
    		{
    		A4=0;
    		RETRO=0;
    		i=0;		
    		}
    		
    		if(A5==1)
    		{
    		A4=1;		
    		}	
    	
    	 }
     }
    }
    
    /***************************************************************************
    **************************SOUS - PROGRAMMES ********************************
    ***************************************************************************/
    /***************************************************************************
    Nom   : void init_uc(void)
    Role  :Initialisation du PIC
    *****************************************************************************/
    void init_uc(void)
    {
     TRISA=0x33;					// PORTA en sortie sauf 0-1-5 en entree
     TRISB=0x00;					// PORTB en sortie
     TRISC=0x00;					// PORTC en sortie
     TRISD=0x00;					// PORTD en sortie
     TRISE=0x00;					// PORTE en sortie
     ADCON1=0b00001110;		//Configuration du portA en numérique sauf A0 en analogique
    Essai ça déjà et dis moi ce que dis le compilo

  7. #36
    jorg1n

    Re : Problème de commande Relais

    Pom26, ou les autres...
    En fait, le test de RA5, est aléatoire, tout dépend combien de temps nous restons appuyé sur le BP...
    Je pense donc Utiliser une interruption, là au moins cela fonctionnera a tous les coups.. à moins que vous ayez une solution?

    Sinon pour les interruptions, es ce que vous connaitriez la procédure complete à suivre pour que lorsque l'on ai un changement d'état sur RB0,l'on vient interrompre le programme et agir sur RA4..Le mieux pour moi serait un exemple plus des explications.....cela serait le MUST du MUST...
    Je sais d'après le lien de POM26 qu'il faut agir sur le registe OPTIONREGmais après...?
    Encore mille merci pour vos aides ....je ne sait pas où j'en serais sinon!!!
    Nicolas

  8. Publicité
  9. #37
    jorg1n

    Re : Problème de commande Relais

    Merci Hulk, je viens juste de voir ton code...j'essaye ça tout de suite...
    encore merci
    Nicolas

  10. #38
    invite_P89
    Invité

    Re : Problème de commande Relais

    LU
    Pour faire int RB0 validation par INTCON.INTE , FLAG INTCON.INTF
    le front par OPTION_REG

  11. #39
    invite_P89
    Invité

    Re : Problème de commande Relais

    Pour le front 1 montant 0 descendant
    tu as tout pour faire ton int. En asm c'est adresse 0X04 en C tu as une routine d'interruption bien sur RB0 en entrée

  12. #40
    jorg1n

    Re : Problème de commande Relais

    Hulk28, j'ai testé ton programme...il est moins aléatoire que le miens, mais il le reste encore...et si on ajoute une tempo quelque par???
    Sinon je peut m'orienter vers une interruption sur RB0, qu'en penses tu?

    Je te remercie beaucoup
    Nicolas

  13. #41
    invite_P89
    Invité

    Re : Problème de commande Relais

    jorg1n je te laisse avec homme vert,car le C ce n’est pas ma tasse de Thé.Je reviendrai pour le CAN

    a bientôt

  14. #42
    jorg1n

    Re : Problème de commande Relais

    Je te remercie POM 26 de ton aide..
    A bientot et bonne soirée
    Nicolas

  15. Publicité
  16. #43
    invite03481543

    Re : Problème de commande Relais

    Le soucis est à la mise sous tension ou au moment du "ON", le µC est non alimenté donc une interruption ne changera rien au problème.

    Tu peux essayer ça si il y a des rebonds:

    while(i==0)
    {
    if(A5==0)
    {
    Delay_ms(100); //Tempo anti-rebonds
    A4=1;
    RETRO=1;
    i=1;
    }

    ..............
    }

    Tu fais pareil avec la condition de stop.

    @+
    Dernière modification par HULK28 ; 12/11/2007 à 20h44.

  17. #44
    jorg1n

    Re : Problème de commande Relais

    Bonjour,

    pour la tempo de 100 ms secondes, la fonction delay_ms(...), n'existe pas avec le compilateur C18(enfin je crois..)..(ce n'est pas avec le compilateur de CCS??)
    Avec le C18 c'est :
    Delay1TCY()
    * Delay10TCY()
    * Delay10TCYx()
    * Delay100TCYx()
    * Delay1KTCYx()
    * Delay10KTCYx()
    Mais comment peut on déterminer le temps exact de la tempo, quel est le calcul a faire sachant que mon quartz est un 20MHz...Je sais cque cela correspond a des temps de cycles, mais combien vaut un temps de cycles??

    Merci de votre aide
    Nicolas

  18. #45
    invite03481543

    Re : Problème de commande Relais

    Salut,

    un temps de cycle correspond à Fosc/4 soit dans le cas d'un quartz à 20MHz:

    20.000.000/4=5.000.000 cycles soit le nombre d'instructions exécutées par seconde (hors interruptions)

    Voici une routine que tu peux utiliser dans ton programme:

    Code:
    /****************************************************************
    		Temporisation en millisecondes
    ****************************************************************/
    void DelayMs(uchar cpt)
    {
    	ushort t ;
    	while (cpt != 0)
    	{
    		CLRWDT() ;
    		-- cpt ;
    		t = 450 ;
    		while (t !=0)	-- t ;
    	}
    }

  19. #46
    invite03481543

    Re : Problème de commande Relais

    Pour l'utiliser tu fais ensuite DelayMs(100), 100 étant l'argument que tu envoie à la fonction DelayMs(), correspondant à la tempo en ms voulue.
    @+

  20. #47
    invite03481543

    Re : Problème de commande Relais

    Citation Envoyé par jorg1n Voir le message
    Bonjour,

    pour la tempo de 100 ms secondes, la fonction delay_ms(...), n'existe pas avec le compilateur C18(enfin je crois..)..(ce n'est pas avec le compilateur de CCS??)
    Avec le C18 c'est :
    Delay1TCY()
    * Delay10TCY()
    * Delay10TCYx()
    * Delay100TCYx()
    * Delay1KTCYx()
    * Delay10KTCYx()
    Mais comment peut on déterminer le temps exact de la tempo, quel est le calcul a faire sachant que mon quartz est un 20MHz...Je sais cque cela correspond a des temps de cycles, mais combien vaut un temps de cycles??

    Merci de votre aide
    Nicolas
    Donc temps de cycle avec 20MHz est 1/(20.000.000/4) -> 200ns.

  21. #48
    jorg1n

    Re : Problème de commande Relais

    Merci beaucoup Hulk.
    J'essaye ça tout de suite...et je te tiens au courant.

    Nicolas

  22. Publicité
  23. #49
    jorg1n

    Re : Problème de commande Relais

    Excuse moi Hulk, mais le "uchar", ce ne searait pas pour un autre compilateur?
    Moi j'utilise le C18, et ça doit etre "unsigned char", et de meme que pour "ushort", non?

    Sinon pour la fonction CLRWDT() ; je la trouve dans quelle librairie?

    Merci
    Nicolas
    Dernière modification par jorg1n ; 13/11/2007 à 08h18.

  24. #50
    invite_P89
    Invité

    Re : Problème de commande Relais

    LU jorg1n


    Attention lors d'un reset power, les sorties des ports sont dans un état aléatoire donc !!!!!! pour RA5 si = 1 peut-être rèsistance serie avec RA5

  25. #51
    jorg1n

    Re : Problème de commande Relais

    Bon c'est bon ça marche, encore un peu aléatoirement, mais c'est pas mal...la fonction principal n'est pas ça!!la prochaine fois je me lancerai dans une procédure avec des interruptions un le mode sleep...mais chaque chose en son temps...

    Bon maintenant , POM26 (et les autres bien sur...)je vais m'attaquer à la conversion analogique numérique. sur AN0.
    Je récolte toutes les informations que j'avais déja vu et je vous envois ça.

    Encore merci de votre aide

    Nicolas

    PS: dois je ouvrir une nouvelle discussion??

  26. #52
    invite_P89
    Invité

    Re : Problème de commande Relais

    Non on est bien ici lol, mis en suivi

  27. #53
    invite03481543

    Re : Problème de commande Relais

    Citation Envoyé par jorg1n Voir le message
    Excuse moi Hulk, mais le "uchar", ce ne searait pas pour un autre compilateur?
    Moi j'utilise le C18, et ça doit etre "unsigned char", et de meme que pour "ushort", non?

    Sinon pour la fonction CLRWDT() ; je la trouve dans quelle librairie?

    Merci
    Nicolas
    Il faut que tu regardes dans la doc du compilo, soit elle existe toute faite ou il faut l'écrire en utilisant timer0 par exemple.
    Je n'utilise pas C18.
    Sinon pour l'instant tu peux dévalider le watchdog en mettant la fonction en commentaires.

  28. #54
    jorg1n

    Re : Problème de commande Relais

    C'est ce que j'avais fait, et ça marchait correctement.
    Je te remercie.
    La je suis entrain d'écrire une petite présentation ce se que je souhaite faire..et il y aura des morceaux de programme que j'ai déja réalisé..
    Encore merci
    Nicolas

  29. Publicité
  30. #55
    jorg1n

    Re : Problème de commande Relais

    Principe :
    Ma tension varie entre 10 et 14V, par la suite elle variera entre 3,6 et 5,034V.
    Ensuite ce que je souhaite faire c’est comparer le résultat de la conversion à ces tensions(valeurs décimale dans le programme) : 14,5 - 13,5 - 12,5 - 10,5 - 9.
    En fonction dans quelle fourchette on se trouve, j’attibue une valeur decimale pour les variables I(intensité) et C(capacité) et j’active l’une de mes sortie du PIC pour activé mes relais.
    J’ai fais un petit chronogramme pour bien comprendre le fonctionnment.
    La dernière chose qu’il me restera c’est d’afficher sur un LCD 2x16 la variable I, la variable C , l’état dans lequel on fonctionne ON (charge)ou OFF(décharge), mais on vera ça après…

    Voila les informations que j’ai a propos de ma conversion analogique et le fonctionnement :
    -J’utilise un quartz de 20MHz
    -Je mesure une tension qui varie entre 10V et 14V, mais à la suite de mon petit montage pont diviseur, AOP en suiveur, ma tension que je souhaite mesurer varie entre 3,6V et 5,034V.
    Pour informations, ma mesure n’a pas besoin d’etre tres précise, car je fais la comparaison du résultat de la conversion avec des seuils (cités au dessus).

    Je fais appelle a la libraire adc.h et j’ai créé une fonction convAD :
    Code:
    void convAD(void)
    {
    OpenADC(ADC_FOSC_32 &											ADC_RIGHT_JUST &										ADC_12_TAD,								
    	ADC_CH0 &								
    	ADC_INT_OFF,7);							
    Delay10TCYx(5);	//Delay pour 50 TCY => 10µs
    ConvertADC();	//Start Conversion
    while(BusyADC());//Attente de l'accomplissement
    result=ReadADC();//Lecture du résultat
    CloseADC();
    }
    Je stocke le résultat dans « résult ».Faudrait que je le reconvertisse en décimal avec 1 chiffre après la virgule pour le comparer…a mes seuils…

    Donc ce qui va poser souci je crois c’est la tension Vref
    J’avais configurer ADCON1=0x0E, mais il faut que Vcc =5V ??

    Merci de votre aide encore

    Nicolas
    Images attachées Images attachées

  31. #56
    invite_P89
    Invité

    Re : Problème de commande Relais

    LU
    Problème tu ne peux pas avoir VE >vdd VREF>vdd .

  32. #57
    skyline13h

    Re : Problème de commande Relais

    slt tlm,je dois réaliser un projet sagissant de l'afficheur 7 segments et je voudrais savoir si je peut remplacer les TRIAC par des RELAIS.merci ...

  33. #58
    skyline13h

    Re : Problème de commande Relais

    desolé pour le language sms je suis nouveau ici !!

  34. #59
    invite03481543

    Re : Problème de commande Relais

    Bonjour,

    pour un sujet différent il faut ouvrir un nouveau topic.

  35. #60
    jorg1n

    Re : Problème de commande Relais

    Bonjour Skyline,
    Pour l'équivalence entre les triacs et les relais, ne sait pas du tt...

    Comment je peut faire alors...pour le Vref?
    Quand mon micro est allumé, j'ai 4,95V en vdd mais lorsque mon micro est éteint, j'ai 3,6V...
    on ne peut pas réaliser la conversion avec 4,95V de tension d'alimentation??
    si on fixe la tension d'entré sur AN0 de 4,95V max?
    merci de tes informations.
    Nicolas

Page 2 sur 3 PremièrePremière 2 DernièreDernière

Discussions similaires

  1. problème relais commandé par un UM3750
    Par Patrick dans le forum Électronique
    Réponses: 7
    Dernier message: 02/07/2012, 06h10
  2. Commande de relais
    Par powered74 dans le forum Électronique
    Réponses: 7
    Dernier message: 07/03/2007, 21h07
  3. commande relais
    Par nonoff89 dans le forum Électronique
    Réponses: 11
    Dernier message: 29/05/2006, 22h07
  4. relais commandé
    Par gwendoline dans le forum Électronique
    Réponses: 6
    Dernier message: 14/07/2005, 12h54
  5. Commande de relais. (Help)
    Par Monsieur-Patate dans le forum Électronique
    Réponses: 6
    Dernier message: 23/03/2004, 13h48
Découvrez nos comparatifs produits sur l'informatique et les technologies.