Advertisement
MagicWinnie

Untitled

Dec 27th, 2018
179
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. //PINS
  2. #define KV 9
  3. #define EN 8
  4. #define X_DIR 5
  5. #define X_STP 2
  6. //LENGTH OF ARRAY
  7. const int len=6;
  8. //OTHER VARS AND ARRAYS
  9. int j,m,p,h,q;
  10. int points[len]={0,10,35,5,75,24};
  11. int steps[len];
  12. void setup() {
  13.   //PART OF DEBUGING
  14.   Serial.begin(9600);
  15.   //INIT
  16.   pinMode(EN, OUTPUT);
  17.   pinMode(X_DIR, OUTPUT);
  18.   pinMode(X_STP, OUTPUT);
  19.   pinMode(KV,INPUT_PULLUP);
  20.   digitalWrite(EN, LOW);
  21.   for (j=0;j<len;j++){
  22.     steps[j]=points[j]*5;
  23.   }
  24.   //CALIBRATING
  25.   cal();
  26.   digitalWrite(X_DIR, 1);
  27. }
  28. void loop() {
  29.   xMove();
  30.  
  31. }
  32. void xMove(){
  33.   for (j=1;j<len;j++){
  34.     p=steps[j]-steps[j-1];
  35.     Serial.println(p);
  36.     if (p<0){
  37.       digitalWrite(X_DIR, !digitalRead(X_DIR));
  38.       p=abs(p);
  39.     }
  40.     for (q=0;q<p;q++) {
  41.       digitalWrite(X_STP, LOW);
  42.       delayMicroseconds(10);
  43.       digitalWrite(X_STP, HIGH);
  44.       delayMicroseconds(3000);
  45.     }
  46.    digitalWrite(X_DIR, 1);
  47.     delay(2000);
  48.   }
  49. }
  50. void cal(){
  51.   int a;
  52.   digitalWrite(X_DIR, 0);
  53.   while(true){
  54.     digitalWrite(X_STP, LOW);
  55.     delayMicroseconds(10);
  56.     digitalWrite(X_STP, HIGH);
  57.     delayMicroseconds(2000);
  58.     a=digitalRead(KV);
  59.     Serial.println(a);
  60.     if (a==0){
  61.       break;
  62.     }
  63.   }
  64.   delay(100);
  65. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement