En cours Pilotage servo mode jog ou automatique

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

vibram

Compagnon
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
 
S

speedjf37

Compagnon
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
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
 

Sujets similaires

G
Réponses
0
Affichages
613
gaston83
G
F
Réponses
6
Affichages
25 682
fraiddy
F
Moi33
Réponses
3
Affichages
47 994
speedjf37
S
G
Réponses
123
Affichages
19 248
gaston83
G
zygo4619
Réponses
34
Affichages
35 472
zygo4619
zygo4619
V
Réponses
62
Affichages
5 397
vibram
V
U
Réponses
85
Affichages
7 277
Hubert86
H
J
Réponses
1
Affichages
1 486
pro-ms
P
01power
Réponses
3
Affichages
13 870
01power
01power
M
Réponses
185
Affichages
24 915
wika58
wika58
V
Réponses
7
Affichages
1 990
vibram
V
V
Réponses
62
Affichages
39 383
Dardar88
Dardar88
D
Réponses
9
Affichages
3 064
David80
D
taratata
Réponses
4
Affichages
4 267
taratata
taratata
Haut