Project in progress
Simple Welding Bot Feedback

Simple Welding Bot Feedback

This is my first dive into electronics. I have learned a lot so far but I would like to get some feedback on my project. Thank you!

  • 1,117 views
  • 0 comments
  • 2 respects

Components and supplies

A000066 iso both
Arduino UNO & Genuino UNO
×1
DC motor (generic)
4,5/15 V coalbrush
×1
Relay (generic)
12 Relay
×1

Necessary tools and machines

09507 01
Soldering iron (generic)

About this project

Hi, my name is Emiel. I am a mechanical engineering student from Holland. This is my first real electronics project that is involving programming and more than just wiring up electronics and switches in parallel. In this project I'm trying to build a simple welding-bot. My goal is to learn as much a possible and make it as professional as possible. So far the only thing I bought is the Arduino and the potentiometers, I am planning on buying proper parts but don't know which ones to select. I learned a lot from YouTube and forums so far, but to really learn something I would like to get some feedback. I also have a few questions where I need some help. Would you like to help me? Thank you so much!

How it works:

The purpose of the welding-bot is to rotate an object around and weld it at the same time. These are the steps that my welding-bot has to go through.

Step 1 - LED test

At the indication LED's blink a few times to make sure that they work. The LED's are there to indicate if the Arduino is ready (Green), if the motor is turning (Yellow) and if the welding torch relay is closed (Red).

Step 2 - Homing

Table starts turning until it hits the micro switch.

Step 3 - Cycle

First the welding torch relay will close and the welding torch will start welding after a delay (the Startdelay = Startvertraging) the motor starts turning until it hits the micro switch again. Then the motor will stop turning and after Stopdelay (Stopvertraging) the welding torch relay will open and the welding torch stops welding.

If this isn't clear to understand, please leave a comment about it.

My questions:

  • Should I use capacitors? I see them in almost all electronics but I don't know why the use them.
  • Which value of resistance should I choose for my pull-down resistors?
  • Which resistance value should I choose for my potentiometers?
  • Which type of diodes should I use parallel to my motor and relay against voltage spikes?
  • What is a good type of MOSFET's to use in this case?
  • How can I program my Arduino so I can change the motor speed during the cycle? I know it's possible to wire a potentiometer in series with the MOSFET gate but, I would like to use PWM to control the motor speed so I can give a minimal voltage by setting the minimum duty cycle at 30%.

Thank you so much for spending the time to read this and maybe leaving a comment to help me. I am planning to make it on a perforated board, and make an aluminium enclosure for it. If you would like to see this and a test run, leave it in the comments.

Code

Autolas V 0.4C#
/*
 Autolas V 0.04
 Auteur: Emiel van Beusekom.
 
  Pin-layout:
    Pin 2   = Indenticatie LED - Controller Gereed voor cyclus
    Pin 3   = Indenticatie LED - Moter actief
    Pin 4   = Indenticatie LED - Lastorch actief
    Pin 6   = Cyclus Start schakelaar
    Pin 7   = Volledige rotatie schakelaar
    Pin 9   = Aansturing Moter
    Pin 10  = Aansturing Lastorch 
 */
 
// Indenticatie LED's                           //Pin-layout:
const int GereedIndLED = 2;                        //Pin 2   = Indenticatie LED - Controller Gereed voor cyclus
const int MoterIndLED = 3;                         //Pin 3   = Indenticatie LED - Moter actief
const int LastorchIndLED = 4;                      //Pin 4   = Indenticatie LED - Lastorch actief
// Schakelaars                                     //Pin 6   = Cyclus Start schakelaar
int Sk01 = 6;                                      //Pin 7   = Volledige rotatie schakelaar
int Sk02 = 7;                                      //Pin 9   = Aansturing Moter
int Sk01Status = digitalRead(Sk01);                //Pin 10  = Aansturing Lastorch
// Werktuigen                                      //Pin A0  = Potmeter startvertraging
const int Moter = 9;                               //Pin A1  = Potmeter stopvertraging
const int Lastorch = 10;                           //Pin A2  = Potmeter snelheid
     
      //Identicatie LED's test.
      void IndLEDsTest(){
          digitalWrite(GereedIndLED, HIGH);
           digitalWrite(MoterIndLED, HIGH);
           digitalWrite(LastorchIndLED, HIGH);
           delay(500);
           digitalWrite(GereedIndLED, LOW);
           digitalWrite(MoterIndLED, LOW);
           digitalWrite(LastorchIndLED, LOW);
           delay(500);
      }

      
void setup() {
  Serial.begin(9600);
  Serial.println("Bezig met opstarten");

// alle pinnen worden gelinkt
  pinMode(GereedIndLED, OUTPUT);
  pinMode(MoterIndLED, OUTPUT);
  pinMode(LastorchIndLED, OUTPUT);
  pinMode(Moter, OUTPUT);
  pinMode(Lastorch, OUTPUT);
  pinMode(Sk01, INPUT);
  pinMode(Sk02, INPUT);

// LED Test
  IndLEDsTest();
  IndLEDsTest();
  IndLEDsTest();
  IndLEDsTest();
  IndLEDsTest();

// Terug gaan naar correcte positie
  while (digitalRead(7) == LOW){
    digitalWrite(Moter, HIGH);
    digitalWrite(MoterIndLED, HIGH);
    }
    digitalWrite(Moter, LOW);
    digitalWrite(MoterIndLED, LOW);

// Opstarten voltooid
  digitalWrite(GereedIndLED, HIGH);
  Serial.println("Opstarten Voltooid");

}


void loop() {
  Serial.println(" ");
  
  while (digitalRead(6) == LOW) { }
    
  int Potmeter1 = analogRead(A0);
  int Potmeter2 = analogRead(A1);
  int Potmeter3 = analogRead(A2);
  float StartVertraging = Potmeter1 * 5 + 150;
  float EindVertraging = Potmeter2 * 5 + 150;
  float Snelheid = Potmeter3 * 0.19 + 50;
  
  Serial.println("Cyclus gestart");
  Serial.println("Startvertraging:");
  Serial.println(StartVertraging);
  Serial.println("Stopvertraging:");
  Serial.println(EindVertraging);
  Serial.println("Snelheid:");
  Serial.println(Snelheid);
  Serial.println(Potmeter3);
  
  digitalWrite(LastorchIndLED, HIGH);
  digitalWrite(Lastorch, HIGH);
  
  delay(StartVertraging);
  
  digitalWrite(MoterIndLED, HIGH);
  analogWrite(Moter, Snelheid);
  
  while (digitalRead(7) == LOW) { }
  
  digitalWrite(MoterIndLED, LOW);
  digitalWrite(Moter, LOW);
  
  delay(EindVertraging);
  
  digitalWrite(LastorchIndLED, LOW);
  digitalWrite(Lastorch, LOW);
  
  Serial.println("Cyclus voltooid");
  Serial.println(" ");
  delay(1);
}

Schematics

schematic
My first schematic!
Scan0001

Comments

Similar projects you might like

Trash Built BT Line Drawing Bot - My Bot

Project tutorial by jegatheesan

  • 648 views
  • 0 comments
  • 5 respects

Simple Arduino Digital Clock Without RTC

Project in progress by Annlee Fores

  • 116,810 views
  • 29 comments
  • 106 respects

Telegram Bot with ESP8266

Project tutorial by Shebin Jose Jacob

  • 35,714 views
  • 42 comments
  • 72 respects

Simple Automated Model Railway Layout | Arduino Controlled

Project tutorial by Kushagra Keshari

  • 5,502 views
  • 1 comment
  • 15 respects
Add projectSign up / Login