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

commande progressive par PWM



  1. #1
    pic83

    commande progressive par PWM


    ------

    bonjour,

    j'ai réalisé un programme permettant de commander l'allumage et l'extinction progressive d'une lampe par le mode PWM d'un Pic 16f648a.
    L'allumage et l'extinction se font par contact en tout ou rien (contact fermé -->allumage progressif , contact ouvert --> extinction progressive)
    Jusque là les essais se montrent concluants.
    Je voudrais maintenant commander cet allumage et extinction par impulsion par boutons poussoires.
    J'ai modifié mon programme pour cela.
    Lorsque je le test avec Protéus celui-ci fonctionne comme voulu (bon évolution du signal sur oscilloscope), par contre sur platine (en réel) la commande allumage ou extinction par impulsion ne fonctionne pas, si appuis sur allumage alors la progression se fait mais si j'arrête d'appuyer la lampe ne reste pas dans son état d'allumage ... elle s'allume en pleine puissance et vice versa pour l'extinction.
    Si quelqu'un peut m'aider merci d'avance
    Je peux envoyer en MP mon programme

    Pic83

    -----

  2. Publicité
  3. #2
    CaptainDoc

    Re : commande progressive par PWM

    Tu pourrais le joindre directement ici ton code ce serai plus simple pour nous je pense

  4. #3
    pic83

    Re : commande progressive par PWM

    ci-joint le code :

    Code:
    ;**********************************************************************
    ;                     ROUTINE INTERRUPTION                            *
    ;**********************************************************************
    
    			;sauvegarder registres	
    			;---------------------
    	org 	0x004		; adresse d'interruption
    	movwf   w_temp  	; sauver registre W
    	swapf	STATUS,w	; swap status avec résultat dans w
    	movwf	status_temp	; sauver status swappé
    
    
    test_flagRB	btfss	INTCON,0
    			goto	test_flagTMR2
    			clrf	fin
    			effacer_flagRB
    test1		btfss	PORTB,5
    			goto	test3
    ALL			bsf		demande_allumage,0
    deb1		incf	CCPR1L,1
    
    controle	movlw	PR2_val
    			movwf	mavariable
    			movf	CCPR1L,0
    			subwf	mavariable,0
    			btfss	STATUS,Z
    			goto	tempo1
    			bsf		fin,0
    			clrf	demande_allumage
    			interdire_interr_TMR2
    			effacer_flag_TMR2
    			arreter_TMR2
    			goto	fin_interr
    
    tempo1		decfsz	decompte_nbre,1
    			goto	lancer_TMR2
    			recharger_decompte_nbre
    			goto	deb1
    
    lancer_TMR2		effacer_flag_TMR2
    				raz_TMR2	
    				autoriser_interr_TMR2
    				demarrer_TMR2
    				goto	fin_interr	
    
    test_flagTMR2	btfss	PIR1,1
    				goto	fin_interr
    test2			btfsc	demande_allumage,0
    				goto	tempo1
    				
    tempo2			decfsz	decompte_nbre,1
    				goto	lancer_TMR2
    				recharger_decompte_nbre				
    				goto	deb2				
    				
    EXT				clrf	demande_allumage
    deb2			decfsz	CCPR1L,1
    				goto	tempo2
    				bsf		fin,0				
    interdire		interdire_interr_TMR2
    				effacer_flag_TMR2
    				arreter_TMR2
    				goto	fin_interr
    				
    test3			btfss	PORTB,4
    				goto	interdire
    				clrf	demande_allumage
    				goto	deb2
    				
    				
    		
    	;+++++++++++++++++++++++++++++++++++++++++++
    			;restaurer registres
    			;-------------------
    
    fin_interr	swapf	status_temp,w	
    			movwf	STATUS	 
    			swapf	w_temp,f	           	
    			swapf	w_temp,w
    			retfie  	
    
    
    
    
    ;*************************************************************************************
    ;  				PROGRAMME PRINCIPAL
    ;*************************************************************************************
    
    			recharger_decompte_nbre
    			clrf	CCPR1L		
    			effacer_flagRB	
    			autoriser_interr_RB				
    
    
    					
    action			nop
    			goto	action
    Dernière modification par Antoane ; 30/11/2016 à 10h23. Motif: Intégration du code au corps du message

  5. #4
    pic83

    Re : commande progressive par PWM

    personne a une idée ?

  6. #5
    freepicbasic

    Re : commande progressive par PWM

    c est quoi arreter_tmr2

    il en manque dans ton prog, tu fais appelle a des macros ou autre define inconnu les variable sont déclarés où ?

    avec un PWM on ne l'arrête pas , sinon on aura soit un 1 ou
    0 en sortie.
    A+, pat

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

    Re : commande progressive par PWM

    c'est ce que j'avais trouvé, bien sûr, logique
    en lisant ton post, tu confirmes ce que je n'aurai pas dû faire dans mon code
    Dernière modification par pic83 ; 02/12/2016 à 17h40.

  9. Publicité

Sur le même thème :

Discussions similaires

  1. onde progressive
    Par iyed dans le forum Physique
    Réponses: 2
    Dernier message: 15/04/2009, 16h43
  2. onde progressive
    Par iyed dans le forum Physique
    Réponses: 0
    Dernier message: 14/04/2009, 17h58
  3. Onde progressive
    Par laureena dans le forum Physique
    Réponses: 1
    Dernier message: 10/11/2008, 12h00
  4. Onde progressive
    Par babaz dans le forum Physique
    Réponses: 3
    Dernier message: 26/09/2006, 22h10
  5. Onde progressive
    Par Neutrino dans le forum Physique
    Réponses: 3
    Dernier message: 13/06/2003, 15h22
Découvrez nos comparatifs produits sur l'informatique et les technologies.