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 ---
- 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 ---
Modérateur : Jérémy
nema 17 & tb6560
- F6FCO

Expert- Messages : 2846
- Âge : 99
- Enregistré en : décembre 2017
- Localisation : Banlieue sud de Klyntar
- Contact :
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
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
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.
nema 17 & tb6560
Bonjour,
Ben non c’est pas ce que tu dis, ... renseigne-toi avant d’affirmer.
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+
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
nema 17 & tb6560
Bonjour,
Ben non c’est pas ce que tu dis, ... renseigne-toi avant d’affirmer.
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+
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°
nema 17 & tb6560
- F6FCO

Expert- Messages : 2846
- Âge : 99
- Enregistré en : décembre 2017
- Localisation : Banlieue sud de Klyntar
- Contact :
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.
Mais comme je te sens vindicatif je te laisse avec tes certitudes et j'arrête la conversation ici.
nema 17 & tb6560
- paulfjujo

Maître- Messages : 3256
- Âge : 75
- Enregistré en : juillet 2015
- Localisation : 01800
- Contact :
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 ?
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.
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 + ....

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.
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 + ....

Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
nema 17 & tb6560
- F6FCO

Expert- Messages : 2846
- Âge : 99
- Enregistré en : décembre 2017
- Localisation : Banlieue sud de Klyntar
- Contact :
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.
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.
Exactement, mais si trop dérangeantes on peut toujours atténuer les harmoniques avec des filtres passe-bas.
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.
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 + ....
Exactement, mais si trop dérangeantes on peut toujours atténuer les harmoniques avec des filtres passe-bas.
nema 17 & tb6560
- paulfjujo

Maître- Messages : 3256
- Âge : 75
- Enregistré en : juillet 2015
- Localisation : 01800
- Contact :
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.
nema 17 & tb6560
- paulfjujo

Maître- Messages : 3256
- Âge : 75
- Enregistré en : juillet 2015
- Localisation : 01800
- Contact :
Autre TEST :
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 ..
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 ..
nema 17 & tb6560
- F6FCO

Expert- Messages : 2846
- Âge : 99
- Enregistré en : décembre 2017
- Localisation : Banlieue sud de Klyntar
- Contact :
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.
nema 17 & tb6560
Bonjour a tous.
Oui c'est vrai que le radiateur chauffe. Heureusement que F6FC0 a préconisé de ma pâte thermique
Les moteurs aussi mine de rien ils chauffe un peu quand on joue avec
@++
Oui c'est vrai que le radiateur chauffe. Heureusement que F6FC0 a préconisé de ma pâte thermique
Les moteurs aussi mine de rien ils chauffe un peu quand on joue avec
@++
Qui est en ligne
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 6 invités
