En cours Pilotage servo mode jog ou automatique

  • Auteur de la discussion vibram
  • Date de début
V

vibram

Compagnon
15 Mar 2014
5 307
FR-74
Salut,

Je vous présente un petit projet enfin fonctionnel.
je vous présente mon cas de figure, si cela peut vous servir ou vous donner des idées.
j'ai retrofité mon moteur des avances de fraiseuse manuelle avec un servo car c'était le plus simple pour moi.
Le but était d'ajouter un mode "jog" (ou manivelle) en plus des avances autos et avances rapides avec l'aide d'un MCU ESP32 (moins de 10€)

le code va légerement évoluer pour etre un peu apuré et mieux commenté.
Dans les grandes lignes:
Un interrupteur qui permet de choisir le mode Jog ou manuel
Un interrupteur marche/arret
Un interrupteur pour le sens de rotation
un bouton poussoir avance rapide
Un potentiometre pour régler la vitesse des avances
le code est compatible avce les manivelles chinoises qui comportent un codeur incrémental mais aussi un bouton permettant de choisir un multiple x1/ x10 / x100

Si mode jog:
Tourner la manivelle enverra le bon nombre de pulses et le sens changera en fonction bien sur.
le branchement du bouton x1 / x10 / x100 est facultatif, le x1 est par défaut
Les interrupteurs de direction et d'avance rapide n'ont aucun effet
Si mode manuel:
L'interrupteur dir permet de choisir le sens des avances
Le potentiometre permet de faire varier la vitesse
Le bouton momentané des avances rapides permet de passer en vitesse maximum
La manivelle n'a pas d'effet

Ce a quoi il faut faire attention si vous voulez vous servir du code:
la valeur du potentiometre dans la fonction map
Les variables suivantes qui sont à adapter en fonction des caractéristiques de votre driver ainsi que des vitesses min et max voulues


Et le code dans son intégralité (version 06/12/2023 13h53) qui va évoluer un peu


Quelques photos du résultat sur oscillo avant que je n arrive à mettre cela correctement sur le pc

IMG_20231206_132242.jpg


Ici le passage en mode avances rapides

IMG_20231206_132233.jpg
 
  • Réagir
Reactions: tyio et speedjf37
S

speedjf37

Compagnon
15 Oct 2009
3 326
FR-37700
Bonjour,

digitalWrite(pinPWM, HIGH); delay(minstep); digitalWrite(pinPWM, LOW); delay(minstep);

Eviter les "delay" cela bloque le reste du code !

Je n'ai pas bien compris le CDC du projet

J'ai aussi l'intention de réaliser un interface avec un encodeur et un écran oled (0.96 ou 1.3").
Pour l'encodeur:

pour un autre projet: j'utilise les lib: encoder et stepper

JF
 
V

vibram

Compagnon
15 Mar 2014
5 307
FR-74
Dans cette application, ce n'est pas gênant. C'est même préférable d'être sur que les steps soient correctement envoyés.
Quelle serait l alternative ?

Le CDC simplifié : piloter ton axe soit via le jog, soit avec les avances autos
Bonjour,



Eviter les "delay" cela bloque le reste du code !

Je n'ai pas bien compris le CDC du projet

J'ai aussi l'intention de réaliser un interface avec un encodeur et un écran oled (0.96 ou 1.3").
Pour l'encodeur:

pour un autre projet: j'utilise les lib: encoder et stepper

JF
 
V

vibram

Compagnon
15 Mar 2014
5 307
FR-74
Nouvelle version du code avec les signaux step/dir opposés pour etre compatible avec plus de drivers.
Attention aux pins de sortie, cela doit etre compatible avec votre board
Il me reste encore pas mal de commentaires à mettre

 

Sujets similaires

F
Réponses
6
Affichages
25 728
F
G
Réponses
123
Affichages
19 340
Arduino
gaston83
G
zygo4619
Réponses
34
Affichages
35 511
Arduino
zygo4619
zygo4619
V
Réponses
62
Affichages
5 491
V
J
Réponses
1
Affichages
1 518
Mach
pro-ms
P
M
Réponses
185
Affichages
25 113
wika58
V
Réponses
7
Affichages
2 013
V
V
Réponses
62
Affichages
39 447
Arduino
Dardar88
Dardar88
jpbbricole
Réponses
1
Affichages
1 854
pinou29