Advertisement
Dominiquehusson57880

Table Croisée XYZ-FDC's NPN - 3 vitesses

Jan 31st, 2023
1,230
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Arduino 10.49 KB | Source Code | 0 0
  1. // XYZ en Poussoirs a 3 Vitesses et FDCs 31-01-2023
  2. // Programme pour Fraiseuse DIY 3 axes ( X,Y,Z )
  3. // Utilisation de Boutons Poussoirs, 2 par axe , 3 Vitesses differentes D + G .
  4. // Arduino ATMega2560
  5. // Moteurs pas à pas STEPPERONLINE NEMA23 3.0 Nm ( 2X -> X + Y ) 1600 Pas/Rev.
  6. // Drivers X et Y STEPPERONLINE DM542T .
  7. // Moteur pas à pas STEPPERONLINE NEMA34 12.0 Nm ( 1X -> Z ) 1600 Pas/Rev.
  8. // Driver Z HBS86H.
  9. // Alimentations 2 X 36 V CC 16.5 Amperes.
  10. // Fins de Course NPN LJ12A3-4-Z-BX ( 6 Pieces )
  11. // Projet réalisé par Dominique Husson avec colaboration de François Declercq, que je remercie pour tout ses bons conseils,
  12. // sa patience et son aide precieuse.
  13. //
  14. //
  15. // 0 -> RX 0
  16. // 1 -> TX 1
  17. // D2 a D13 PWM ( Idéal FDC's )
  18. // D14 a D19 3X RX-TX
  19. // D20 -> SDA ( I2C )
  20. // D21 -> SCL ( I2C )
  21. #include <Stepper.h>
  22.  
  23. Stepper mon_moteurX(1600,24,25);
  24. Stepper mon_moteurX2(1600,24,25);
  25. Stepper mon_moteurX3(1600,24,25);
  26. Stepper mon_moteurY(1600,22,23);
  27. Stepper mon_moteurY2(1600,22,23);
  28. Stepper mon_moteurY3(1600,22,23);
  29. Stepper mon_moteurZ(1600,26,27);
  30. Stepper mon_moteurZ2(1600,26,27);
  31. Stepper mon_moteurZ3(1600,26,27);
  32. int valueMotorXSpeed = 1000; // Vitesse Full.
  33. int valueMotorX2Speed = 3; //  1 Impulsion Bouton Poussoir -> Precision 0.005mm sur DRO.
  34. int valueMotorX3Speed = 70; // Vitesse Intermediaire mid.
  35. int valueMotorYSpeed = 1000; // Vitesse Full.
  36. int valueMotorY2Speed = 3; //  1 Impulsion Bouton Poussoir -> Precision 0.005mm sur DRO.
  37. int valueMotorY3Speed = 70; // Vitesse Intermediaire mid.
  38. int valueMotorZSpeed = 1000; // Vitesse Full.
  39. int valueMotorZ2Speed = 3; //  1 Impulsion Bouton Poussoir -> Precision 0.005mm sur DRO.
  40. int valueMotorZ3Speed = 70; // Vitesse Intermediaire mid.
  41. int sensorValue1 = (2); // FDC X1 ( Fin de Course NPN LJ12A3-4-Z-BX.
  42. int sensorValue2 = (3); // FDC X2 ( Fin de Course NPN LJ12A3-4-Z-BX.
  43. int sensorValue3 = (4); // FDC Y1 ( Fin de Course NPN LJ12A3-4-Z-BX.
  44. int sensorValue4 = (5); // FDC Y2 ( Fin de Course NPN LJ12A3-4-Z-BX.
  45. int sensorValue5 = (6); // FDC Z1 ( Fin de Course NPN LJ12A3-4-Z-BX.
  46. int sensorValue6 = (7); // FDC Z2 ( Fin de Course NPN LJ12A3-4-Z-BX.
  47. int dirPinY   = 22;
  48. int stepPinY  = 23;
  49. int dirPinX   = 24;
  50. int stepPinX  = 25;
  51. int dirPinZ   = 26;
  52. int stepPinZ  = 27;
  53. int bouton1X  = 28;
  54. int bouton2X  = 29;
  55. int bouton1Y  = 30;
  56. int bouton2Y  = 31;
  57. int bouton1Z  = 32;
  58. int bouton2Z  = 33;
  59. int boutonXYZlow = 34;
  60. int boutonXYZmid = 35;
  61. int boutonXYZhigh = 36;
  62.  
  63. void setup()
  64. {
  65.   Serial.begin(9600);
  66.  
  67.    bouton1X = digitalRead(28);
  68.    bouton2X = digitalRead(29);  
  69.    bouton1Y = digitalRead(30);
  70.    bouton2Y = digitalRead(31);  
  71.    bouton1Z = digitalRead(32);
  72.    bouton2Z = digitalRead(33);
  73.    boutonXYZlow = digitalRead(34);
  74.    boutonXYZmid = digitalRead(35);
  75.    boutonXYZhigh = digitalRead(36);
  76.  
  77.  
  78.   sensorValue1 = digitalRead(2);
  79.   sensorValue2 = digitalRead(3);
  80.   sensorValue3 = digitalRead(4);
  81.   sensorValue4 = digitalRead(5);
  82.   sensorValue5 = digitalRead(6);
  83.   sensorValue6 = digitalRead(7);
  84.   boutonXYZlow = digitalRead(34);
  85.   boutonXYZmid = digitalRead(35);
  86.   boutonXYZhigh = digitalRead(36);
  87.  
  88.   mon_moteurX.setSpeed(1000);
  89.   mon_moteurX2.setSpeed(3);
  90.   mon_moteurX3.setSpeed(70);
  91.   mon_moteurY.setSpeed(1000);
  92.   mon_moteurY2.setSpeed(3);
  93.   mon_moteurY3.setSpeed(70);
  94.   mon_moteurZ.setSpeed(1000);
  95.   mon_moteurZ2.setSpeed(3);
  96.   mon_moteurZ3.setSpeed(70);
  97.    
  98.   pinMode(2, INPUT_PULLUP ); // FDC X1 ( Fin de Course NPN LJ12A3-4-Z-BX )
  99.   pinMode(3, INPUT_PULLUP ); // FDC X2 ( Fin de Course NPN LJ12A3-4-Z-BX )
  100.   pinMode(4, INPUT_PULLUP ); // FDC Y1 ( Fin de Course NPN LJ12A3-4-Z-BX )
  101.   pinMode(5, INPUT_PULLUP ); // FDC Y2 ( Fin de Course NPN LJ12A3-4-Z-BX )
  102.   pinMode(6, INPUT_PULLUP ); // FDC Z1 ( Fin de Course NPN LJ12A3-4-Z-BX )
  103.   pinMode(7, INPUT_PULLUP ); // FDC Z2 ( Fin de Course NPN LJ12A3-4-Z-BX )
  104.   pinMode(28,INPUT_PULLUP); // 28 = Bouton1X
  105.   pinMode(29,INPUT_PULLUP); // 29 = Bouton2X
  106.   pinMode(30,INPUT_PULLUP); // 30 = Bouton1Y
  107.   pinMode(31,INPUT_PULLUP); // 31 = Bouton2Y
  108.   pinMode(32,INPUT_PULLUP); // 32 = Bouton1Z
  109.   pinMode(33,INPUT_PULLUP); // 33 = Bouton2Z
  110.   pinMode(34,INPUT_PULLUP); // 34 = boutonXYZlow
  111.   pinMode(35,INPUT_PULLUP); // 35 = boutonXYZmid
  112.   pinMode(36,INPUT_PULLUP); // 36 = boutonXYZhigh
  113.   pinMode(22,OUTPUT);       // 22 = DIR Y
  114.   pinMode(23,OUTPUT);       // 23 = STEP Y
  115.   pinMode(24,OUTPUT);       // 24 = DIR X
  116.   pinMode(25,OUTPUT);       // 25 = STEP X
  117.   pinMode(26,OUTPUT);       // 26 = DIR Z
  118.   pinMode(27,OUTPUT);       // 27 = STEP Z
  119.   digitalWrite(22, LOW);
  120.   digitalWrite(23, LOW);
  121.   digitalWrite(24, LOW);
  122.   digitalWrite(25, LOW);
  123.   digitalWrite(26, LOW);
  124.   digitalWrite(27, LOW);
  125.  
  126.  
  127. }
  128.  
  129. void loop()
  130. {
  131.   sensorValue1 = digitalRead(2);
  132.   sensorValue2 = digitalRead(3);
  133.   sensorValue3 = digitalRead(4);
  134.   sensorValue4 = digitalRead(5);
  135.   sensorValue5 = digitalRead(6);
  136.   sensorValue6 = digitalRead(7);
  137.   boutonXYZlow = digitalRead(34);
  138.   boutonXYZmid = digitalRead(35);
  139.   boutonXYZhigh = digitalRead(36);
  140.   bouton1X = digitalRead(28);
  141.   bouton2X = digitalRead(29);
  142.   bouton1Y = digitalRead(30);
  143.   bouton2Y = digitalRead(31);  
  144.   bouton1Z = digitalRead(32);
  145.   bouton2Z = digitalRead(33);
  146.  
  147.   if ((digitalRead(28) == LOW) & (digitalRead(2) == LOW) & (digitalRead(34) == LOW)) {
  148.        digitalWrite(dirPinX, LOW);
  149.        mon_moteurX2.step(1);
  150.   }
  151.   else if ((digitalRead(28) == LOW) & (digitalRead(2) == HIGH) & (digitalRead(34) == LOW)) {
  152.             X2Stop();  
  153.   }
  154.   if ((digitalRead(29) == LOW) & (digitalRead(3) == LOW) & (digitalRead(34) == LOW)) {
  155.        digitalWrite(dirPinX, HIGH);
  156.        mon_moteurX2.step(-1);
  157.   }
  158.   else if ((digitalRead(29) == LOW) & (digitalRead(3) == HIGH)& (digitalRead(34) == LOW)) {
  159.             X2Stop();  
  160.   }
  161.   if ((digitalRead(28) == LOW) & (digitalRead(2) == LOW) & (digitalRead(35) == LOW)) {
  162.        digitalWrite(dirPinX, LOW);
  163.        mon_moteurX3.step(10);
  164.   }
  165.   else if ((digitalRead(28) == LOW) & (digitalRead(2) == HIGH) & (digitalRead(35) == LOW)) {
  166.             X3Stop();  
  167.   }
  168.  
  169.   if ((digitalRead(29) == LOW) & (digitalRead(3) == LOW) & (digitalRead(35) == LOW)) {
  170.        digitalWrite(dirPinX, HIGH);
  171.        mon_moteurX3.step(-10);
  172.   }
  173.   else if ((digitalRead(29) == LOW) & (digitalRead(3) == HIGH)& (digitalRead(35) == LOW)) {
  174.             X3Stop();  
  175.   }
  176.   if ((digitalRead(28) == LOW) & (digitalRead(2) == LOW) & (digitalRead(36) == LOW)) {
  177.        digitalWrite(dirPinX, LOW);
  178.        mon_moteurX.step(250);
  179.   }
  180.   else if ((digitalRead(28) == LOW) & (digitalRead(2) == HIGH) & (digitalRead(36) == LOW)) {
  181.             XStop();  
  182.   }
  183.  
  184.   if ((digitalRead(29) == LOW) & (digitalRead(3) == LOW) & (digitalRead(36) == LOW)) {
  185.        digitalWrite(dirPinX, HIGH);
  186.        mon_moteurX.step(-250);
  187.   }
  188.   else if ((digitalRead(29) == LOW) & (digitalRead(3) == HIGH)& (digitalRead(36) == LOW)) {
  189.             XStop();  
  190.   }
  191.  
  192.   if ((digitalRead(30) == LOW) & (digitalRead(4) == LOW) & (digitalRead(34) == LOW)) {
  193.        digitalWrite(dirPinY, LOW);
  194.        mon_moteurY2.step(1);
  195.   }
  196.   else if ((digitalRead(30) == LOW) & (digitalRead(4) == HIGH) & (digitalRead(34) == LOW)) {
  197.             Y2Stop();  
  198.   }
  199.  
  200.   if ((digitalRead(31) == LOW) & (digitalRead(5) == LOW) & (digitalRead(34) == LOW)) {
  201.        digitalWrite(dirPinY, HIGH);
  202.        mon_moteurY2.step(-1);
  203.   }
  204.   else if ((digitalRead(31) == LOW) & (digitalRead(5) == HIGH) & (digitalRead(34) == LOW)) {
  205.             Y2Stop();  
  206.   }
  207.  
  208.   if ((digitalRead(30) == LOW) & (digitalRead(4) == LOW) & (digitalRead(35) == LOW)) {
  209.        digitalWrite(dirPinY, LOW);
  210.        mon_moteurY3.step(10);
  211.   }
  212.   else if ((digitalRead(30) == LOW) & (digitalRead(4) == HIGH) & (digitalRead(35) == LOW)) {
  213.             Y3Stop();  
  214.   }
  215.  
  216.   if ((digitalRead(31) == LOW) & (digitalRead(5) == LOW) & (digitalRead(35) == LOW)) {
  217.        digitalWrite(dirPinY, HIGH);
  218.        mon_moteurY3.step(-10);
  219.   }
  220.   else if ((digitalRead(31) == LOW) & (digitalRead(5) == HIGH) & (digitalRead(35) == LOW)) {
  221.             Y3Stop();  
  222.   }
  223.  
  224.   if ((digitalRead(30) == LOW) & (digitalRead(4) == LOW) & (digitalRead(36) == LOW)) {
  225.        digitalWrite(dirPinY, LOW);
  226.        mon_moteurY.step(250);
  227.   }
  228.   else if ((digitalRead(30) == LOW) & (digitalRead(4) == HIGH) & (digitalRead(36) == LOW)) {
  229.             YStop();  
  230.   }
  231.  
  232.   if ((digitalRead(31) == LOW) & (digitalRead(5) == LOW) & (digitalRead(36) == LOW)) {
  233.        digitalWrite(dirPinY, HIGH);
  234.        mon_moteurY.step(-250);
  235.   }
  236.   else if ((digitalRead(31) == LOW) & (digitalRead(5) == HIGH) & (digitalRead(36) == LOW)) {
  237.             YStop();  
  238.   }
  239.  
  240.   if ((digitalRead(32) == LOW) & (digitalRead(6) == LOW) & (digitalRead(34) == LOW)) {
  241.        digitalWrite(dirPinZ, LOW);
  242.        mon_moteurZ2.step(1);
  243.   }
  244.   else if ((digitalRead(32) == LOW) & (digitalRead(6) == HIGH) & (digitalRead(34) == LOW)) {
  245.             Z2Stop();  
  246.   }
  247.  
  248.   if ((digitalRead(33) == LOW) & (digitalRead(7) == LOW) & (digitalRead(34) == LOW)) {
  249.        digitalWrite(dirPinZ, HIGH);
  250.        mon_moteurZ2.step(-1);
  251.   }
  252.   else if ((digitalRead(33) == LOW) & (digitalRead(7) == HIGH) & (digitalRead(34) == LOW)) {
  253.             Z2Stop();  
  254.   }
  255.  
  256.   if ((digitalRead(32) == LOW) & (digitalRead(6) == LOW) & (digitalRead(35) == LOW)) {
  257.        digitalWrite(dirPinZ, LOW);
  258.        mon_moteurZ3.step(10);
  259.   }
  260.   else if ((digitalRead(32) == LOW) & (digitalRead(6) == HIGH) & (digitalRead(35) == LOW)) {
  261.             Z3Stop();  
  262.   }
  263.  
  264.   if ((digitalRead(33) == LOW) & (digitalRead(7) == LOW) & (digitalRead(35) == LOW)) {
  265.        digitalWrite(dirPinZ, HIGH);
  266.        mon_moteurZ3.step(-10);
  267.   }
  268.   else if ((digitalRead(33) == LOW) & (digitalRead(7) == HIGH) & (digitalRead(35) == LOW)) {
  269.             Z3Stop();  
  270.   }
  271.  
  272.   if ((digitalRead(32) == LOW) & (digitalRead(6) == LOW) & (digitalRead(36) == LOW)) {
  273.        digitalWrite(dirPinZ, LOW);
  274.        mon_moteurZ.step(250);
  275.   }
  276.   else if ((digitalRead(32) == LOW) & (digitalRead(6) == HIGH) & (digitalRead(36) == LOW)) {
  277.             ZStop();  
  278.   }
  279.  
  280.   if ((digitalRead(33) == LOW) & (digitalRead(7) == LOW) & (digitalRead(36) == LOW)) {
  281.        digitalWrite(dirPinZ, HIGH);
  282.        mon_moteurZ.step(-250);
  283.   }
  284.   else if ((digitalRead(33) == LOW) & (digitalRead(7) == HIGH) & (digitalRead(36) == LOW)) {
  285.             ZStop();  
  286.   }
  287.   }
  288.  
  289.    void XStop (void)
  290.   {  
  291.   }
  292.    void X2Stop (void)
  293.   {  
  294.   }
  295.    void X3Stop (void)
  296.   {  
  297.   }
  298.  
  299.    void YStop (void)
  300.  {  
  301.  }
  302.    void Y2Stop (void)
  303.  {  
  304.  }
  305.    void Y3Stop (void)
  306.  {  
  307.  }
  308.    void ZStop (void)
  309.  {  
  310.  }
  311.    void Z2Stop (void)
  312.  {  
  313.  }
  314.    void Z3Stop (void)
  315.  {  
  316.  }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement