#include <AccelStepper.h>
#define CarroStep A4
#define CarroDir A3
#define BaseStep A2
#define BaseDir A1
#define Piston A5
#define LASER A0
#define SW_GIRO D11
const String swder_act = "SWDA"; //Switch carro derecho activo
const String swder_ina = "SWDI"; //Switch carro derecho inactivo
const String swizq_ac = "SWIA"; //Switch carro izquierdo activo
const String swizq_ina = "SWII"; //Switch Carro izquierdo inactivo
const String swgiro_act = "SWGA"; //Switch giro activo
const String swgiro_ina = "SWGI"; //Switch giro inactivo
const String swptn_act = "SWPTA"; //Switch piston activo
const String swptn_ina = "SWPTI"; //Switch pisto inactivo
const String swtp_act = "SWTA"; //Switch tapa activo
const String swtp_ina = "SWTI"; //Switch tapa inactivo
const String sok = "ST"; //Soldudura completa
const String pck = "PCHK"; // el driver esta listo
const String h_rd = "HW_RDY";
const String homeok = "HOME_OK"; //todo en posicion, listo para soldar/
const String pieza_ok = "POK"; // pieza presente
const String pieza_nok = "PNOK"; // pieza no presente
const String soldar = "SOLD"; //incia soldadura
const String rs = "RESUME";//resume soldadura luego de pausa
const String ps = "PAUSA";// PAUSA soldadura
const String stopCarroDer = "STPDER"; //al recibir este comando el carro se no avanza mas hacia la derecha
const String stopCarroIzq = "STPIZQ"; //al recibir este comando el carro se no avanza mas hacia la derecha
const String startCarroDer = "MCDER"; //al recibir este comando el carro avanza hacia la derecha
const String startCarroIzq = "MCIZQ"; //al recibir este comando el carro avanza hacia al izquierda
const String mvbase = "MBASE";//al recibir este comando la base se avanza una posicion
const String stopBase = "STPMBS";//al recibir este comando frena la base
const String pstnD = "PSTN_DN"; // al redibir este comando el piston baja
const String pstnU = "PSTN_UP"; //al recibir este comando el piston sube
const String mnt = "MNT"; //al recbir este comando entra en modo mantenimiento
const String inicio = "INIT"; //al recbir este comando vuelve al modo inicio
const String oper = "SOLDAR"; //al recibir este comando entra al modo operacion
const String hom = "HOME"; //al recibir este comando, muestra el menu por el puerto serie
const String chk = "HW_CHECK"; //AL recibir este comando envia el aviso de placa PLC lista
const String edr = "ENDRY";
const String didrv = "DISDRI";
const String pieza_chk = "PCHK";// inicia verificacion de pieza cololcada
//definicion de senales
AccelStepper MotorBase(1, BaseStep, BaseDir);
AccelStepper MotorCarro(1, CarroStep, CarroDir );
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
Serial.println("Hello, STM33!");
pinMode(LASER, OUTPUT);
pinMode(Piston, OUTPUT);
digitalWrite(LASER,LOW);
digitalwrite(Piston, LOW);
MotorBase.setPinsInverted(true,false);// moveCarroDer();
MotorCarro.setPinsInverted(false,false);
MotorBase.setMinPulseWidth(40);
MotorCarro.setMinPulseWidth(40);
MotorBase.setCurrentPosition(0);
MotorCarro.setCurrentPosition(0);
MotorCarro.setMaxSpeed(30000);
MotorCarro.setAcceleration(10000);
MotorBase.setMaxSpeed(8000);
MotorBase.setAcceleration(6000);
MotorCarro.moveTo(100000);
MotorBase.moveTo(9000);
}
void loop() {
// put your main code here, to run repeatedly:
if (Serial.available() > 0)
{
String input = Serial.readStringUntil('\n');
input.trim();
if (input.equals(chk))
{
delay(100);
Serial.println(h_rd);
}
if (input.equals(hom))
{
//CENTRADO();
}
if (input.equals(mnt))
{
//mantenimiento();
}
if (input.equals(soldar))
{
SOLDAR();
}
}
delay(10); // this speeds up the simulation
}
void SOLDAR()
{
Serial.println("soldando");
}LASER
PISTON