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 l'Assembleur !

Modérateur : mazertoc

[Realisation] Motorisation d'une table de fraiseuse
F6FCO
Avatar de l’utilisateur
Expert
Expert
Messages : 1413
Âge : 70
Enregistré en : décembre 2017
Localisation : Furtif je suis.
Contact :

#31 Message par F6FCO » sam. 30 mai 2020 00:23

Hello tout le monde,
Le programme est terminé et fonctionnel.
Cahier des charges:
- déplacer un banc de fraiseuse conventionnelle.
- permettre un déplacement lent et réglable pour l'usinage (surfaçage et dressage)
- permettre un déplacement rapide à tout moment pour dégager la pièce sans perdre les réglages du déplacement lent.
- Désaccoupler le moteur à n'importe quel moment pour une utilisation manuelle à la manivelle.
- Réglage de la vitesse lente par action sur poussoir (éliminer le risque de toucher le bouton de potentiomètre par erreur en plein usinage).

Le programme:

Code : Tout sélectionner



;**********************************************************************
;
                                                                     
;    NOM:        Commande moteur PAP 16F88                                          
;    Date:       mai 2020                                           
;    Auteur:     F6FCO                                      
;     xtal:       8Mhz interne                                                 
;     Driver réglé en 1/2 pas
;                                                                     
;**********************************************************************
    List p=16F88                    ; processeur utilisé 
    
#include <p16F88.inc>

    __CONFIG    _CONFIG1, _CP_OFF & _CCP1_RB0 & _DEBUG_OFF & _WRT_PROTECT_OFF & _CPD_OFF & _LVP_OFF & _BODEN_OFF & _MCLR_ON & _PWRTE_OFF & _WDT_OFF & _HS_OSC
    __CONFIG    _CONFIG2
, _IESO_OFF & _FCMEN_OFF
      
OPTIONVAL    EQU    H
'0008'            

; ---------------------------------------------------------------------

#DEFINE EtatHaut          bcf PORTA,0 
#DEFINE EtatBas         bsf PORTA,0
#DEFINE LedVRapide         PORTA,1
#DEFINE LedVLente        PORTA,2
#DEFINE LedTemoinDown    PORTA,3
#DEFINE LedTemoinUp        PORTA,4


#define btn_down        PORTB,0        ; bouton décrémentation vitesse 
#define btn_up            PORTB,1        ; bouton incrémentation vitesse
#DEFINE Inter            PORTB,2        ; inter commutation vitesses lente/rapide


;*********************************************************************

    CBLOCK 0x020                   
        Reg_1
        Reg_2
        Reg_3
        PtrNbRepetitions
        Repetitions
    ENDC                                             

;**********************************************************************

    org     0x0000                    ; Adresse de départ après reset  
init
    clrf    PORTA                    
; sorties portB à 0
    bsf        STATUS
,RP0                ; bank1
    clrf    ANSEL                    
; broches du CAN en I/O
    movlw    OPTIONVAL                
; charger masque
    movwf    OPTION_REG                
; initialiser registre option
    clrf    TRISA                    
; Bit PORTA.0 en sortie  
    
    movlw    b
'11111111'
    movwf    TRISB                    ; PORT B en entrée
    bcf        STATUS
,5                ; bank0
    clrf    PORTA                    
; sorties portA Ã  0
    EnableON                        
; enable ON
    movlw    d
'2'
    movwf    Repetitions
    
    
;********************************************************************* 
;                      PROGRAMME PRINCIPAL                           *
;*********************************************************************

main
    btfss    Inter
    goto    VitesseRapide
; ________________________________ Vitesse lente
VitesseLente
    bsf        LedVLente
    bcf        LedVRapide
    bcf        LedTemoinDown
    bcf        LedTemoinUp
    call    Pous_down                
; teste le bouton down    
    call    Pous_up                    
; teste le bouton up
    
;
    ; ------ génération des pulses
    EtatHaut
    movf    Repetitions
,w
    movwf    PtrNbRepetitions
pulsehaut
    call    LargeurPulse
    nop
    movlw    d
'1'
    subwf    PtrNbRepetitions,f
    btfss    STATUS
,Z
    goto    pulsehaut
    EtatBas
    movf    Repetitions
,w
    movwf    PtrNbRepetitions 
pulsebas
    call    LargeurPulse
    nop
    movlw    d
'1'
    subwf    PtrNbRepetitions,f
    btfss    STATUS
,Z
    goto    pulsebas
    
; --------------------
    ;
    goto     main        
    
; ________________________________ Vitesse rapide
    
VitesseRapide
    bsf        LedVRapide
    bcf        LedVLente
    EtatHaut
    call    LargeurPulse
    call    LargeurPulse
    EtatBas
    call    LargeurPulse
    goto     main


    
    

; ---------------------- fonctions ----------------------------------

#DEFINE RepMaxi            d'230'
#DEFINE Increment         d'20'

Pous_down  ; on baisse la vitesse en augmentant la tempo (Poussoir 1)
    btfsc    btn_down
    goto     suite_down
    bsf        LedTemoinDown
    movlw    Increment
    addwf    Repetitions
,f
    call    TempoAntiRebonds
    
    movlw     RepMaxi            
    subwf    Repetitions
,w
    btfsc    STATUS
,Z
    goto    suite_down
    btfss    STATUS
,C
    goto     suite_down
    
; Action
    movlw    d
'230'
    movwf    Repetitions    
suite_down
    return

Pous_up                         
; on augmente la vitesse en diminuant la tampo (poussoir 2)
    btfsc    btn_up
    goto     suite_up
    bsf        LedTemoinUp
    movlw    Increment
    subwf    Repetitions
,f
    call    TempoAntiRebonds 
    nop
    movlw     RepMaxi            
    subwf    Repetitions
,w
    btfsc    STATUS
,Z
    goto    suite_up
    btfss    STATUS
,C
    goto     suite_up
    
; Action
    movlw    d
'2'
    movwf    Repetitions    
suite_up
    return

LargeurPulse
; Délai 200 Cycles de la machine
; Durée du délai 100 microsecond
; Fréquence de l'oscillateur 8 MHZ
            movlw       .66
            movwf       Reg_1
            decfsz      Reg_1,F
            goto        $-1
            nop
            nop
            return
            
TempoAntiRebonds
; Délai 200 000 Cycles de la machine
; Durée du délai 100 millisecond
; Fréquence de l'
oscillateur 8 MHZ
            movlw       .186
            movwf       Reg_1
            movlw       .4
            movwf       Reg_2
            movlw       .2
            movwf       Reg_3
            decfsz      Reg_1
,F
            goto        
$-1
            decfsz      Reg_2
,F
            goto        
$-3
            decfsz      Reg_3
,F
            goto        
$-5
            nop
            return

    END             



Vidéo des essais sur table:
https://www.youtube.com/watch?v=c9Fl0XSTERQ

s100.jpg


Il ne reste qu'à faire le boitier, pffft pas vraiment envie pour le moment, je suis en train de faire des meubles (table à manger et table de salon) et l'atelier est rempli de poussière. Je vais attendre d'avoir fini mes tables pour avoir de nouveau un endroit propre et travailler agréablement.
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Modifié en dernier par F6FCO le sam. 30 mai 2020 12:43, modifié 2 fois.
Une porte nand prend 2 bits en entrée... la cochonne !!! :langue:

[Realisation] Motorisation d'une table de fraiseuse
JMarc
Confirmé
Confirmé
Messages : 605
Enregistré en : août 2016
Localisation : Dans le Sud...

#32 Message par JMarc » sam. 30 mai 2020 07:52

Bonjour F6FCO et tout le forum

Voilà une affaire qui fonctionne

Ton oscilloscope est branché en analogique ?

[Realisation] Motorisation d'une table de fraiseuse
F6FCO
Avatar de l’utilisateur
Expert
Expert
Messages : 1413
Âge : 70
Enregistré en : décembre 2017
Localisation : Furtif je suis.
Contact :

#33 Message par F6FCO » sam. 30 mai 2020 08:03

Bonjour JMarc,
Maintenant il va falloir emmener tout çà sur le terrain, comme je l'ai dis plus haut j'attends d'avoir un atelier propre.

Ce petit oscillo est un numérique.
Une porte nand prend 2 bits en entrée... la cochonne !!! :langue:

[Realisation] Motorisation d'une table de fraiseuse
Temps-x
Avatar de l’utilisateur
Expert
Expert
Messages : 2595
Enregistré en : juillet 2016
Localisation : Terre

#34 Message par Temps-x » dim. 31 mai 2020 20:19

Bonjours F6FCO, JMarc, et tout le forum

Faire cela avec un PIc16F88, ouais super, c'est un de mes microcontrôleur préféré.

As tu prévus une manutention manuelle si ton moteur venait à ne plus fonctionner ?

JMarc a écrit :Source du message Ton oscilloscope est branché en analogique ?


Pratiquement tout les oscilloscopes à écran lcd son numérique, le terme analogique son généralement pour des oscilloscopes à tubes.

==> A+
Modifié en dernier par Temps-x le dim. 31 mai 2020 21:53, modifié 2 fois.
:roll: Les requins, c'est comme le langage ASM, c'est le sommet de la chaîne alimentaire. :wink:

[Realisation] Motorisation d'une table de fraiseuse
JMarc
Confirmé
Confirmé
Messages : 605
Enregistré en : août 2016
Localisation : Dans le Sud...

#35 Message par JMarc » dim. 31 mai 2020 20:49

Bonjour tout le monde

J’ai du mal m’exprimer (comme d’habitude)

Sur l’oscilloscope, il est noté 2 entrées analogiques et 2 entrées numériques mais comme je ne voulais pas polluer le post de F6FCO j’ai ouvert un post à cet effet

Pour répondre à la modif du vernier, non je ne fabrique pas de pièces que je trouve dans le commerce car pas de temps mais pour la visu, comme ça touche à l’électronique je fait une exception :-D

[Realisation] Motorisation d'une table de fraiseuse
F6FCO
Avatar de l’utilisateur
Expert
Expert
Messages : 1413
Âge : 70
Enregistré en : décembre 2017
Localisation : Furtif je suis.
Contact :

#36 Message par F6FCO » dim. 31 mai 2020 23:31

Bonsoir tous,
Temps-x a écrit :As tu prévus une manutention manuelle si ton moteur venait à ne plus fonctionner ?


Oui c'est prévu et nécessaire, si tu regardes la vidéo quand je mets le commutateur que je tiens main gauche sur position milieu le moteur ne tourne plus, c'est la position Enable du driver qui libère le moteur. Nécessaire parce que tu ne peux pas tout faire au moteur en fraisage conventionnel et il faut pouvoir se servir des manivelles (une rainure non débouchante par ex.).

JMarc, je n'avais pas compris ta question, oui je suis sur une des deux entrées analogique. J'ai fais la bêtise de changer le firmware de l'oscillo (le pbm du touche_à_tout :roll: ) et depuis avec le nouveau firmware je ne peux plus changer l'amplitude des signaux TTL des entrées numériques, çà fonctionne toujours mais les signaux numériques sont un peu petits sur l'écran, c'est plus confortable d'utiliser les entrées analogiques.
Une porte nand prend 2 bits en entrée... la cochonne !!! :langue:

[Realisation] Motorisation d'une table de fraiseuse
JMarc
Confirmé
Confirmé
Messages : 605
Enregistré en : août 2016
Localisation : Dans le Sud...

#37 Message par JMarc » dim. 31 mai 2020 23:45

Merci beaucoup de la réponse
Je vais en commander un :sifflotte:

[Realisation] Motorisation d'une table de fraiseuse
F6FCO
Avatar de l’utilisateur
Expert
Expert
Messages : 1413
Âge : 70
Enregistré en : décembre 2017
Localisation : Furtif je suis.
Contact :

#38 Message par F6FCO » dim. 31 mai 2020 23:58

Je répète ici ce que je t'ai dis sur ton autre sujet, si c'est pour visualiser la présence de signal analogique ou numérique, la qualité des signaux, leur amplitude, etc. l'oscilloscope est le bon appareil.
Si c'est pour lire des protocoles comme uart, i2c, spi ou d'autres, vérifier si les bons caractéres ascii sont envoyés ou simplement compter le nombre de pulses dans un train, l'analyseur logique est plus adapté.
Disons que les deux appareils sont complémentaires.
Une porte nand prend 2 bits en entrée... la cochonne !!! :langue:

[Realisation] Motorisation d'une table de fraiseuse
Temps-x
Avatar de l’utilisateur
Expert
Expert
Messages : 2595
Enregistré en : juillet 2016
Localisation : Terre

#39 Message par Temps-x » lun. 1 juin 2020 03:01

Bonjours F6FCO, JMarc, et tout le forum

F6FCO a écrit :Source du message Disons que les deux appareils sont complémentaires.

Je suis d'accord avec F6FCO, il faut les deux....

Temps-x a écrit : As tu prévus une manutention manuelle si ton moteur venait à ne plus fonctionner ?

F6FCO a écrit : Oui c'est prévu et nécessaire


Si tu actives manuellement le moteur pas à pas, les bobines du moteur pas à pas vont induire une tension dans le drivers, et t'il prévu pour encaisser ?

Quelle drivers utilises tu pour ton moteur pas à pas, car sur le plan je vois LA2596

je n'ai pas trouvé la datasheet, as tu un lien sur la datasheet ?

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

[Realisation] Motorisation d'une table de fraiseuse
Clitisvoud
Avatar de l’utilisateur
Débutant
Débutant
Messages : 48
Enregistré en : octobre 2019

#40 Message par Clitisvoud » lun. 1 juin 2020 14:37

Hello,
Encore une fois je n'arrive pas à me connecter sous F6FCO, alors j'utilise un deuxième pseudo avec un autre mot de passe.

Ca va aller, j'ai déjà utilisé ce système, et quand on usine on tourne les manivelles lentement. Pour avoir de grosses tensions en sortie de moteur il faudrait les tourner très rapidement mais même là le driver supporte.

Ce n'est pas LA2596, c'est à cause de mon écriture c'est LM2596, un module pour réduire le 24v en 5vcc nécessaire pour le driver.

La référence du driver : https://fr.aliexpress.com/item/32764908 ... web201603_
J'en avais déjà parlé dans le sujet sur les CNC, un driver pas cher qui peut encaisser 4,5A, robuste et fiable.


Retourner vers « Langage ASM »

Qui est en ligne

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