martes, 1 de noviembre de 2016

Código para el accionamiento y automatismos del módulo Vapor

Ante la insistencia de varios compañeros incluyo aquí el programa utilizado para el accionamiento del stepper y los servos de puertas.

Podréis apreciar que consta de 2 programas independientes, recopilados de la red, los cuales incluí en uno solo comprobando que solapasen entradas/salidas y ajustando los parámetros a mis preferencias.

Hay multitud de estos programas para poder cumplir nuestras expectativas, tanto en la web oficial como en los foros y blogs dedicados a Arduino, por descontado el entorno de programación incluye ejemplos que podemos usar para nuestros proyectos, con un poco de investigación y pruebas, seguro que obtendremos el resultado esperado.


//PLATAFORMA Y PUERTAS MÓDULO VAPOR T-TRAK
//PLATAFORMA PASO A PASO
#include <Stepper.h>
const int stepsPerRevolution = 100;

int pulsador = 0;
int entrada = 2;
int pulsador1 = 0;
int entrada1 = 3;

int motorPin1 = 8; // Pines del Motor
int motorPin2 = 9;
int motorPin3 = 10;
int motorPin4 = 11;
int delayTime1 = 50; // delayTime1 determina la velocidad de giro entre uno y otro paso

//PUERTAS SERVOS
#include <VarSpeedServo.h>

int button1 = 4; //button pin, conexión ground mueve servo
int button2 = 5;
int press1 = 0;
int press2 = 0;
VarSpeedServo servo1;
VarSpeedServo servo2;

const int servoPin1 = 6;
const int servoPin2 = 7;

void setup()
{
  //PLATAFORMA
  pinMode(2, INPUT);
  pinMode(3, INPUT);
  pinMode(motorPin1, OUTPUT); // Configuración de los pines como salida digital
  pinMode(motorPin2, OUTPUT);
  pinMode(motorPin3, OUTPUT);
  pinMode(motorPin4, OUTPUT);

  //PUERTAS
  pinMode(button1, INPUT);
  pinMode(button2, INPUT);
  servo1.attach(6);
  servo2.attach(7);
  digitalWrite(4, HIGH); //enable pullups to make pin high
  digitalWrite(5, HIGH);
}

void loop()
{
  //PLATAFORMA
  pulsador = digitalRead(entrada);

  if (pulsador == HIGH)
  { // Punto D (Cuarto)
    digitalWrite(motorPin1, LOW);
    digitalWrite(motorPin2, LOW);
    digitalWrite(motorPin3, HIGH);
    digitalWrite(motorPin4, HIGH);
    delay(delayTime1);
     // Punto C (Tercero)
    digitalWrite(motorPin1, LOW);
    digitalWrite(motorPin2, HIGH);
    digitalWrite(motorPin3, HIGH);
    digitalWrite(motorPin4, LOW);
    delay(delayTime1);


    // Punto B (Segundo)
    digitalWrite(motorPin1, HIGH);
    digitalWrite(motorPin2, HIGH);
    digitalWrite(motorPin3, LOW);
    digitalWrite(motorPin4, LOW);
    delay(delayTime1);

    // Punto A (Primero)
    digitalWrite(motorPin1, HIGH);
    digitalWrite(motorPin2, LOW);
    digitalWrite(motorPin3, LOW);
    digitalWrite(motorPin4, HIGH);
    delay(delayTime1);
}
  pulsador1 = digitalRead(entrada1);

  if (pulsador1 == HIGH)
  { // Punto A (Primero)
    digitalWrite(motorPin1, HIGH);
    digitalWrite(motorPin2, LOW);
    digitalWrite(motorPin3, LOW);
    digitalWrite(motorPin4, HIGH);
    delay(delayTime1);

    // Punto B (Segundo)
    digitalWrite(motorPin1, HIGH);
    digitalWrite(motorPin2, HIGH);
    digitalWrite(motorPin3, LOW);
    digitalWrite(motorPin4, LOW);
    delay(delayTime1);

    // Punto C (Tercero)
    digitalWrite(motorPin1, LOW);
    digitalWrite(motorPin2, HIGH);
    digitalWrite(motorPin3, HIGH);
    digitalWrite(motorPin4, LOW);
    delay(delayTime1);

    // Punto D (Cuarto)
    digitalWrite(motorPin1, LOW);
    digitalWrite(motorPin2, LOW);
    digitalWrite(motorPin3, HIGH);
    digitalWrite(motorPin4, HIGH);
    delay(delayTime1); }

    //PUERTAS
    press1 = digitalRead(button1);
    press2 = digitalRead(button2);

    if (press1 == LOW)
    {
      servo1.write(500,20); // GRADOS GIRO, VELOCIDAD
    }
    else
    {
      servo1.write(80,20);
    }
    if (press2== LOW)
    {
      servo2.write(500,10);
    }
    else
    {
      servo2.write(80,10);
    }
    //delay(50);
  }
}
El programa está listo para copiar y pegar


Artículos relacionados:

2 comentarios:

  1. Jordi, muchas gracias por poner el programa. Lo acabo de copiar y guardar para cuando llegue la ocasión.

    ResponderEliminar
  2. Gracias a ti por tu interés, ya sabes. cualquier duda no dudes en consultar.

    ResponderEliminar