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



Ici le passage en mode avances rapides

 
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
 

Sujets similaires

F
Réponses
6
Affichages
25 715
fraiddy
F
G
Réponses
123
Affichages
19 319
gaston83
G
Réponses
34
Affichages
35 504
zygo4619
V
Réponses
62
Affichages
5 462
vibram
V
J
Réponses
1
Affichages
1 499
pro-ms
P
Réponses
3
Affichages
13 924
01power
M
Réponses
185
Affichages
25 065
wika58
V
Réponses
7
Affichages
2 005
vibram
V
V
Réponses
62
Affichages
39 426
Dardar88
D
Réponses
9
Affichages
3 076
David80
D
Réponses
4
Affichages
4 316
taratata
Réponses
1
Affichages
1 846
pinou29