
aide programation CNC
#121
Posté 07 février 2017 - 01:04
Pour la section de câble au contraire plus le diamètre est gros mieux c'est pour les longue distance, il y a moins de chute de tension. Tu as mesuré quelle tension tu as sur l'entrée de l'arduino?
#122
Posté 07 février 2017 - 01:28
#123
Posté 08 février 2017 - 07:24
Comment as tu câblé ton microrupteur ?
Tu as la masse le 5V et le pin de l'arduino chacun relié sur les pattes du microrupteur?
Sinon c'est peut être que ton programme met trop de temps à vérifier l'état de tes boutons. Dans ce cas là il faut optimiser un peu ton code, ou tricher en mettant à plusieurs endroit les vérification d'état du bouton ou tout simplement mettre tes boutons sur interruption. =)
Si mon commentaire vous a plus laissez nous un avis !
Nouveau sur Robot Maker ?
Jetez un oeil aux blogs, aux tutoriels, aux ouvrages, au robotscope aux articles, à la boutique et aux différents services disponible !
En attendant qu'une bibliothèque de fichiers 3D soit mise en place n'hésitez pas à demander si vous avez besoin du fichier 3D d'un des produits de la boutique... On l'a peut être !
Si vous souhaitez un robot pilotable par internet n'hésitez pas à visiter www.vigibot.com et à lire le sous forum dédié à vigibot!
#124
Posté 08 février 2017 - 08:26
bonjour, concernant le branchement: la fin de course est branchée en NF, un fil vas au gnd de l'arduino et l'autre sur un pin de l'arduino. concernant le code le voici:
EEPROM.get(1,position_actuelle); // lire position_actuelle dans l'EEPROM if (valeur>position_actuelle && valeur<valeur_maxi) // si valeur > position_actuelle { Deplacement = valeur - position_actuelle; // deplacement = valeur - position_actuelle NbPas = Deplacement / PAS; // NbPas = deplacement / PAS i=0; // PAS = 0.149 do // Tourner de NbPas dans le sens horaire {if(digitalRead(FDC2)== LOW) stepper.step(1); i++; }while(i<NbPas); //FDC1 = fin de course côté 6m }
bonne journee
#125
Posté 08 février 2017 - 09:42
aussi concernant la librairie accelstepper, j'ai effectuer quelques modif a mon code mais je ne suis pas sur d'avoir bien tous compris, je vous met les morceau de code que j'ai modifier, pouvez vous jeter un œil s'il vous plait? je ne l'ai pas encore essayer car la machine se situe maintenant dans mon entrepot a plusieurs km de chez moi et je n'y ai pas internet donc je prefere deja essayer d'avoir le moins d'erreur. merci a tous.
donc deja si j'ai bien compris, comme j'ai fait le code lors du deplacement du moteur, le moteur vas demarer a une vitesse de 50pas/sec et augmenter de 50pas/sec jusqu'à atteindre la vitesse max de 400pas/sec c'est bien ca? je vous met juste les extrais modifier, si il vous faut l'ensemble dite le moi et je le mettrai.
partie avant la fonction setup:
#include <AccelStepper.h> #include <MultiStepper.h> AccelStepper stepper(1, 12,13);
partie setup:
stepper.setMaxSpeed(400); stepper.setAcceleration(50);
partie loop deplacement :
{ // positionnement de la scie mobile EEPROM.get(1,position_actuelle); // lire position_actuelle dans l'EEPROM if (valeur>position_actuelle && valeur<valeur_maxi) // si valeur > position_actuelle { Deplacement = valeur - position_actuelle; // deplacement = valeur - position_actuelle NbPas = Deplacement / PAS; // NbPas = deplacement / PAS i=0; // PAS = 0.149 do // Tourner de NbPas dans le sens horaire {if(digitalRead(FDC2)== LOW) stepper.move(1); i++; }while(i<NbPas); //FDC1 = fin de course côté 6m } if (valeur<position_actuelle && valeur>decalage_depart ) // si valeur < position_actuelle { Deplacement = position_actuelle - valeur; // deplacement = position_actuelle – valeur NbPas = Deplacement / PAS; // NbPas = deplacement / PAS i=0; // PAS = 0,149 do // Tourner de NbPas dans le sens antihoraire {if(digitalRead(FDC1)== LOW) stepper.move(-1); i++; }while( i<NbPas); //FDC1 = fin de course côté 30cm } if (valeur>decalage_depart && valeur<valeur_maxi) EEPROM.put (1,valeur); // Ecrire valeur dans l'EEPROM }
partie loop ettalonage:
{ do // Tourner de NbPas dans le sens antihoraire { longueur_etalonnage=(3199*PAS)+ decalage_depart; stepper.move(-1); i++; }while(digitalRead(FDC1)== LOW) ; //retour a 0 du chariot delay(3000); stepper.moveTo(3199); // avance du chariot de 1m EEPROM.put (1,(longueur_etalonnage)); //enregistrement position dans eeprom delay(3000); lcd.clear(); lcd.setCursor(0,0); lcd.print("etalonnage"); lcd.setCursor(0,1); lcd.print("termine"); delay(3000); lcd.clear(); }
merci d'avance. bonne journée
1 utilisateur(s) li(sen)t ce sujet
0 members, 1 guests, 0 anonymous users