//01/08/2023 20:19hs
//AMBU: Se prueba con los motores a 1.4A. 2 vueltas horario y 2 vuelta anti horario
// pines con Arduino mega con ramp 1.14
#define X_STEP_PIN 54
#define X_DIR_PIN 55
#define X_ENABLE_PIN 38
#define Y_STEP_PIN 60
#define Y_DIR_PIN 61
#define Y_ENABLE_PIN 56
/*
// pines con Arduino uno con ramp 1.14
#define X_STEP_PIN 8
#define X_DIR_PIN 9
#define X_ENABLE_PIN 10
#define Y_STEP_PIN 5
#define Y_DIR_PIN 6
#define Y_ENABLE_PIN 7
*/
//int i=0;
int ciclos=0;
int vuelta=0;
int tiempo_comprime =1100; // tiempo en microsegundos -
int tiempo_descomprime =1100; // tiempo en microsegundos
void setup() {
pinMode(X_STEP_PIN, OUTPUT);
pinMode(X_DIR_PIN, OUTPUT);
pinMode(X_ENABLE_PIN, OUTPUT);
pinMode(Y_STEP_PIN, OUTPUT);
pinMode(Y_DIR_PIN, OUTPUT);
pinMode(Y_ENABLE_PIN, OUTPUT);
digitalWrite(X_ENABLE_PIN, HIGH); // desactiva motores
digitalWrite(Y_ENABLE_PIN, HIGH);
Serial.begin(9600);
while (!Serial) {
; // wait for serial port to connect. Needed for native USB port only
}
ciclos=10; // ciclos del respirador
vuelta=9; // vueltas del MPP
tiempo_comprime =950; // tiempo en microsegundos -
tiempo_descomprime =1100; // tiempo en microsegundos
}
void loop() {
// prints title with ending line break
Serial.println("ASCII Table ~ inicia programa AMBU ");
delay(4500);
//i=ciclos;
while(ciclos >0 ){
ciclos--;
Serial.print(" dec: ");
Serial.print(ciclos);
//--------------------------------
// Activar los motores y configurar direccion
digitalWrite(X_DIR_PIN, HIGH); // activa motores
digitalWrite(X_ENABLE_PIN, LOW);
digitalWrite(Y_DIR_PIN, HIGH);
digitalWrite(Y_ENABLE_PIN, LOW);
for (int i = 0; i < (200*vuelta); i++) {
pulso();
delayMicroseconds(tiempo_comprime); // velocidad
//delay(1); // velocidad
}
delay(800); // retardo comprimido
//----------------------------------------------------------------
digitalWrite(X_DIR_PIN, LOW); // Cambia sentido de los motores
digitalWrite(Y_DIR_PIN, LOW);
for (int i = 0; i < (200*vuelta); i++) {
pulso();
delayMicroseconds(tiempo_descomprime); // velocidad
//delay(2); // velocidad
}
//----------------------------------------------------------------
//----------------------------------------------------------------
digitalWrite(Y_ENABLE_PIN, HIGH); // apaga motores
digitalWrite(X_ENABLE_PIN, HIGH); //
//----------------------------------------------------------------
delay(1100); // retardo descomprimido
// repite ciclo
}//END WHILE
Serial.println();
Serial.println("fin");
while(1){
// queda hasta el infinito aca
}
//--------------------------------------------------------------------
//--------------------------------------------------------------------
}
void pulso(){
digitalWrite(X_STEP_PIN, HIGH); // pulso motor X
delayMicroseconds(1); //
digitalWrite(X_STEP_PIN, LOW);
digitalWrite(Y_STEP_PIN, HIGH); // pulso motor Y
delayMicroseconds(1); //
digitalWrite(Y_STEP_PIN, LOW);
}