Aide affichage vitesse de broche via afficheur arduino par le signal borne FG du controleur moteur ?

J

jeo

Apprenti
Bonjour à tous ,

Heureux lecteur de vos discussions (pas assez caler pour aider , je viens à mon tour vous poser une petite question sur le sujet arduino. C'est vraiment un sujet passionnant !!

J'ai réalisé ces derniers mois une CNC avec comme électronique un Arduino + schield V3. Mon moteur de broche est un un brushless 500W avec comme contrôleur ws55-220 (modèle connu sur les sites de vente en ligne :-D )

Je souhaiterais maintenant pouvoir connaitre la vitesse de rotation de ma broche quand je règle le potentiomètre et plus tard le faire par GRBL ... ( chaque chose en son temps :-D.

Sachant que l'on peut utiliser un Arduino + un afficheur, je ne souhaite pas rajouter un module infra-rouge sur la broche DONC savez vous si on peut utiliser le signal de la borne FG (Speed signal interface output) du contrôleur ws55-220 directement à l'entrée de l' Arduino ?

Je suis désolé mais les seules infos que j' ai sur le data-sheet du contrôleur : "PG signal:This port and the ground have a 5V speed pulse output"

481716


Est-ce que quelqu'un aurait dèjà expérimenté ce type de montage ?
merci pour vos lectures
bonne journée
 
T

tyio

Compagnon
salut :)

tu n'as pas d'oscilloscope je presume ? En tout cas si c'est du 5V en modulation PWM , pas de probleme pour l'arduino, dans le doute, tu y met une diode qui va descendre de 0.7v comme çà tu grilles rien ^^, verifie quand meme au multimetre la valeur min/max :wink:
 
5

59JAG

Ouvrier
Speed Output:
1. PG Signal: It outputs 5V rotation speed pulse between this port and COM port.
2. We name output frequency P (Hz), pole number N, speed F (RPM), and its output speed frequency will be: P=F*N/60.
 
J

jeo

Apprenti
salut :)

tu n'as pas d'oscilloscope je presume ? En tout cas si c'est du 5V en modulation PWM , pas de probleme pour l'arduino, dans le doute, tu y met une diode qui va descendre de 0.7v comme çà tu grilles rien ^^, verifie quand meme au multimetre la valeur min/max :wink:
Salut Tyio ,
Non , je n' ai pas d' oscillo mais c vrai qu' il semblerai qu'il s'agisse bien d'un signal PWM.
Le mieux c'est d' essayer !! il faut que j'achete le module I2C avant pour l' afficheur ...

Merci pour ta réponse et bonne journée
 
J

jeo

Apprenti
Speed Output:
1. PG Signal: It outputs 5V rotation speed pulse between this port and COM port.
2. We name output frequency P (Hz), pole number N, speed F (RPM), and its output speed frequency will be: P=F*N/60.

Bonjour 59JAG,
A priori , il s' agit bien d'un signal PWM .
merci pour cette confirmation !

bonne journée
 
V

vince_007

Compagnon
Vue la formule, ce n'est pad du pwm ! La fréquence du signal correspond à la vitesse de rotation à une constante prêt, Npole/60 qui une fois connu ne change pas. D'ailleurs, c'est surement Npole sur 50 en France, car le secteur est à 50Hz.

Pour acquérir un tel signal, on monte un optocoupleur, diode + résistance côté variateur, et transistor + résistance de pull-up côté arduino.
 
Dernière édition:
T

tyio

Compagnon
Salut
We un signal linéaire c est encore plus facile à récupérer sans iic :)
 
J

jeo

Apprenti
salut tous,
j'ai trouvé un moyen d'empreinter un oscillo , ça permettra de confirmer le type de signal .

Je vais creuser la manière de connecter ce signal sur l' arduino au vu des infos de Vince !

Merci pour les infos !!!!
 
J

jeo

Apprenti
Bonjour à tous ,

Je viens donc de brancher un oscillo entre la borne PG et la masse :
Le signal est donc de type CARRE , 5V et la fréquence est modulée par le potentiomètre qui règle la vitesse de la broche .
Mes mesures permettent de dire que la fréquence mimima est environ 15 Hz jusqu' à environ 357 Hz.
Ci dessous la photo de la course du potentiomètre et les mesures de la basse et haute vitesse

482828
482829


482830


Maintenant je vais essayer d' envoyer ce signal à l' arduino pour un afficheur chrystal I2C

voilà pour les infos .
@ +
 
J

jeo

Apprenti
Bonjour à tous ,

J' ai réussi à faire le montage et le programme arduino pour afficher la fréquence en Hertz et la vitesse en Tr/min .
Merci à TOUS de m'avoir mis sur le chemin .

Pour résumer , j'ai utilisé un arduino UNO + un LCD 2 lignes basique avec un module I2C.
J'ai confectionner un code pour arduino avec des exemples combinés de plusieurs sites pour mesurer la fréquence et en déduire les tours par minutes.
En branchement finalement le signal du contrôleur de la broche PG sur la PIN8 de l' arduino et les masses, j' ai bien l' affichage des 2 valeurs.
Pour l'essai , j' avais branché l'arduino avec une pile 9V, plus tard je me reprendrai sur un 12V interne de mon coffret de commande.
Sur cette photo, mes premiers essais avec un montage à base de NE555 .
483940


CI dessous le code :
---------------------------------------------------------------------------------------------------------------------
#include <Wire.h>
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27,16,2);

int Htime; //integer for storing high time
int Ltime; //integer for storing low time
float Ttime; // integer for storing total time of a cycle
float x; //storing x for frequency
int frequency=round(x); // frequence arrondie au dessus , pas de virgule
float y; //storing x for trmin
int trmin=round(y); // trmin arrondie au dessus , pas de virgule

void setup()
{
pinMode(8,INPUT); // entree PIN 8 pour mesure
lcd.init(); // initialisation du LCD
lcd.backlight(); // allumage retro eclairage

//-------- Write characters on the display ------------------
// NOTE: Cursor Position: (CHAR, LINE) start at 0

delay(2000);
lcd.setCursor(0,0); //Start at character 0 on line 0
lcd.print("-----jeo------"); // ecriture texte de presentation 1ere ligne
delay(2000);
lcd.setCursor(0,1);
lcd.print("mon tachymetre"); // ecriture texte de presentation 2eme ligne
delay(4000);
lcd.clear(); // effacement du LCD
}
void loop()
{

Htime=pulseIn(8,HIGH); //read high time
Ltime=pulseIn(8,LOW); //read low time
Ttime = Htime+Ltime;

frequency=1000000/Ttime; //getting frequency with Ttime is in Micro seconds
lcd.setCursor(0,0); //Start at character 0 on line 0
lcd.print(frequency); //ecriture de la frequence
lcd.print(" Hz "); //ecriture de HZ
delay(500);

trmin=frequency*60; //calcul de la vitesse
lcd.setCursor(0,1); //Start at character 0 on line 1
lcd.print(trmin); //ecriture de la vitesse
lcd.print(" tr/min "); //ecriture de tr/min
delay(500);

}
---------------------------------------------------------------------------------------------------------------

En tout cas, bien heureux d' avoir réussi et de pouvoir faire partager cette info avec vous .
Certainement que les choses peuvent être améliorées, je ne suis pas un pro donc n' hésitez pas à corriger ou à améliorer ce post.

Merci Forum !!
 
Dernière édition:
Y

YvesP

Compagnon
Bonour

Une simple question
Est tu certain que tu obtiens une vitesse de rotation ?
Un PWM donne une fréquence de hachage qui va effectivement déterminer la vitesse du moteur en fonction de la durée de hachage. Mais est tu certain de pouvoir compter le RPM ou plus exactement y a 'il vraiment un rapport direct entre cette fréquence et une vitesse de rotation ?
D’où ma seconde question
Pourquoi ne pas utiliser un simple capteur de Hall qui te donnera tras facilement une lecture tres précise de te nombre de tours par minute

Merci pour vos réponses
Cdlt
Yves
 
J

jeo

Apprenti
bonsoir Yves,

Désolé pour le délai de réponse, les alertes du forum ne fonctionne pas .....

Donc, pour être sûr que la fréquence lue est un rapport direct avec la vitesse moteur , j'ai branché un oscilloscope comme tu peux le voir dans les photos dans les posts plus hauts.
J' avais bien une variation de fréquence et non pas un signal PWM .

Concernant le capteur a effet Hall, je n'ai pas voulu m' embêter a rajouter ce système sur ma broche pour diverses raisons :
- ajout et modification du support de broche pour mettre le capteur
- prendre en compte un réglage en cas de modification de hauteur de ma broche dans son support
- ajout d'un câblage en plus sur l' axe Z et Y

D'autant plus que le driver détient un signal de sortie numérique prévu pour cela et donc me parait plus logique a utiliser en terme de précision de mesure
Si je trouve un tachymètre , je vérifierai pourquoi pas mais les mesures me paraissent correctes.

Voilà tout ....

Merci pour ton intérêt
CDLT
Jérôme
 
Haut