MEMORIA
ASCENSOR
1. OBJETO
El objeto de
este proyecto es
el de construir
desde cero, la
maqueta de un
ascensor con los sensores
y accionamientos necesarios
para simular el
comportamiento real de
un ascensor controlándose por un
controlador Arduino.
2. ANTECEDENTES
Este proyecto tiene como antecedente, la realización de un
proyecto final de ciclo superior de “Desarrollo de Productos Electrónicos“.
3. JUSTIFICACIÓN
Demostrar el funcionamiento electrónico de un ascensor con
las características y especificaciones exigidas por el profesorado.
4. DATOS DE PARTIDA
Los datos de partida simplemente fueron la idea de demostrar
el funcionamiento electrónico y la programación para controlar un ascensor
formado por una fuente de alimentación(B1), un Arduino One(B2) como controlador, un módulo de
control de sensores(B3), un módulo de control de pulsadores(B4), un L293D como
puente en H para la alimentación del motor y controlado con el Arduino(B5) y un motor de 5V encargado del accionamiento
mecánico del ascensor(B6).
B1: Fuente de
alimentación
Se trata de una fuente de alimentación lineal de 5Vcc capaz
de entregar hasta un 1A de intensidad con el debido disipador térmico en el
regulador de tensión (7805).
Consta de un transformador
de 220V a 12V, un puente de diodos
compuesto por cuatro diodos 1N4007, un condensador
electrolítico de 1000uF, seguido de otro condensador 330nF de lenteja, seguidamente está el regulador de
tensión 7805 (entrega 5V de corriente continua, el encapsulado en el que
usualmente se utiliza es el TO220, aunque también
se lo encuentra en encapsulados pequeños de montaje superficial y
en encapsulados grandes y metálicos como el TO3),
a la salida del regulador seguidamente esta el ultimo condensador de 100nF
cerámico, de hay salen ya los 5 voltios de corriente continua, yo he añadido
una resistencia de 330 ohmios con un led para saber cuando está conectada la
placa.
B2: Controlador
Arduino One
Arduino es una plataforma de hardware libre, basada en una placa con un microcontrolador y un entorno de desarrollo, diseñada para facilitar el uso de la electrónica en proyectos multidisciplinares.
El hardware consiste en una placa con un
microcontrolador Atmel AVR y
puertos de entrada/salida.Los
microcontroladores más usados son el Atmega168, Atmega328, Atmega1280, ATmega8 por su sencillez y bajo coste
que permiten el desarrollo de múltiples diseños. Por otro lado el software
consiste en un entorno de desarrollo que implementa el lenguaje de programación Processing/Wiring
y el cargador de arranque que es ejecutado
en la placa.
B3: Módulo de
sensores
Este módulo se encarga de hacer funcionar unos sensores
CNY70, generando como salida una señal analógica que será leída por el
controlador y según una calibración convertida a digital.
Cada conector corresponde a cada CNY70 de cada planta del
ascensor. Los CNY70 son optotransistores sensibles al reflejo del material que
tengan delante, ajustado a una distancia indicada en su datasheet.
B4: Módulo de botones de llamada
Este módulo se encarga del control de los botones de
llamada. Los conectores corresponden a los cinco pulsadores exteriores montados
en la maqueta. Se basan en lógica negativa.
B5: L293D . Control
del motor
El L293D es un
circuito integrado constituido por transistores y amplificadores operacionales
que funciona como un puente en “H”, es decir que tiene dos circuitos en uno.
Las patillas IN1 e IN2 se encargan de dar polaridad al
motor, es decir, elegir el sentido de giro. La patilla EN1 actúa como enable,
para activar o desactivar. OUT1 y OUT2 son las salidas para el motor de CC de
5V.
La alimentación del integrado se realiza por la patilla VSS,
en este caso es de 5Vcc. La alimentación para el motor es por la patilla VS.
Con esta construcción no tenemos problemas de alimentar el motor a otra tensión
para conseguir más potencia.
Añadiéndole unos Led´s para saber el sentido de giro del
motor y unos diodos 1N5819 que ya van integrados dentro, pero su instalación
fuera no afecta para nada y si consigue mayor número de componentes, para poder
cumplir los 60 componentes que son los mínimos que los cuales tiene que contar
la placa, según las exigencias del proyecto.
B6: Motor DC
Se puede decir que es la salida de todo el circuito, es el
accionamiento directo del ascensor. El motor enrollado a una polea reductora
donde se encuentra el cable enrollado, que baja hasta el ascensor.
Se utiliza el PWM para adecuar su velocidad.
Programa Arduino
//Definicion sensores
int sensor0=A0;
int sensor1=A1;
int sensor2=A2;
int sensor3=A3;
int sensor4=A4;
//Definicion botones de llamada
int boton0=2;
int boton1=3;
int boton2=4;
int boton3=5;
int boton4=6;
//Definicion motor
int e1=11,e2=10,enable=9;
void setup () {
Serial.begin(9600);
pinMode(sensor0,INPUT);
pinMode(sensor1,INPUT);
pinMode(sensor2,INPUT);
pinMode(sensor3,INPUT);
pinMode(sensor4,INPUT);
pinMode(boton0,INPUT);
pinMode(boton1,INPUT);
pinMode(boton2,INPUT);
pinMode(boton3,INPUT);
pinMode(boton4,INPUT);
pinMode(e1,OUTPUT);
pinMode(e2,OUTPUT);
pinMode(enable,OUTPUT);
//Al conectar mueve el ascensor a la planta baja como punto de
ai();
}
void loop () {
int s0, s1, s2, s3, s4, b0, b1, b2, b3, b4;
int pwmsubir=140,pwmbajar=65;
int posicion=0, posicion2;
while (1)
lecturasensores (&s0, &s1,
&s2, &s3, &s4);
lecturabotones (&b0, &b1, &b2, &b3,
&b4);
//Programa boton planta baja
if (b0==0) {
posicion2=0;
if (posicion>posicion2) {
while (s0!=1) {
lecturasensores (&s0, &s1,
&s2, &s3, &s4);
bajar (pwmbajar);
delay(5);
}
parada ();
posicion=0;
}
}
//Programa boton planta 1
if (b1==0) {
posicion2=1;
if (posicion>posicion2) {
while (s1!=1) {
lecturasensores (&s0, &s1, &s2, &s3, &s4);
bajar (pwmbajar);
delay(5);
}
parada ();
posicion=1;
}
if (posicion<posicion2) {
while (s1!=1) {
lecturasensores (&s0, &s1, &s2, &s3, &s4);
subir (pwmsubir);
delay(5);
}
parada ();
posicion=1;
}
}
//Programa boton planta 2
if (b2==0) {
posicion2=2;
if (posicion>posicion2) {
while (s2!=1) {
lecturasensores (&s0, &s1,
&s2, &s3, &s4);
bajar (pwmbajar);
delay(5);
}
parada ();
posicion=2;
}
if (posicion<posicion2) {
while (s2!=1) {
lecturasensores (&s0, &s1, &s2, &s3, &s4);
subir (pwmsubir);
delay(5);
}
parada ();
posicion=2;
}
}
//Programa boton planta 3
if (b3==0) {
posicion2=3;
if (posicion>posicion2) {
while (s3!=1) {
lecturasensores (&s0, &s1, &s2, &s3, &s4);
bajar (pwmbajar);
delay(5);
}
parada ();
posicion=3;
}
if (posicion<posicion2) {
while (s3!=1) {
lecturasensores (&s0, &s1, &s2, &s3, &s4);
subir (pwmsubir);
delay(5);
}
parada ();
posicion=3;
}
}
//Programa boton planta 4
if (b4==0) {
posicion2=4;
if (posicion<posicion2) {
while (s4!=1) {
lecturasensores (&s0, &s1,
&s2, &s3, &s4);
subir (pwmsubir);
delay(5);
}
parada ();
posicion=4;
}
}
delay(200);
}
}
void ai () {
int s0,s1,s2,s3,s4;
lecturasensores (&s0, &s1, &s2, &s3, &s4);
delay(5);
while (s0==0) {
bajar (80);
lecturasensores (&s0, &s1, &s2, &s3, &s4);
delay(15);
}
parada ();
}
void lecturasensores (int *s0,int *s1,int *s2,int *s3,int *s4) {
int e0, e1, e2, e3, e4, filtro=200;
//lectura y muestra de datos de los sensores
e0=analogRead(sensor0);
delay(5);
e1=analogRead(sensor1);
delay(5);
e2=analogRead(sensor2);
delay(5);
e3=analogRead(sensor3);
delay(5);
e4=analogRead(sensor4);
delay(5);
//Filtrado de datos analogicos a digitales
if
(e0<filtro)
*s0=1;
else
*s0=0;
if
(e1<filtro)
*s1=1;
else
*s1=0;
if
(e2<filtro)
*s2=1;
else
*s2=0;
if
(e3<filtro)
*s3=1;
else
*s3=0;
if
(e4<filtro)
*s4=1;
else
*s4=0;
}
void lecturabotones (int *b0,int *b1,int *b2,int *b3,int *b4) {
//Lectura digital de resultado de pulsadores de llamada
Diagrama de flujo Ascensor
GanntProject Ascensor
Aplicación Bluetooth Ascensor
Lista de componentes
FUENTE DE ALIMENTACIÓN
TRANSFORMADOR
220V/6V 1ª
CONDENSADORES:
1000uF
electrolítico
330nF
cerámico
100nF
lenteja
4 DIODOS D1N4007
7805
RESISTENCIA
330 Ohmios
DIODO LED
ROJO
PORTAFUSIBLE
FUSIBLE 1ª
10 TERMINALES
MACHO-HEMBRA
CONTROL MOTOR ( L293D )
4 DIODOS
1N5819
2 DIODOS LED (ROJO
Y VERDE)
RESISTENCIAS
SMD:
150 Ohmios
100 Ohmios
7 TERMINALES
MACHO-HEMBRA
ARDUINO
ATMEGA 328P
CONDENSADORES:
22nF (2)
10nF (1)
RESISTENCIA
10K
PULSADOR 2
PATILLAS
CRISTAL DE
CUARZO 16KHz
ZOCALO DE 28
PINES
36 TERMINALES
MACHO-HEMBRA
SENSORES
RESISTENCIAS:
SMD 47K (5)
180 Ohmios ( 5 )
26 TERMINALES
MACHO-HEMBRA
PULSADORES
17 TERMINALES
MACHO-HEMBRA
RESISTENCIAS
10K
Como puedo contactarme. intente cargar el programa pero me tira error
ResponderEliminarComo están. Probé cargar el programa del ascensor, pero me tira error (Programa_Ascensor_1:3: error: expected initializer before 'CNY70').
ResponderEliminarMe podrían ayudar con este problema.
Gracias.
En qué línea tienes el código CNY70?
Eliminar