User Tools

Site Tools


bdev:filamentextrduer_code

Warning: Undefined array key -1 in /var/www/html/dokuwiki/inc/html.php on line 1458

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
bdev:filamentextrduer_code [2022/11/28 22:30]
richard
bdev:filamentextrduer_code [2022/12/01 03:02] (current)
richard
Line 7: Line 7:
 #define motorInterfaceType 1 #define motorInterfaceType 1
  
 +
 +struct flowData{
 +   int bfl;
 +   int dir;
 +};
  
 //Define the aggressive and conservative Tuning Parameters //Define the aggressive and conservative Tuning Parameters
Line 21: Line 26:
 int directionC = 0; int directionC = 0;
 int directionD = 0; int directionD = 0;
-int directionE = 0; 
  
 int ton = 0; int ton = 0;
Line 29: Line 33:
 int buttoncstate = 0; int buttoncstate = 0;
 int buttondstate = 0; int buttondstate = 0;
-int buttonestate = 0;+
  
 int afl = 0; int afl = 0;
Line 35: Line 39:
 int cfl = 0; int cfl = 0;
 int dfl = 0; int dfl = 0;
-int efl = 0; 
  
 String command; String command;
Line 46: Line 49:
  
 #define THERMISTOR_PINA A0 #define THERMISTOR_PINA A0
-#define TEMPCONTROLA 10+#define TEMPCONTROLA 13 
 +#define PUMP 12
  
- +int PS[] = {26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 454749};
-int PS[] = {26, 28, 30, 32, 34, 36, 40, 42, 44, 46, 48, 505224};+
  
 // Define some steppers and the pins the will use // Define some steppers and the pins the will use
Line 64: Line 67:
 const int stepsPinC = PS[8]; const int stepsPinC = PS[8];
  
-const int enablePinD = PS[10]; +const int enablePinD = PS[9]; 
-const int directionPinD = PS[11]; +const int directionPinD = PS[10]; 
-const int stepsPinD = PS[12];+const int stepsPinD = PS[11];
  
-const int enablePinE PS[14]+//const int speedpotA A1
-const int directionPinE PS[16]+//const int gobuttonA A2
-const int stepsPinE PS[18];+//const int stopbuttonA A3;
  
-const int speedpotA = A1+const int speedpotA = A4
-const int gobuttonA = A2+const int gobuttonA = A5
-const int stopbuttonA = A3;+const int stopbuttonA = A6;
 const int stepspinA = LOW; const int stepspinA = LOW;
  
-const int speedpotB = A4+const int speedpotB = A7
-const int gobuttonB = A5+const int gobuttonB = A8
-const int stopbuttonB = A6;+const int stopbuttonB = A9;
 const int stepspinB = LOW; const int stepspinB = LOW;
  
-const int speedpotC = A7+const int speedpotC = A10
-const int gobuttonC = A8+const int gobuttonC = A11
-const int stopbuttonC = A9;+const int stopbuttonC = A12;
 const int stepspinC = LOW; const int stepspinC = LOW;
  
-const int speedpotD = A10+const int speedpotD = A13
-const int gobuttonD = A11+const int gobuttonD = A14
-const int stopbuttonD = A12;+const int stopbuttonD = A15;
 const int stepspinD = LOW; const int stepspinD = LOW;
- 
-const int speedpotE = A13; 
-const int gobuttonE = A14; 
-const int stopbuttonE = A15; 
-const int stepspinE = LOW; 
- 
  
 AccelStepper stepperA = AccelStepper(motorInterfaceType, stepsPinA, directionPinA); AccelStepper stepperA = AccelStepper(motorInterfaceType, stepsPinA, directionPinA);
 AccelStepper stepperB = AccelStepper(motorInterfaceType, stepsPinB, directionPinB); AccelStepper stepperB = AccelStepper(motorInterfaceType, stepsPinB, directionPinB);
 AccelStepper stepperC = AccelStepper(motorInterfaceType, stepsPinC, directionPinC); AccelStepper stepperC = AccelStepper(motorInterfaceType, stepsPinC, directionPinC);
- 
 AccelStepper stepperD = AccelStepper(motorInterfaceType, stepsPinD, directionPinD); AccelStepper stepperD = AccelStepper(motorInterfaceType, stepsPinD, directionPinD);
-AccelStepper stepperE = AccelStepper(motorInterfaceType, stepsPinE, directionPinE); 
  
  
Line 121: Line 116:
   pinMode(directionPinD, OUTPUT);   pinMode(directionPinD, OUTPUT);
   pinMode(enablePinD, OUTPUT);   pinMode(enablePinD, OUTPUT);
-  pinMode(stepsPinE, OUTPUT); 
-  pinMode(directionPinE, OUTPUT); 
-  pinMode(enablePinE, OUTPUT); 
- 
- 
- 
   pinMode(TEMPCONTROLA, OUTPUT);   pinMode(TEMPCONTROLA, OUTPUT);
- +  pinMode(PUMP, OUTPUT);
- +
- +
   digitalWrite(enablePinA,HIGH);   digitalWrite(enablePinA,HIGH);
   digitalWrite(enablePinB,HIGH);   digitalWrite(enablePinB,HIGH);
   digitalWrite(enablePinC,HIGH);   digitalWrite(enablePinC,HIGH);
   digitalWrite(enablePinD,HIGH);   digitalWrite(enablePinD,HIGH);
-  digitalWrite(enablePinE,HIGH); 
- 
   digitalWrite(directionPinA, LOW);   digitalWrite(directionPinA, LOW);
   digitalWrite(directionPinB, LOW);   digitalWrite(directionPinB, LOW);
   digitalWrite(directionPinC, LOW);   digitalWrite(directionPinC, LOW);
   digitalWrite(directionPinD, LOW);   digitalWrite(directionPinD, LOW);
-  digitalWrite(directionPinE, LOW); +  digitalWrite(PUMP,LOW);
-   +
-  +
   stepperA.setMaxSpeed(1000*16);   stepperA.setMaxSpeed(1000*16);
   stepperB.setMaxSpeed(1000*16);   stepperB.setMaxSpeed(1000*16);
   stepperC.setMaxSpeed(1000*16);     stepperC.setMaxSpeed(1000*16);  
   stepperD.setMaxSpeed(1000*16);     stepperD.setMaxSpeed(1000*16);  
-  stepperE.setMaxSpeed(1000*16);   
  
   //turn the PID on   //turn the PID on
   myPIDA.SetMode(AUTOMATIC);   myPIDA.SetMode(AUTOMATIC);
- 
 } }
  
Line 162: Line 142:
   int speedC = map(analogRead(speedpotC), 0, 1023, 1, 2000);   int speedC = map(analogRead(speedpotC), 0, 1023, 1, 2000);
   int speedD = map(analogRead(speedpotD), 0, 1023, 1, 2000);   int speedD = map(analogRead(speedpotD), 0, 1023, 1, 2000);
-  int speedE = map(analogRead(speedpotE), 0, 1023, 1, 2000); 
  
   Input = read_temp("A");   Input = read_temp("A");
Line 183: Line 162:
    delay(500);    delay(500);
   }   }
-bfl = motorStop(stopbuttonA, enablePinA, directionA, directionPinA, bfl);+/* 
 + Serial.print("A go "); 
 + Serial.println(digitalRead(gobuttonA)); 
 + Serial.print("A stop "); 
 + Serial.println(digitalRead(stopbuttonA)); 
 + 
 + Serial.print("B go "); 
 + Serial.println(digitalRead(gobuttonB)); 
 + Serial.print("B stop "); 
 + Serial.println(digitalRead(stopbuttonB)); 
 + 
 + Serial.print("C go "); 
 + Serial.println(digitalRead(gobuttonC)); 
 + Serial.print("C stop "); 
 + Serial.println(digitalRead(stopbuttonC));  
 + 
 + Serial.print("D go "); 
 + Serial.println(digitalRead(gobuttonD)); 
 + Serial.print("D stop "); 
 + Serial.println(digitalRead(stopbuttonD));   
 + Serial.println(""); 
 + delay(500); 
 +*/ 
 + 
 +flowData A = {bfl, directionA}; 
 +flowData *AA = &A; 
 +flowData AAA = motorStop(stopbuttonA, enablePinA, directionPinA, AA)
 +directionA = AAA.dir;
 motorMove(gobuttonA, enablePinA); motorMove(gobuttonA, enablePinA);
  
-bfl = motorStop(stopbuttonB, enablePinB, directionB, directionPinB, bfl);+flowData B = {bfl, directionB}; 
 +flowData *BB = &B; 
 +flowData BBB = motorStop(stopbuttonB, enablePinB, directionPinB, BB)
 +directionB = BBB.dir;
 motorMove(gobuttonB, enablePinB); motorMove(gobuttonB, enablePinB);
  
-bfl = motorStop(stopbuttonC, enablePinC, directionC, directionPinC, bfl);+flowData C = {bfl, directionC}; 
 +flowData *CC = &C; 
 +flowData CCC = motorStop(stopbuttonC, enablePinC, directionPinC, CC)
 +directionC = CCC.dir;
 motorMove(gobuttonC, enablePinC); motorMove(gobuttonC, enablePinC);
  
-bfl = motorStop(stopbuttonD, enablePinD, directionD, directionPinD, bfl);+flowData D = {bfl, directionD}; 
 +flowData *DD = &D; 
 +flowData DDD = motorStop(stopbuttonD, enablePinD, directionPinD, DD)
 +directionD = DDD.dir;
 motorMove(gobuttonD, enablePinD); motorMove(gobuttonD, enablePinD);
  
-bfl motorStop(stopbuttonE, enablePinE, directionE, directionPinE, bfl); +  if (A.dir == 1) {stepperA.setSpeed(speedA);}else{stepperA.setSpeed(-speedA);} 
-motorMove(gobuttonE, enablePinE);+  if (B.dir == 1) {stepperB.setSpeed(speedB);}else{stepperB.setSpeed(-speedB);
 +  if (C.dir == 1) {stepperC.setSpeed(speedC);}else{stepperC.setSpeed(-speedC);
 +  if (D.dir == 1) {stepperD.setSpeed(speedD);}else{stepperD.setSpeed(-speedD);}
  
-  if (directionA == 1) {stepperA.setSpeed(speedA);}else{stepperA.setSpeed(-speedA);+ 
-  if (directionB == 1) {stepperB.setSpeed(speedB);}else{stepperB.setSpeed(-speedB);+
-  if (directionC == 1) {stepperC.setSpeed(speedC);}else{stepperC.setSpeed(-speedC);+
- +
-   +
-  //if (stepperC.distanceToGo() == 0) +
- //stepperC.moveTo(-stepperC.currentPosition()); +
-  stepperE.runSpeed();+
   stepperD.runSpeed();   stepperD.runSpeed();
   stepperC.runSpeed();   stepperC.runSpeed();
   stepperB.runSpeed();   stepperB.runSpeed();
   stepperA.runSpeed();   stepperA.runSpeed();
 +  
  if(Serial.available()){  if(Serial.available()){
     char c = Serial.read();     char c = Serial.read();
Line 227: Line 237:
  if (digitalRead(gobutton) == 1){  if (digitalRead(gobutton) == 1){
    digitalWrite(enablePin, LOW);    digitalWrite(enablePin, LOW);
 +   Serial.print("move ");
 +   Serial.println(gobutton);
   }   }
 } }
  
-int motorStop(int stopbutton, int enablePin, int direction, int directionPin, int bfl){+flowData motorStop(int stopbutton, int enablePin, int directionPin, flowData *X){
  if (digitalRead(stopbutton) ==HIGH){  if (digitalRead(stopbutton) ==HIGH){
   digitalWrite(enablePin, HIGH);   digitalWrite(enablePin, HIGH);
-  if (bfl == 0){ +  if (X->bfl == 0){ 
-   if (direction==0){direction = 1; digitalWrite(directionPin, HIGH); }else{direction=0; digitalWrite(directionPin, LOW);} +   if (X->dir==0){X->dir = 1; digitalWrite(directionPin, HIGH); }else{X->dir=0; digitalWrite(directionPin, LOW);} 
-    bfl = 1;+    X->bfl = 1;
    }    }
-  } else { bfl = 0; } +  } else { X->bfl = 0; } 
-return bfl;+ 
 +Serial.print("stop "); 
 +Serial.println(stopbutton); 
 +return *X;
 } }
  
Line 250: Line 265:
    readpotentionmetersanity();    readpotentionmetersanity();
   }   }
 +  else if(com.equalsIgnoreCase("pumpon")){
 +    digitalWrite(PUMP,HIGH);
 +  } 
 +  else if(com.equalsIgnoreCase("pumpoff")){
 +    digitalWrite(PUMP,LOW);
 +  } 
   else if(com.equalsIgnoreCase("info")){   else if(com.equalsIgnoreCase("info")){
     Serial.println("Extruder spool speed controller");     Serial.println("Extruder spool speed controller");
Line 288: Line 309:
  Serial.print("speed pinC: ");  Serial.print("speed pinC: ");
  Serial.println(val);   Serial.println(val); 
 + val = analogRead(speedpotD);
 + Serial.print("speed pinD: ");
 + Serial.println(val);
 } }
  
Line 343: Line 367:
    return current_celsius;    return current_celsius;
 } }
- 
  
 </code> </code>
bdev/filamentextrduer_code.1669674621.txt.gz · Last modified: 2022/11/28 22:30 by richard