//[email protected] - 2024-07-29
#include <Wire.h>
int timedata = A0; // analog pin0 , a Potentiometer is connected with A0 pin of Arduino.
int timerawdata = 2000; // stores the value coming from the Potentiometer.
int settime = 1; // time duration in milliseconds (initial value)
int startb = 2; // button to start the welding
int relay = 4; // the output relay
int ReadyLed = 3; // when this LED is turned ON, it means you can start the welding
int Sflag = 0; // stops the unnecessary repetition of code.
int powerLed1 = A1;
int powerLed2 = A2;
int powerLed3 = A3;
int powerLed4 = A4;
int powerLed5 = A5;
int power1 = 100;
int power2 = 200;
int power3 = 300;
int power4 = 400;
int power5 = 500;
int mode = 0;
int spotcount = 0; // counts the amount of spot welds
int forceddelay = 500; // forced delay between pulses (ms)
void setup(){
pinMode(startb, INPUT_PULLUP);
pinMode(timedata, INPUT); // POTENTIOMETER CONNECTED
pinMode(relay, OUTPUT);
pinMode(ReadyLed, OUTPUT);
Serial.begin(9600);
}
void loop(){
//Serial.println(mode);
if ((timerawdata != analogRead(timedata)) || (settime == 0)){
timerawdata = analogRead(timedata);
settime = map(timerawdata, 0, 1023, 1, 1000); // 0.1 to 1000 milliseconds
if (((settime >= 0)) && (settime <= 200)){
mode = 1;
}
else if ((settime >= 200) && (settime <= 400)){
mode = 2;
}
else if ((settime >= 400) && (settime <= 600)){
mode = 3;
}
else if ((settime >= 600) && (settime <= 800)){
mode = 4;
}
else if ((settime >= 800) && (settime <= 1000)){
mode = 5;
}
else mode = 0;
Serial.println(mode);
Serial.println(settime);
}
if (mode == 1){
settime = power1;
digitalWrite(powerLed1, HIGH);
digitalWrite(powerLed2, LOW);
digitalWrite(powerLed3, LOW);
digitalWrite(powerLed4, LOW);
digitalWrite(powerLed5, LOW);
}
else if (mode == 2){
settime = power2;
digitalWrite(powerLed1, HIGH);
digitalWrite(powerLed2, HIGH);
digitalWrite(powerLed3, LOW);
digitalWrite(powerLed4, LOW);
digitalWrite(powerLed5, LOW);
}
else if (mode == 3){
settime = power3;
digitalWrite(powerLed1, HIGH);
digitalWrite(powerLed2, HIGH);
digitalWrite(powerLed3, HIGH);
digitalWrite(powerLed4, LOW);
digitalWrite(powerLed5, LOW);
}
else if (mode == 4){
settime = power4;
digitalWrite(powerLed1, HIGH);
digitalWrite(powerLed2, HIGH);
digitalWrite(powerLed3, HIGH);
digitalWrite(powerLed4, HIGH);
digitalWrite(powerLed5, LOW);
}
else if (mode == 5){
settime = power5;
digitalWrite(powerLed1, HIGH);
digitalWrite(powerLed2, HIGH);
digitalWrite(powerLed3, HIGH);
digitalWrite(powerLed4, HIGH);
digitalWrite(powerLed5, HIGH);
}
if (digitalRead(startb) == LOW){
digitalWrite(ReadyLed, LOW);
digitalWrite(relay, HIGH);
delay(settime);
digitalWrite(relay, LOW);
digitalWrite(ReadyLed, HIGH);
Serial.println(settime);
delay(forceddelay);
}
}