Aller au contenu

Filament ABS

Melvin

Membres
  • Compteur de contenus

    76
  • Inscrit(e) le

  • Dernière visite

Réputation sur la communauté

1 Neutre

À propos de Melvin

  • Rang
    3D Newbie

Visiteurs récents du profil

Le bloc de visiteurs récents est désactivé et il n’est pas visible pour les autres utilisateurs.

  1. Ah d’accord pardon je n’avais pas, si ça ne fonctionne pas avec ces modifications je ne sais pas comment t’aider, dis moi le message que tu as
  2. Je viens d'ouvrir ton fichier et soit j'ai un problème soit tu n'as pas ajouté les modifications... Modification Duration_t.h · Ligne 151 -> Ajout « s = uint16_t(this->second() % 60UL); » (Attention à bien remplacer le ; après les minutes par ,) · Lignes 156-157, 162-163, 167-168 //sprintf_P(buffer, PSTR("%ud %02u:%02u"), d, h % 24, m) ; sprintf_P(buffer, PSTR("%02u:%02u:%02u"), h % 24, m % 60, s);
  3. Je regarde ça demain si ça ne te dérange pas
  4. Bon j'ai trouvé une solution qui n'est certainement pas la meilleure façon de faire xD la voici : G28 XY G91 G0 F2500 G0 X-25 G4 M42 P19 S0 G4 P100 M226 P18 S-1 G4 P100 M42 P19 S255 G0 X-25 G4 M42 P19 S0 G4 P100 M226 P18 S-1 G4 P100 M42 P19 S255 G0 X-25 G4 M42 P19 S0 G4 P100 M226 P18 S-1 G4 P100 M42 P19 S255 Oui oui je cale des tempos partout xD En fait j'ai l'impression que la lecture des commandes sur la carte mémoire se fait plus rapidement que sur pronterface donc j'ai mon relais qui change d'état alors qu'il ne devrait pas, je ne sais pas si c'est possible cependant maintenant cela fonctionne ^^
  5. Non l'état ne se réinitialise pas donc lorsque je rajoute le m226 comme ceci : G28 XY G91 G0 F2500 G0 X-25 G4 M42 P19 S0 M226 P18 S-1 M42 P19 S255 M226 P18 S-1 G0 X-19 G4 M42 P19 S0 M226 P18 S-1 M42 P19 S255 M226 P18 S-1 j'ai bien la première distribution mais pas la seconde. Je ne comprends vraiment pas pourquoi cela fonctionne sous pronterface et non sous sd.. De plus je ne sais pas comment brancher le relais sur la pin de ventilo sachant que celle-ci ne contient qu'un + et un - alors que nous avons besoin de 12v, la masse et la commande.. Désolé Je continue à chercher une solution
  6. Description : Wait for all moves to finish. peut être qu'il n'attend pas la fin du mouvement le précédent mais de tous les mouvements d'où les beugs
  7. J'ai un problème les amis Lorsque j'ai fais mon programme que voici : G28 XY G91 G1 F2500 G1 X-25_____________________déplacement M400_______________________attente de fin de déplacement M42 P19 S0________________distribution M226 P18 S-1______________attente de changement d'état M42 P19 S255 _____________fin distribution G1 X-17.8__________________déplacement M400 M42 P19 S0 M226 P18 S-1 M42 P19 S255 G1 X-17.8 M400 M42 P19 S0 M226 P18 S-1 M42 P19 S255 G1 X-17.8 M400 M42 P19 S0 M226 P18 S-1 M42 P19 S255 et que je le lance via pronterface tout fonctionne très bien mais lorsque je le lance sous sd cela ne marche pas, j'ai voulu décortiquer le programme pour savoir où le programme ne fonctionner pas j'ai donc commencé par faire : G28 XY G91 G1 F2500 G1 X-25_____________________déplacement M400_______________________attente de fin de déplacement M42 P19 S0________________distribution M226 P18 S-1______________attente de changement d'état M42 P19 S255 _____________fin distribution et cela fonctionne, puis : G28 XY G91 G1 F2500 G1 X-25_____________________déplacement M400_______________________attente de fin de déplacement M42 P19 S0________________distribution M226 P18 S-1______________attente de changement d'état M42 P19 S255 _____________fin distribution G1 X-17.8__________________déplacement cela fonctionne aussi et enfin le beug arrive là G28 XY G91 G1 F2500 G1 X-25_____________________déplacement M400_______________________attente de fin de déplacement M42 P19 S0________________distribution M226 P18 S-1______________attente de changement d'état M42 P19 S255 _____________fin distribution G1 X-17.8 __________________déplacement M400 Le programme fait n'importe quoi, cela distribue en même temps que cela bouge, je n'arrive pas à comprendre d'où vient le problème sachant que cela fonctionne sous pronterface
  8. Voilà voilà tout fonctionne sauf un petit détail bien sûr sinon ce n'est pas drôle xD Voici mon programme : G28 XY G91 G1 F2500 G1 X-22 Y3 (Déplacement) M42 P19 S0 (Distribution) M226 P18 S-1 M42 P19 S255 G1 X-19.5 M42 P19 S0 M226 P18 S-1 M42 P19 S255 Le programme n'attend pas la fin du déplacement pour effectuer la distribution Je vais chercher s'il n'y a pas une commande pour voir si les moteurs sont bien en arrêt
  9. Exact De plus la commande M266 se mets comme ça : M266 P(pin) S(state) Si state = 0 on attend que P passe à 1 Si state = 1 on attend que P passe à 0 Si stage = -1 on attend que P change d’état
  10. Pour la commande M226 tu m’as dis qu’il était intéressant de garder la pin comme tel afin de bénéficier de son pullup, j’ai réussi à régler le problème donc tout est ok ! J’attend mes relais 5 volt et je toucherais au but ! Effectivement vous êtes rentré dans mon crâne Comme je débute là dedans (je suis étudiant alternant) je découvre pas mal de truc, je me pose des questions et je fais beaucoup de recherche donc je pose des questions bêtes auquels je répond seul après des recherches « poussées ». Merci pour ta réponse
  11. Bonjour, Vous souhaitez utiliser la commande M42 ou M226 mais ça ne fonctionne pas ? C'est normal, marlin bloque certaines pins pour ces fonctions pour vérifier si les pins sont bloquées ou non pour ces fonctions, il vous suffit de vous rendre dans le fichier "pins.h" et d'aller à la ligne où se trouve "#DEFINE SENSITIVE PINS" vous trouverez la liste des pins bloquées pour ces fonctions, il vous suffit donc de mettre en commentaire celle que vous voulez utiliser pour votre commande. Pour mieux comprendre le chemin allons dans le fichier "marlin_main.cpp", allons voir pour la commande M226 par exemple : /** * M226: Wait until the specified pin reaches the state required (M226 P<pin> S<state>) */ inline void gcode_M226() { if (parser.seen('P')) { const int pin_number = parser.value_int(), pin_state = parser.intval('S', -1); // required pin state - default is inverted if (WITHIN(pin_state, -1, 1) && pin_number > -1 && !pin_is_protected(pin_number)) { int target = LOW; stepper.synchronize(); pinMode(pin_number, INPUT); switch (pin_state) { case 1: target = HIGH; break; case 0: target = LOW; break; case -1: target = !digitalRead(pin_number); break; } while (digitalRead(pin_number) != target) idle(); } // pin_state -1 0 1 && pin_number > -1 } // parser.seen('P') } Ici en gras, nous pouvons voir que l'on cherche avant de lancer cette commande de voir si la pin utilisé n'est pas protégé. Dans le même fichier nous avons : /** * Sensitive pin test for M42, M226 */ static bool pin_is_protected(const int8_t pin) { static const int8_t sensitive_pins[] PROGMEM = SENSITIVE_PINS; for (uint8_t i = 0; i < COUNT(sensitive_pins); i++) if (pin == (int8_t)pgm_read_byte(&sensitive_pins)) return true; return false; } Nous pouvons donc voir que nous avos des protected pins aussi appelé sensitive_pins dans le fichier pins.h qui sont "interdite" pour ces fonctions. Désolé si ce n'est pas clair mais je commence depuis peu à bidouiller au marlin donc je ne peux détailler les morceaux de programme mais la solution fonctionne test approuvé ! Melvin
  12. C'est encore moi mais cette fois-ci je compte vous apprendre quelque chose (pour une fois on va échanger les rôles xD). Le firmware marlin bloque la commande M42 et M226 pour certaine pin dont les pins des endstops, si vous souhaitez les utiliser quand même il suffit d'après ce que j'ai compris, de se rendre dans le fichier "pins.h", de se rendre à la ligne où vous trouvez "#DEFINE SENSITIVE_PINS et de mettre en commentaire la pin que vous voulez utiliser (pour ma part Z+ et Z-)
  13. Je suis désolé je viens de me rendre compte que ma question était très conne, au lieu de me prendre la tête avec pile etc.. j'ai simplement brancher un endstop pour simuler le changement d'état
×