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

nema 17 & tb6560
F6FCO
Avatar de l’utilisateur
Expert
Expert
Messages : 2846
Âge : 99
Enregistré en : décembre 2017
Localisation : Banlieue sud de Klyntar
Contact :

#61 Message par F6FCO » ven. 20 sept. 2024 21:17

Je ne sais pas trop ce que tu veux faire comme mesures. De mon coté je n'ai plus de pap libres, tous montés sur des projets, pas trop envie de brancher/débrancher ceux accessibles sur mon Rub1k pour leur injecter un signal, j'en bave déjà assez avec les réglages de la méca.
Alors j'ai fait un petit programme et mis le fréquencemètre dessus, cherché la frq maxi possible par prog, 5.4 Khz. J'ai aussi branché mon deuxième compteur dessus, même résultat. Suis au max, si je réduis les tempos il ne démarre plus.
Alimenté en +12vcc.
Voici ce que çà donne:

https://www.youtube.com/watch?v=FiPzhZwjGQc

P1070043.JPG


Code : Tout sélectionner

;#define papDclk    LATE,0        ; pap droit clock

    bsf    papenD        ; enable driver pap D
tourne    
    bsf    papDclk        
; front montant
    call    tempoHaute    
; demi-alternance haute
    bcf    papDclk        
; front descendant
    call    tempoBasse    
; demi-alternance basse
    bra    tourne
    
tempoHaute
; Délai 240 Cycles de la machine
; Durée du délai 120 microsecond
; Fréquence de l'oscillateur 8 MHZ
            movlw       .79
            movwf       Reg_1,1
            decfsz      Reg_1,F,1
            bra         $-2
            nop
            nop
            return
    
tempoBasse
; Délai 120 Cycles de la machine
; Durée du délai 60 microsecond
; Fréquence de l'
oscillateur 8 MHZ
            movlw       .39
            movwf       Reg_1
,1
            decfsz      Reg_1
,F,1
            bra         
$-2
            nop
            nop
            return    
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Une porte nand prend 2 bits en entrée... :eek:

nema 17 & tb6560
Temps-x
Avatar de l’utilisateur
Expert
Expert
Messages : 2886
Enregistré en : juillet 2016
Localisation : Terre

#62 Message par Temps-x » ven. 20 sept. 2024 22:10

Bonjour,

F6FCO a écrit :Source du message Tu confonds avec les servomoteurs employés en industrie


Ben non c’est pas ce que tu dis, ... renseigne-toi avant d’affirmer.

F6FCO a écrit :Source du message Pas du tout, ne pas confondre ces 200Hz et les 200 pas du moteur


je ne confonds pas, reli ce que j'ai dit

En réalité on pourrait plutôt parler de pulsation, car l’alternance négative n’existe pas comme dans une vraie fréquence 200 pulsation = 1 tour ( 200 pas) pour réglage correct

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

nema 17 & tb6560
Temps-x
Avatar de l’utilisateur
Expert
Expert
Messages : 2886
Enregistré en : juillet 2016
Localisation : Terre

#63 Message par Temps-x » ven. 20 sept. 2024 22:16

Bonjour,

F6FCO a écrit :Source du message Tu confonds avec les servomoteurs employés en industrie


Ben non c’est pas ce que tu dis, ... renseigne-toi avant d’affirmer.

F6FCO a écrit :Source du message Pas du tout, ne pas confondre ces 200Hz et les 200 pas du moteur


je ne confonds pas, reli ce que j'ai dit

En réalité on pourrait plutôt parler de pulsation, car l’alternance négative n’existe pas comme dans une vraie fréquence 200 pulsation = 1 tour ( 200 pas) pour réglage correct

Pour ceux qu'ils ne le savent pas

1 tour = 360° / 200 pas = 1/8°

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

nema 17 & tb6560
F6FCO
Avatar de l’utilisateur
Expert
Expert
Messages : 2846
Âge : 99
Enregistré en : décembre 2017
Localisation : Banlieue sud de Klyntar
Contact :

#64 Message par F6FCO » sam. 21 sept. 2024 00:02

Pour info j'étais radio-électronicien de bord, spécialisé en hautes-fréquences, c'était juste mon pro et de surcroit radio-amateur depuis les années 70, donc une fréquence je pense savoir ce que c'est. 'Quand il n'y a pas d'alternance négative ce n'est pas une fréquence... merci de m'apprendre une nouvelle théorie.
Mais comme je te sens vindicatif je te laisse avec tes certitudes et j'arrête la conversation ici.
Une porte nand prend 2 bits en entrée... :eek:

nema 17 & tb6560
paulfjujo
Avatar de l’utilisateur
Maître
Maître
Messages : 3256
Âge : 75
Enregistré en : juillet 2015
Localisation : 01800
Contact :

#65 Message par paulfjujo » sam. 21 sept. 2024 11:37

y a-t-il une raison particuliere pour etat Haut =2 fois etat bas
quand j'envoi ma commande via NCO1 , le rapport cyclique est de 50% (etat haut = etat bas ).

Quelle sont les positions dipswitch de ton driver ?

Code : Tout sélectionner


    CPrint
(" Test F6FCO, sortie pulses sur RC2    F(theo)=5555 Hz  F(Mesurée)= 5200 hz \r\n");
    CPrint(" Dip switch sur  1=ON 2=0N 3=OFF \r\n");
    CPrint(" nota : Aucune interruption armée -->moteur  1.75Tr /sec \r\n");
        NEMA_Enable=1;
        NEMA_Rotation=0;
       do
        
{
            NEMA_Pulses =1;  
             __delay_us
(120);               
            NEMA_Pulses 
=0;
             __delay_us(60);   
         
}
        while(1);
 


Fmesurée > F theo
car rajout de quelque µS pour la boucle do ..while et appel de tempo

avec dipswitch sur 1=ON 2,3,4 =OFF
le moteur vibre mais ne tourne pas !

avec dipswitch sur 1=ON 2=ON 3,4=OFF OK !
le moteur tourne (normalement) à 1,75 Tr/sec
alim 24V Imoyen=0.3A

Nota : dans ce test je ne peux pas utiliser interrupt RB0 pour mesurer la vitesse de rotation moteur
car perturbe trop le timing ..dans la boucle do While
donc mesure du signal fourche optique via l'oscilloscope.

Test_NEMA23_pulse_cde_5200Hz_pour_1.75Tr.sec_2024-0921.jpg

Test_NEMA23_dip_110_5200Hz_1.75Tr.sec_2024-0921.jpg


Banc_de_test_moteur_NEMA23_2024-0921.jpg




oops Histore de semer la pagaille :
Frequence ?
oui, pour un beau sinus sans distortion
signal carré :
on pourrait meme parler de FrequenceS... somme des frequences F0 +3f +5f +7f + ....
exit
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Aide toi, le ciel ou FantasPic t'aidera

nema 17 & tb6560
F6FCO
Avatar de l’utilisateur
Expert
Expert
Messages : 2846
Âge : 99
Enregistré en : décembre 2017
Localisation : Banlieue sud de Klyntar
Contact :

#66 Message par F6FCO » sam. 21 sept. 2024 12:20

Sur mon projet RUB1K je suis réglé sur 100, en quart de pas. Sur mes CNC je ne sais plus, pas envie de démonter les boitiers, probablement pareil.

y a-t-il une raison particuliere pour etat Haut =2 fois etat bas

C'est juste le rapport cyclique, tu le règles comme tu veux sur ton géné ou dans ton code, il ne changera pas la fréquence, plus ton alternance haute sera grande par rapport à l'alternance basse (je dis bien "basse", pas "négative") plus tu auras de courant dans ton moteur, c'est d'ailleurs ce principe qui est utilisé dans les rampes d'accélérations et décélération des moteurs, on joue à la fois sur la fréquence et le rapport cyclique:
- rampe d'accélération fréquence basse et grand rapport cyclique, et on fait varier pour arriver à fréquence haute et rapport cyclique plus bas en vitesse de croisière, si tu veux t'amuser de ce coté il y a de quoi expérimenter.
Il faudrait retrouver dans le fond du forum mais j'avais fait des routines là-dessus dans mon projet soft de commande CNC 4L1C3, il y a les algorigrammes et les routines. J'avais pondu mes trucs mais il existe certainement plein d'autres algorithmes pour arriver au même résultat.
Comme le principe du PWM ou des alims à découpage en fait.
Dans mon code j'ai choisi un rapport cyclique d'environ 90/10 mais tu fais ce que tu veux en modifiant les tempos.

Autre point, quand ton moteur ne tourne pas pour une fréquence donnée il se peut aussi qu'il faille jouer sur le potar bleu, il n'a peut-être pas assez de courant pour démarrer, on n'a pas le schéma du module mais je suppose qu'ils jouent aussi sur le rapport cyclique.

Encore autre point, ici on joue avec des moteurs qui fonctionnent à vide sur table, ajoute leur un chariot CNC à mouvoir et des efforts de coupe et çà change tous les paramètres. Comme un véhicule, le moteur sur banc à l'usine monte dans les tours immédiatement, quand il est installé dans le camion chargé c'est une autre paire de manches, il faut faire une rampe d'accélération avec la boite à vitesses, pareil pour s'arrêter on ne pile pas d'un coup à 130km/h, on ralentit en tombant les vitesses. Pour un pap monté sur une machine c'est exactement la même chose et c'est pour cela que tous les essais que tu fais maintenant ne vaudront plus une fois tes moteurs montés sur ta machine, Heureusement il suffira de paramétrer LinuxCNC ou Candle (ou autre) pour les régler en charge (vitesse, accélération, décélération) sous peine de perdre des pas en usinage si c'est mal fait.

5.208Khz sur ton oscillo, on se retrouve à peu près sur les tests, le petit manque que tu as s'explique peut-être par le produit de la compilation du code C qui prends plus de temps machine que de l'asm pur, ce serait intéressant de désassembler pour examiner le code produit.

oops Histore de semer la pagaille :
Frequence ?
oui, pour un beau sinus sans distortion
signal carré :
on pourrait meme parler de FrequenceS... somme des frequences F0 +3f +5f +7f + ....
exit

Exactement, mais si trop dérangeantes on peut toujours atténuer les harmoniques avec des filtres passe-bas.
Une porte nand prend 2 bits en entrée... :eek:

nema 17 & tb6560
paulfjujo
Avatar de l’utilisateur
Maître
Maître
Messages : 3256
Âge : 75
Enregistré en : juillet 2015
Localisation : 01800
Contact :

#67 Message par paulfjujo » sam. 21 sept. 2024 14:20

F6FCO a écrit :...
Dans mon code j'ai choisi un rapport cyclique d'environ 90/10 mais tu fais ce que tu veux en modifiant les tempos.

Pas avec l'usage de NCO1 pour la génération des pulses car le rapport cyclique est forcé en interne , à 50% ..
par contre si usage de PWM5 au lieu du NCO1 , là, on peut jouer sur le rapport cyclique ..

F6FCO a écrit :Autre point, quand ton moteur ne tourne pas pour une fréquence donnée il se peut aussi qu'il faille jouer sur le potar bleu, il n'a peut-être pas assez de courant pour démarre ...


Effectivement, le potar bleu etait pres du mini, je l'ai mis à fond
pour que ça puisse demmarer , car au 3/4 je n'ai que 0,6A et il ne demmarre pas ...
une fois lancé ,il tient la vitesse ,meme en diminuant à 0,4A..
MAIS, ensuite, ne pourra plus redemarrer !

re-test avec Dip Switch à 1 0 0 et potar bleu à fond
et mon appli XC8
reglage Freq=5200Hz avec potar (ADC sur RA1 )

le chrono RB0 donne :
(0.152) #
(0.152) #
(0.153) #
(0.152) #
(0.152) #
(0.152) #
(0.153) #


l'oscillo mesure : 153ms inter top tour
Freq= 1000 /153 => 6.5Tr/sec ...390 Tr/min
Alim 24V I=0,8A

F6FCO a écrit :5.208Khz sur ton oscillo, on se retrouve à peu près sur les tests, le petit manque que tu as s'explique peut-être par le produit
de la compilation du code C qui prends plus de temps machine que de l'asm pur, ..ce serait intéressant de désassembler
pour examiner le code produit.


Tout à fait !

5371 013EEE l13460:
5372
5373 ;main.c: 956: {;main.c: 957: LATCbits.LATC2 =1;
5374 013EEE 84BC bsf 188,2,c ;volatile
5375 013EF0
5376 ;main.c: 958: _delay((unsigned long)((120)*(64000000/4000000.0)));
5377 013EF0 0E03 movlw 3
5378 013EF2 0101 movlb 1 ; () banked
5379 013EF4 6FFB movwf ??_main& (0+255),b
5380 013EF6 0E7D movlw 125
5381 013EF8 u13597:
5382 013EF8 2EE8 decfsz wreg,f,c
5383 013EFA D7FE bra u13597
5384 013EFC 2FFB decfsz ??_main& (0+255),f,b
5385 013EFE D7FC bra u13597
5386 013F00
5387 ;main.c: 959: LATCbits.LATC2 =0;
5388 013F00 94BC bcf 188,2,c ;volatile
5389 013F02
5390 ;main.c: 960: _delay((unsigned long)((60)*(64000000/4000000.0)));
5391 013F02 0EC0 movlw 192
5392 013F04 u13607:
5393 013F04 D000 nop2
5394 013F06 2EE8 decfsz wreg,f,c
5395 013F08 D7FD bra u13607
5396
5397 ;main.c: 961: }
5398 013F0A EF77 F09F goto l13460


il n'est plus à démontrer que l'ASM est le plus rapide et concis...
mais en C, c'est quand meme plus facile de gérer les interruptions , les timers, le NCO1 , l'I2C , LCD, UART ,ADC ..
surtout quand on travaille sur plusieurs type de MCU.
Aide toi, le ciel ou FantasPic t'aidera

nema 17 & tb6560
paulfjujo
Avatar de l’utilisateur
Maître
Maître
Messages : 3256
Âge : 75
Enregistré en : juillet 2015
Localisation : 01800
Contact :

#68 Message par paulfjujo » sam. 21 sept. 2024 15:50

Autre TEST :

Code : Tout sélectionner

 CPrint(" Test_200_pulses,  RC2  On 500µS  OFF 250µS\r\n");
    CPrint(" Dip switch sur  1=ON 2=OFF 3=OFF \r\n");
    NEMA_Enable=1;
    NEMA_Rotation=0;
    do
    
{
    for (i=0;i<200;i++)
    {
       NEMA_Pulses =1;  
       __delay_us
(500);               
       NEMA_Pulses 
=0;
       __delay_us(250);   
    
}  
    NEMA_Enable
=0  ;
    __delay_ms(500);
   }
    while(1);
 

nota : potar bleu à 80% !
DIP SWITCH ON ON OFF 200 pulses -> 1/16em de tour i=0.9Amps
DIP SWITCH ON OFF OFF 200 pulses -> 1/4 de tour i= 1,1Amps
DIP SWITCH OFF OFF ON 200 pulses -> 1 tour i= 2 Amps


Cela confirme mon hypothese ,
que ce Driver a une logique inverse au niveau du dipswitch
ON =0 OFF=1


un autre test avec mon appli XC8 _18F27K42_Test_NEMA23_2024.X
consigne freq avec potar sortie NCO1 200Hz duty signal 50%
Switch 1 OFF 2 OFF 3 ON
mesure tour via RB0 interrupt
(1.031) #
(1.024) #
(1.008) #
(1.007) #
(1.008) #
1 tour/sec à 200Hz ... OK
mais le moteur est bien sollicité ! .. i=2Amp alim 24V
et le driver s'echauffe beaucoup ..
Aide toi, le ciel ou FantasPic t'aidera

nema 17 & tb6560
F6FCO
Avatar de l’utilisateur
Expert
Expert
Messages : 2846
Âge : 99
Enregistré en : décembre 2017
Localisation : Banlieue sud de Klyntar
Contact :

#69 Message par F6FCO » sam. 21 sept. 2024 16:55

pour que ça puisse demmarer , car au 3/4 je n'ai que 0,6A et il ne demmarre pas ...
une fois lancé ,il tient la vitesse ,meme en diminuant à 0,4A..
MAIS, ensuite, ne pourra plus redemarrer !

C'est tout l'intérêt d'une rampe d'accélération, tu n'es pas obligé de démarrer avec toute la cavalerie.

mais le moteur est bien sollicité ! .. i=2Amp alim 24V
et le driver s'echauffe beaucoup ..

J'ai placé un ventilo de PC sur le couvercle du boitier de ma petite CNC, il tourne en permanence.
Une porte nand prend 2 bits en entrée... :eek:

nema 17 & tb6560
venom
Avatar de l’utilisateur
Expert
Expert
Messages : 1615
Âge : 40
Enregistré en : avril 2016
Localisation : Klyntar
Contact :

#70 Message par venom » sam. 21 sept. 2024 17:39

Bonjour a tous.

Oui c'est vrai que le radiateur chauffe. Heureusement que F6FC0 a préconisé de ma pâte thermique 8-)

Les moteurs aussi mine de rien ils chauffe un peu quand on joue avec






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


Retourner vers « Langage C »

Qui est en ligne

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