Bribro12
Published © CC BY-NC-ND

Delta belt 3D-printer for automated series production

I needed a way to print a lot small parts (cable chain pieces) fast and preferably in an automated way, so I build this modular delta belt 3

IntermediateFull instructions provided16 hours396
Delta belt 3D-printer for automated series production

Things used in this project

Hardware components

42mm Nema 17 stepper motor
×1
36 and 16 Teeth GT2 pulleys
×1
280mm GT2 timing belt
×1
Arduino Nano
×1
A4988 stepper motor driver
×1
3D-printed parts
×1
5x10x3.5mm bearing
×4
15x15x220mm aluminium tube
×4
5x240mm shaft
×1
5x255mm shaft
×1
220x220 heated bed or aluminium plate
×1

Hand tools and fabrication machines

FLsun Super Racer 3D-printer

Story

Read more

Schematics

PCB gerber file

Code

Belt 3D-printer Arduino code

C/C++
// Defines pins numbers
const int stepPin = 3;
const int dirPin = 4; 
const int Enable = 5;
const int GLED = 6;
const int RLED = 7;
const int LmtSwtch = A1;
const int Mspeed = 500; //delay between pulses to determine the motor speed (smaller delay = faster motor)
int Lastbuttonstate = 1;
int flag1 = 0;
int StepAmount = 0;
int StepAmountSet = 6000; //Amount of steps that have to be taken (distance the belt travels when switch is triggered)
int customDelay,customDelayMapped; // Defines variables
 
void setup() {
  // Sets the pins as outputs
  pinMode(stepPin,OUTPUT);
  pinMode(dirPin,OUTPUT);
  pinMode(Enable, OUTPUT);
  pinMode(LmtSwtch, INPUT_PULLUP);
  pinMode(GLED, OUTPUT);
  pinMode(RLED, OUTPUT);
  
  //Serial.begin(115200); //uncomment line to use serial monitor
 
  digitalWrite(dirPin,HIGH); //Enables the motor to move in a particular direction
  digitalWrite(RLED,HIGH);
  digitalWrite(GLED,HIGH);
}
void loop() {

  int Buttonstate = digitalRead(LmtSwtch);

  if (Buttonstate < Lastbuttonstate){
    flag1 = 1;
  }

  Lastbuttonstate = Buttonstate;
  
  if (flag1 == 0)
  {
    digitalWrite(Enable, LOW);
    digitalWrite(stepPin, LOW);
  }
  if (flag1 == 1 && StepAmount < StepAmountSet)
  {
      digitalWrite(Enable, LOW);
      digitalWrite(stepPin, HIGH);
      delayMicroseconds(Mspeed);
      digitalWrite(stepPin, LOW);
      delayMicroseconds(Mspeed);
      StepAmount = StepAmount + 1;
  }
  else {
    flag1 = 0;
    StepAmount = 0;
  }

  /*
  Serial.print("Buttonstate: "); //uncomment this section to use serial monitor
  Serial.print(Buttonstate);
  Serial.print(" flag1: ");
  Serial.print(flag1);
  Serial.print(" StepAmount: ");
  Serial.println(StepAmount);
  */
  
}

Credits

Bribro12
25 projects • 26 followers
I'm a maker. I design and create my own projects and build them from scratch. My favorite tools are my 3D-printer and laser cutter
Contact

Comments

Please log in or sign up to comment.