Вы находитесь на странице: 1из 8

SISTEMAS EMBEBIDOS

ELECCION DE UNA SITUACION PROBLEMICA

PASO 6

JULIO CESAR RAMÍREZ GONZÁLEZ


CÓDIGO: 1108232560

GRUPO: 208006-6

TUTOR
OSCAR IVAN VALDERRAMA

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA

INGENIERÍA ELECTRÓNICA

11 DE MAYO DE 2018

IBAGUÉ – TOLIMA
Desarrollo de la actividad

Cada estudiante propondrá una situación problémica, a la cual se le pueda dar solución,
mediante un sistema embebido con las características solicitadas.
La situación problémica deberá ser descrita en detalle, así como también el sistema
embebido con el cual se le dará solución a la misma. La descripción debe incluir,
módulos de comunicación, tipo de sensores y actuadores a utilizar, etc.
características:

 Sistema embebido basado en un microcontrolador Arduino.

 Comunicación inalámbrica bluetooth.

 Aplicación web para comunicarse desde el celular con el sistema embebido

 Utilización de sensores.

 Utilización de actuadores.

Situación Problémica:
Derrame de colorantes en fábrica de telas

Descripción de la situación problémica:


En una fabrica de telas, se utilizan tanques donde se prepara y mezclan tintes para
colorear las telas fabricadas, a los tanques se les deposita una serie de tintes en polvo por
un operario y luego los tanques se comienzan a llenar de agua, en algunas ocasiones los
tanques no deben llenarse en su totalidad sino solo hasta cierto porcentaje de acuerdo a la
cantidad de telas que se necesiten colorear. Debido a su tamaño los tanques no se llenan
inmediatamente, por lo que un operario debería estar pendiente de que al estar lleno o al
nivel que se desee no se rebose y se pierda el agua con tintas y se produzcan regueros o
que después sea necesario usar más tinta debido a que se dejó llenar el tanque más de lo
calculado, pero tener a una persona solo para ese trabajo es una perdida de dinero y
tiempo, por lo cual se necesita un sistema embebido que permite controlar el nivel del
tanque y llenarlo hasta el valor adecuado.
Solución utilizando un sistema embebido:
Los tanques en mención y sobre los cuales hay que controlar su nivel, contaran con un
medidor de nivel que permita leer el aumento o disminución de nivel del tanque
centímetro a centímetro, lo que permitirá tener un control sin llenar más de lo deseado, la
medición se realizara utilizando un sensor por ultrasonido referencia HC-SR04 instalado
en la parte superior del tanque y que permite ver la distancia que hay desde donde el esta
instalado hasta el nivel del agua donde chocan las ondas y se devuelven como un radar,
haciendo un calculo se puede obtener un valor en centímetros, para realizar el debido
control programado en un Arduino uno, la cual será la placa controladora o sistema
embebido a usar y a donde se conectara el sensor ultrasonido a través de dos pines
digitales. El sistema contara con un potenciómetro que permita establecer el nivel
máximo de llenado del sistema para tener un control interactivo y de acuerdo a las
necesidades del proceso conectado a una entrada análoga.
Cuando el sensor detecta el nivel máximo establecido con el potenciómetro, de inmediato
una salida digital del Arduino uno permite activar un relé a través de un optoacoplador
4n25. El relé a su vez será la interfaz que permita cerrar la electroválvula que trae el agua
hacia el tanque, evitando que se siga llenando.
Además de lo anterior el sistema cuenta con un modulo bluetooth HC-06 que permite
conectarse con un smartphone, permitiendo que a través de una aplicación se pueda ver el
valor actual del nivel del tanque y el nivel establecido de máximo nivel de llenado con el
potenciómetro.
Diagrama ilustrativo de la solución:
Desarrollo de la solución:
Diseño electrónico de la solución en Proteus:

Código implementado en el IDE de Arduino:


/*
UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA
Curso: Sistemas embebidos
Paso6_Robotica_Avanzada_UNAD
Grupo_6
Fecha: Mayo 10 de 2018
*/
//declaramos variables y pines
int sensorPin = A0;
int VALVULA = 3;
int LUZ = 2;
int setpoint = 0;
#define trigPin 7
#define echoPin 6
void setup() {
//configuramos la conexion serial y la iniciamos
Serial.begin(9600);
pinMode(VALVULA, OUTPUT); //definimos pines como entradas o como salidas
pinMode(LUZ, OUTPUT);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
}
void loop() {
setpoint = analogRead(sensorPin); //Leemos la entrada anaologa para saber el setpoint a
llenar
//Fragmento que habilita el sensor ultrasonido y calcula la distancia o llenado del tanque
int duration, distance;
digitalWrite(trigPin,HIGH);
delayMicroseconds(1000);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = (duration/2) / 29.1;
delay(200);
//Aqui se hace que si el tanque esta lleno por encima del setpoint se cierre la valvula
//y se encienda una luz
if(distance > setpoint){
digitalWrite(VALVULA, HIGH);
digitalWrite(LUZ, HIGH);
}
else {
digitalWrite(VALVULA, LOW);
digitalWrite(LUZ, LOW);
}
//Se envia por Bluettoth al celular el nivel del tanque medido
Serial.println(distance);
}
Imágenes de la Simulación Realizada:

Вам также может понравиться