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

moteur unipolaire



  1. #1
    coeur noire
    Invité

    moteur unipolaire


    ------

    salut


    j'essai envin de faire touner un moteur unipolaire
    avec le PORTA4 ,PORTB3,PORTB6,PORTB7
    j'ai configurer OPTION_REG 10000000 pour desactiver les resistances interne et les interuptions inactif

    pouvez me dire ou est mon erreur et me metre laisser un code asm

    Code:
    ;**********************************************************************
    ;   PROGRAMME MOTOR UNIPOLAIRE piloter avec les  PINS PA4,PB3,PB6,PB7 *  
    ;   INTERUPTION PIN PB0 AVEC LE PIC16F88                              *
    ;**********************************************************************
    ;                                                                     *
    ;    NOM:     MOTOR UNIPOLAIRE                                        *
    ;    Date:     00/04/2009                                             *
    ;    Version:  1.0                                                    *
    ;    Circuit:  Platine d'essais                                       *
    ;    Auteur:                                                          *
    ;                                                                     *
    ;**********************************************************************
    ;                                                                     *
    ;    Fichier requis: P16F88.inc                                       *
    ;                                                                     *
    ;**********************************************************************
    ;                                                                     *
    ; Notes: Ce petit programme permet de faire tourné un motor pas a pas *
    ;                                                                     *
    ;                                                                     *
    ;                                                                     *
    ;**********************************************************************
    
    
    
                    LIST      p=16F88            ; Définition de processeur
                   	#include <p16F88.inc>        ; Définitions de variables
     __CONFIG _CONFIG1, _CP_OFF & _CCP1_RB3 & _DEBUG_ON & _WRT_PROTECT_OFF & _CPD_OFF & _LVP_OFF & _BODEN_OFF & _MCLR_ON & _PWRTE_ON & _WDT_OFF & _HS_OSC
    
    
    
    ; '__CONFIG' précise les parametres encodés dans le processeur au moment de
    ; la programmation. Les définitions sont dans le fichier include.
    ; Voici les valeurs et leurs définitions :
    ;	_CP_ON		Code protection ON : impossible de relire
    ;	_CP_OFF		Code protection OFF
    ;	_PWRTE_ON	Timer reset sur power on en service
    ;	_PWRTE_OFF	Timer reset hors-service
    ;	_WDT_ON		Watch-dog en service
    ;	_WDT_OFF	Watch-dog hors service
    ;	_LP_OSC		Oscillateur quartz basse vitesse
    ;	_XT_OSC		Oscillateur quartz moyenne vitesse
    ;	_HS_OSC		Oscillateur quartz grande vitesse
    ;	_RC_OSC		Oscillateur a réseau RC
    
    
    ;*********************************************************************
    ;                              ASSIGNATIONS                          *
    ;*********************************************************************
    
    OPTIONVAL	EQU	H'80' ; Valeur registre option
                                    
    
    
    
    
    
    
    
    
    ;*********************************************************************
    ;                             DEFINE                                 *
    ;*********************************************************************
    
    
    
    ;*********************************************************************
    ;                   DECLARATIONS DE VARIABLES                        *
    ;*********************************************************************
    
    
        CBLOCK 0x20   	        ; début de la zone variables
            
        compteur :    1         ; compteur de boucles 1 dans tempo
              
        ENDC	                   
    					                        
    
    
    ;**********************************************************************
    ;                      DEMARRAGE SUR RESET                            *
    ;**********************************************************************
    
        ORG 	0x80 		    ; Adresse de départ apres reset
        
        goto    INIT			; Adresse 0: initialiser
      	
     ;**********************************************************************
    ; ROUTINE INTERRUPTION                                                 *
    ;**********************************************************************
              
    
     ;**********************************************************************
    ; INTERRUPTION RB0/INT *
    ;**********************************************************************
    
      	
    ;*********************************************************************
    ;                       INITIALISATIONS                              *
    ;*********************************************************************
    
    INIT 
       
       clrf	    PORTA           ; Sorties portA a 0 
       clrf	    PORTB	        ; Sorties portA a 0
       bsf	    STATUS,RP0      ; page 1 bank1
       clrf     ANSEL           ; toutes les broches du CAN en I/O digitales.
       movlw    OPTIONVAL       ; charger masque
       movwf    OPTION_REG      ; initialiser registre option
       			    ; Effacer RAM
    			    ; ------------
      movlw	    0x20	        ; initialisation pointeur
      movwf	    FSR		        ; pointeur d'adressage indirec
      clrf      INDF            ; effacer ram pointée par FSR
                    ; configurer PORTS
                    ; ---------------
     
      bcf       TRISA,4         ;PA4  EN SORTI
      bcf       TRISB,3         ;PB3  EN SORTI  
      bcf       TRISB,6         ;PB6  EN SORTI
      bcf       TRISB,7         ;PB7  EN SORTI
    
    
      
      goto      START
    
    
    
    ;*********************************************************************
    ; SOUS-ROUTINE DE TEMPORISATION                                      *
    ;*********************************************************************
    
    
       
       
       
    
    
         
       tempo 
       movlw 0xEE                   ; on charge la valeur dans w
       movwf compteur               ; initialiser compteur de boucles
       boucle2 
       decfsz compteur,f            ; décrémenter compteur, sauter si 0
       goto boucle2                 ; boucle si pas 0
       bcf PORTA,3                   
       bcf PORTA,6
       bcf PORTA,7
       bcf PORTB,4
       return                       
    
    
    
    
    ;*********************************************************************
    ;                      PROGRAMME PRINCIPAL                           *
    ;*********************************************************************
    START
      bsf       TRISA,4         ;PA4 
      call   tempo
      call   tempo
      bsf       TRISB,3         ;PB3  
      call   tempo
      call   tempo
      bsf       TRISB,6         ;PB6 
      call   tempo
      call   tempo
      bsf       TRISB,7         ;PB7  
      goto START
     END
    Plutôt que de passer par un zip, lourd à contrôler et à valider, j'ai opté pour la balise code (#) faite pour cela.


    .

    -----
    Dernière modification par gienas ; 26/04/2009 à 18h45. Motif: Retiré le zip et passé en code

  2. Publicité
  3. #2
    coeur noire
    Invité

    Re : moteur unipolaire

    oups je me suis tromper ver la fin PROGRAMME PRINCIPAL
    START
    bsf PORTA,4 ;PA4
    call tempo
    call tempo
    bsf PORTB,3 ;PB3
    call tempo
    call tempo
    bsf PORTB,6 ;PB6
    call tempo
    call tempo
    bsf PORTB,7 ;PB7
    goto START
    END

  4. #3
    gcortex

    Re : moteur unipolaire

    pour desactiver les resistances interne
    si tu es en drain ouvert t'as aucune chance

    t'as mis des transistors ?


  5. #4
    coeur noire
    Invité

    Re : moteur unipolaire

    salut

    bon on va l'aisser l'assembleur

    je doit piloter un moteur unipolaire avec PIC16F88 + ULN2803
    j'utilise les PORTA4,PORTB3,PORTB6,PORTB7
    j'essai de reunnir tout les ports dans une matrice
    est ce que ce code peux fair tourner mon moteur




    Code:
    
    void INIT(char *matrice,long taille);
    void main(void)
    {
    char matrice[]="NULL";
    long i, taille=4;
    OPTION_REG = 0x80;       // Assign prescaler to TMR0
    ANSEL  = 0;
    TRISA = 0;
    TRISB = 0;
    INIT(matrice,taille);
    matrice[i];
    while(1)
    {
    matrice[i]=0001;
    delay_ms(500);
    matrice[i]=0010;
    delay_ms(500);
    matrice[i]=0100;
    delay_ms(500);
    matrice[i]=1000;
    }
    }
    void INIT(char *matrice,long taille)
    {
    
    long i;
    for(i=0;i<taille;i++)
    {
      matrice[0]=PORTA.F4;
      matrice[1]=PORTB.F3;
      matrice[2]=PORTB.F6;
      matrice[3]=PORTB.F7;
    
    }
    }

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

    Re : moteur unipolaire

    mais pourquoi désactiver les résistances ??
    comment tes sorties vont passer à 1 ??

  8. #6
    coeur noire
    Invité

    Re : moteur unipolaire

    salut gortex


    il est vrais qu'en desactivent les resistance je n'est pas du +5V
    alors que sur les autre portA j'ai +5V
    alors j'ai rien piger sur les resistance internes
    pour moi quand on active les resistance sur le portB c'est pour les utiliser en entrer pour envoyer des signaux 0 ou 1

  9. Publicité

Discussions similaires

  1. induction unipolaire
    Par deep_turtle dans le forum Physique
    Réponses: 1
    Dernier message: 09/05/2014, 15h54
  2. programme C pour moteur unipolaire
    Par coeur noire dans le forum Électronique
    Réponses: 4
    Dernier message: 09/04/2009, 19h42
  3. moteur pas a pas unipolaire 4 fil à 3 bobine ?
    Par exor_6 dans le forum Électronique
    Réponses: 3
    Dernier message: 19/01/2008, 18h21
  4. Moteur pas à pas : bipolaire ou unipolaire, que choisir ?
    Par gaga2410 dans le forum Électronique
    Réponses: 6
    Dernier message: 16/10/2007, 06h37
  5. au secours: commande d'un moteur unipolaire par PC
    Par Melou dans le forum Électronique
    Réponses: 0
    Dernier message: 01/08/2006, 18h37
Découvrez nos comparatifs produits sur l'informatique et les technologies.