Aller au contenu

Melvin

Membres
  • Compteur de contenus

    76
  • Inscrit(e) le

  • Dernière visite

Tout ce qui a été posté par Melvin

  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. Commande M400 si ça intéresse quelqu'un
  9. 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
  10. 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
  11. Je vous enverrais le résultat en vidéo
  12. 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
  13. 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
  14. 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-)
  15. 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
  16. Je suis désolé j'ai encore une question très con, après quelque recherche j'ai vu que la limite sur chaque pins était de 40mA et d'après ce que j'ai compris si je prends une pile + interrupteurs que je branche sur le Z-, la pin ne prendra pas plus de 40mA donc je n'ai rien à faire pour cela. Cependant sur ma sortie d'interrupteurs j'ai 2 fils (+ et -) et sur ma pin 3 fils (in, gnd, vcc) je suppose donc que je dois branche mon - sur le gnd et mon + sur vcc ou in et laisser une broche "vide". Je suis désolé c'est peut être des questions connes lorsqu'on s'y connait mais je préfère être sûr car j'ai peur de griller la carte (cependant il est peut être difficile de griller la carte avec les protections qu'elle intègre). Merci d'avance pour votre aide qui m'est très utilise
  17. Autre petite question pour mes tests, je voudrais envoyé un signal (pas avec ma pompe mais avec une pile ou autre genre pile + interrupteurs) et l'envoyer donc sur la pin Z- et essayé de récupérer l'état via la commande M226. Je n'y connais vraiment pas grand chose sur les caractéristiques de la carte donc je ne sais pas comment cela fonctionne, quel type de pile dois-je utiliser, quelles valeurs max sont accepté par les pins etc.. Merci d'avance pour vos réponses
  18. J’ai commandé des relais 5 volt pour tout mettre sur les pins de endstops comme ça je suis tranquille
  19. Mdr désolé mais je dois être aveugle, je vois bien que c'est D9 mais je ne sais pas où mettre le gnd, le vcc et le in
  20. Ah d'accord mais sur les fan (voir image) Je ne trouve pas le sens de cablage ni les valeur en sortie comme sur les endstops, c'est pour cela que j'ai voulu utiliser les endstops
  21. D'après ce que j'ai compris sur ce site : https://blog.siliconstraits.vn/relay-what-is-it-and-how-to-use-it/ malgré mon faible niveau d'anglais et que les relais 5V sont contrôlé par un signal 5V or le signal généré par la pin Z+ est de 5V donc la raison pour laquelle mon relais ne fonctionne pas c'est qu'il me faut un relais 5V et non 12V est-ce exact ?
  22. Après plusieurs test, cela ne fonctionne pas, j'ai essayé de faire ce montage: cependant cela n'a pas fonctionné. Je me suis donc posé comment savoir si nous devions avoir un relais 12V ou 5V car la première fois je ne me suis pas trop posé la question, je ne suis pas sûr on prend un relais 12V car au borne COM/No on mets du 12V ou alors il faut un relais 5V car la pin qui permet de commuté (Z+) envoie du 5V. Pour ma part j'ai en ma possession un relais 12V comme conseillé par @Janpolanton. Help me pleaaase ! xD
  23. J'avais finalement pas compris comment le brancher, je regarde
  24. Bonjour, Je reviens vers vous car j'ai fais les premiers test, j'ai voulu allumer une petite ampoule dans un premier temps, j'ai donc connecté mon relais à la carte arduino en mettant gnd -> gnd vcc -> 5V in -> D19 J'ai ensuite bien changé dans le firmware le : #define Z_MAX_PIN 19 en #define Z_MAX_PIN -1 j'ai téléversé, j'ai connecté la carte à l'ordi via le câble usb, j'ai alimenté la carte et lorsque j'allume la carte le voyant du relais est rouge donc je suppose ouvert. Lorsque dans pronterface je tape la commande "M42 P19 S1" le voyant vert s'allume (le rouge reste allumé) je suppose donc que le relais est fermé, cependant lorsque je connecte mes deux câbles sur le plot et le culot de la petite ampoule rien ne fonctionne. J'ai donc voulu vérifié avec un multimètre mais je n'ai aucun valeur 0 mV et 0 mA. De plus je ne peux pas rechanger l'état du relais, lorsque je fais "M42 P19 S0" rien ne se passe. J'ai besoin de vous ! Merci d'avance pour vos réponses. Melvin
  25. Bonjour, C'est bon j'ai réussi à répondre à mes deux questions précédentes. Merci quand même
×
×
  • Créer...