Sie sind auf Seite 1von 7

Manual de Operación del Sistema Clasificador DEGEM

Mauricio Espinoza B.
Julio, 2018
1 Elementos del sistema
En la figura 1 se muestra la ubicación de los componentes de la banda clasificadora DEGEM. Se determinó
que todos los motores, actuadores, y sensores estaban en funcionamiento, pero no se encontraron las piezas
por clasificar.

Figura 1: Componentes del sistema DEGEM

2 Alimentación del sistema


Los circuitos internos del sistema clasificador DEGEM fueron configurados para alimentarse directamente
una vez que el sistema fuera alimentado. Se necesita además un computador estándar con el programa de
Arduino y con puerto USB (el sistema DEGEM posee un cable propio). Se debe tener cuidado de que el
botón de “Paro de emergencia” (ver figura 1) no esté activado al querer iniciar el sistema.

3 Programación del Arduino Maestro


El Arduino Maestro determina el paro total de los motores del sistema si uno de los sensores de final de
carrera se activa. Por aspectos de seguridad, su programación no está disponible para los estudiantes, y se
debe abrir la cubierta del sistema para su programación. El Arduino Maestro se muestra a la izquierda de
la figura 2, mientras que sus pines de conexión se muestran en la Tabla 1.
Figura 2: Arduino Maestro (izquierda) y Arduino Esclavo (derecha).

Tabla 1: Pines de conexión del Arduino Maestro

Pin Tipo Señal


2 Salida Salida efectiva del motor del pistón
3 Salida Salida efectiva del motor del pistón
4 Salida Salida efectiva del motor de la banda
5 Salida Salida efectiva del motor de la banda
6 Entrada Salida inicial del motor del pistón
7 Entrada Salida inicial del motor del pistón
8 Entrada Salida inicial del motor de la banda
9 Entrada Salida inicial del motor de la banda
10 Entrada Sensores de final de carrera

A continuación, se coloca el código que el Arduino Maestro tiene programado.

//float Pot = 0, PotEscalado = 0, SetPot = 0;


//int FinalCarrera = 0, Proximidad1 = 0, Inductivo = 0, Proximidad2 = 0;

//Declaración de variables
int FinalCarrera = 0;

int OUTPUT2 = 2;
int OUTPUT3 = 3;
int OUTPUT4 = 4;
int OUTPUT5 = 5;

int IN6 = 6;
int IN7 = 7;
int IN8 = 8;
int IN9 = 9;
int IN10 = 10;

void setup()
{ Serial.begin(9600); //Configuración del puerto de comunicaciones
//Salidas para puentes H
pinMode (OUTPUT2, OUTPUT); //Salida efectiva del motor del pistón
pinMode (OUTPUT3, OUTPUT); //Salida efectiva del motor del pistón
pinMode (OUTPUT4, OUTPUT); //Salida efectiva del motor de la banda
pinMode (OUTPUT5, OUTPUT); //Salida efectiva del motor de la banda
pinMode (IN6, INPUT); //Salida inicial del motor del pistón
pinMode (IN7, INPUT); //Salida inicial del motor del pistón
pinMode (IN8, INPUT); //Salida inicial del motor de la banda
pinMode (IN9, INPUT); //Salida inicial del motor de la banda
pinMode (IN10, INPUT); //Final de carrera
}
void loop()
{
//Lectura del final de carrera
FinalCarrera = digitalRead (IN10); //Se lee la señal de los finales de carrera
if(FinalCarrera == 0){ //Si los finales de carreca se activan, los motores se detienen
digitalWrite (OUTPUT2, LOW);
digitalWrite (OUTPUT3, LOW);
digitalWrite (OUTPUT4, LOW);
digitalWrite (OUTPUT5, LOW);
}
else{ //Si los finales de carrera no se han activado, el Arduino Maestro reproduce los comandos
del Arduino Esclavo
digitalWrite (OUTPUT2, digitalRead (IN6));
digitalWrite (OUTPUT3, digitalRead (IN7));
digitalWrite (OUTPUT4, digitalRead (IN8));
digitalWrite (OUTPUT5, digitalRead (IN9));
}
}

4 Programación del Arduino Esclavo


Se pretende que el Arduino Esclavo sea el programado por los estudiantes con el fin de utilizar el sistema.
El Arduino Esclavo se puede observa en la Figura 2 y tiene conexión directa al computador por medio de
un cable USB.

Tabla 2: Pines de conexión del Arduino Maestro

Pin Tipo Señal


2 Salida Motor del pistón
3 Salida Motor del pistón
4 Salida Motor de la banda
5 Salida Motor de la banda
6 Entrada Sensor de proximidad 1
7 Entrada Sensor inductivo
8 Entrada Sensor de proximidad 2
9 Entrada Finales de carrera
10 Salida LED 1
11 Salida LED 2
12 Salida LED 3
13 Salida LED 4

A continuación, se muestra el código que el Arduino Esclavo tiene en este momento, el cual corresponde
a una prueba de todos los sensores, actuadores y motores del sistema DEGEM.

//sensores
float Pot = 0, PotEscalado = 0, SetPot = 0;
int FinalCarrera = 0, Proximidad1 = 0, Inductivo = 0, Proximidad2 = 0;

int OUTPUT2 = 2;
int OUTPUT3 = 3;
int OUTPUT4 = 4;
int OUTPUT5 = 5;
int IN6 = 6;
int IN7 = 7;
int IN8 = 8;
int IN9 = 9;
int OUTPUT10 = 10;
int OUTPUT11 = 11;
int OUTPUT12 = 12;
int OUTPUT13 = 13;

void setup()
{ Serial.begin(9600);
pinMode (OUTPUT2, OUTPUT); //Motor del pistón
pinMode (OUTPUT3, OUTPUT); //Motor del pistón
pinMode (OUTPUT4, OUTPUT); //Motor de la banda
pinMode (OUTPUT5, OUTPUT); //Motor de la banda
pinMode (IN6, INPUT); //Sensor de proximidad 1
pinMode (IN7, INPUT); //Sensor inductivo
pinMode (IN8, INPUT); //Sensor de proximidad 2
pinMode (IN9, INPUT); //Finales de carrera
pinMode (OUTPUT10, OUTPUT); //LED 1
pinMode (OUTPUT11, OUTPUT); //LED 2
pinMode (OUTPUT12, OUTPUT); //LED 3
pinMode (OUTPUT13, OUTPUT); //LED 4
}
void loop()
{
/*Lectura de los sensores*/

//Potenciómetro
Pot = analogRead(A0) ; //Lectura del potenciómetro
PotEscalado = Pot*(5.0/1023.0); //Escalado del potenciómetro
//Sensor Proximidad 1
Proximidad1 = digitalRead (IN6);
//Sensor Inductivo
Inductivo = digitalRead (IN7);
//Sensor Proximidad 2
Proximidad2 = digitalRead (IN8);
//Final de carrera
FinalCarrera = digitalRead (IN9);

/*Ver variables*/
Serial.print("Pot = ");
Serial.print(PotEscalado);
Serial.print("\tProximidad1 = ");
Serial.print(Proximidad1) ;
Serial.print("\tProximidad2 = ");
Serial.print(Proximidad2);
Serial.print("\tInductivo = ");
Serial.print(Inductivo);
Serial.print("\tSetPot = ");
Serial.print(SetPot);
Serial.print("\tFinal = ");
Serial.println(FinalCarrera);

/**Movimiento del motor de la banda**/


digitalWrite (OUTPUT4, HIGH);
digitalWrite (OUTPUT5, LOW);

/**Movimiento del motor del pistón**/


// Motor avanza
delay(1000);
digitalWrite (OUTPUT2, LOW);
digitalWrite (OUTPUT3, HIGH);
digitalWrite (OUTPUT10, HIGH); //Se enciende el LED
digitalWrite (OUTPUT11, HIGH); //Se enciende el LED
digitalWrite (OUTPUT12, HIGH); //Se enciende el LED
digitalWrite (OUTPUT13, HIGH); //Se enciende el LED

//Motor para
delay(1000);
digitalWrite (OUTPUT2, LOW);
digitalWrite (OUTPUT3, LOW);

//Motor retrocede
delay(1000);
digitalWrite (OUTPUT2, HIGH);
digitalWrite (OUTPUT3, LOW);
digitalWrite (OUTPUT10, LOW); //Se apaga el LED
digitalWrite (OUTPUT11, LOW); //Se apaga el LED
digitalWrite (OUTPUT12, LOW); //Se apaga el LED
digitalWrite (OUTPUT13, LOW); //Se apaga el LED

//Motor para
delay(1000);
digitalWrite (OUTPUT2, LOW);
digitalWrite (OUTPUT3, LOW);

Das könnte Ihnen auch gefallen