Beruflich Dokumente
Kultur Dokumente
¡Aterraja, que
algo queda!
RECURSOS
Proyectos eléctricos > Ascensores > Ascensor con Arduino >
ALMA DE HERRERO
ENTRE GRASA Y
TORNILLOS
Programa en Arduino
EMPUJANDO EL CAMIÓN
PROYECTOS
Primer programa útil
PROYECTOS Los pulsadores de los diferentes pisos están conectados a los pines digitales
MAQUETAS de Arduino de la siguiente manera: P1 (7), P2 (9) P3 (11) y P4 (13). Del mismo
modo los nales de carrera están montados de la siguiente manera: F1 (6), F2
ARCO DE YESO
(8), F3 (10) y F4 (12).
ESTRUCTURA DE
EDIFICIO
Para mover el motor del ascensor arriba y abajo (También para pararlo) se
ICTINEO II
usan los pines digitales 4 y 5 de la placa Arduino UNO. El pin 4 lleva la señal a
MAQUETA DE LA ISS la base del transistor BD 895 y el pin 5 a los dos relés que accionan un
MAQUETA DE conmutador simple (Se podría hacer con un solo relé que accione un
LOCOMOTORA conmutador doble).
BALDWIN "LA ROBLA"
PROYECTOS
ELECTRÓNICOS
CIRCUITOS
ELECTRÓNICOS CON
LUCES
FUNCIONAMIENTO DE
UN ELECTROSCOPIO
ELECTRÓNICO
LA RADIO DE ROSA Y
CAROLINA Para subir el ascensor el motor ha de girar tal como le obligan el pin 4 en HIGH
LUCES INTERMITENTES y el pin 5 también en HIGH.
LUCES INTERMITENTES
Para bajar el ascensor el motor ha de girar en sentido contrario, tal como le
LUCES INTERMITENTES obligan el pin 4 en HIGH y el pin 5 en LOW.
CON UN 555
REUTILIZACIÓN DE UN Para parar el ascensor el motor se detiene obligado por el pin 4 en LOW y el
MANDO A DISTANCIA
DE INFRARROJOS (I) pin 5 también en LOW (De hecho el pin 5 puede estar en HIGH, ya que el pin 4
y , por tanto, el transistor BD 894, es el que corta o permite el paso de la
PROYECTOS ELÉCTRICOS
corriente hacia los conmutadores de los relés y hacia el motor.
ASCENSORES
CENTRAL NUCLEAR A parte de por programa, el sentido del giro del motor se puede invertir
CONTROL MEDIANTE invirtiendo la conexión de los dos terminales del motor. De otra manera
RELÉS DE UNA también se puede conseguir cambiar entre subir y bajar, cambiando el sentido
PEQUEÑA MÁQUINA en el que enrollamos la cuerda en el tambor.
EL AVIÓN DE RAUL
TAMIZ OSCILANTE
PROYECTOS MECÁNICOS
AUTÓMATAS
CABRESTANTE
EXPERIMENTO DE
GALILEO SOBRE EL
MOVIMIENTO DE
https://sites.google.com/site/proyectosbarron/proyectos-electricos/ascensores/ascensor/programa-en-arduino 1/8
16/7/2019 Programa en Arduino - ¡Aterraja, que algo queda!
CAIDA DE LOS
CUERPOS
MAQUETA DE
AEROMOTOR
MECANISMO
DIFERENCIAL
REALIZADO CON
PIEZAS DE MECCANO.
MOTORES
MÁQUINA DE ENSAYOS
DE RESISTENCIA
MÁQUINAS DE BOLAS
VEHÍCULOS
RECURSOS
ROBOTS
Aquí se puede ver en detalle la placa de los relés.
INSTALACIONES
INDUSTRIALES
JUEGOS Y
ANIMACIONES
MÚSICA
PLACA VELLEMAN
P8055
VEHÍCULOS
SIMULADORES
SIMULADOR DE CNC
WEBQUESTS
CALCULADORAS
EL VIEJO KILOGRAMO
LA GRIPE ESPAÑOLA
REVOLUCIONES
INDUSTRIALES
Este es el programa que permite llamar desde cada uno de los cuatro pisos y
para en el piso deseado. Dispone de una funcionalidad, ejecutada en el
"setup", que hace bajar el ascensor al primer piso, al iniciarse el programa.
int F=0;
int P=0;
void setup() {
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, INPUT);
pinMode(7, INPUT);
pinMode(8, INPUT);
pinMode(9, INPUT);
pinMode(10, INPUT);
pinMode(11, INPUT);
pinMode(12, INPUT);
pinMode(13, INPUT);
inicio();
}
https://sites.google.com/site/proyectosbarron/proyectos-electricos/ascensores/ascensor/programa-en-arduino 2/8
16/7/2019 Programa en Arduino - ¡Aterraja, que algo queda!
if (digitalRead(6)==1){
F=1;
}
void loop(){
if (digitalRead(6)==1){
F=1;
}
if (digitalRead(8)==1){
F=2;
}
if (digitalRead(10)==1){
F=3;
}
if (digitalRead(12)==1){
F=4;
}
if (digitalRead(7)==1){
P=1;
}
if (digitalRead(9)==1){
P=2;
}
if (digitalRead(11)==1){
P=3;
}
if (digitalRead(13)==1){
P=4;
}
if ((F==1)&&(P==0)){ //Parada del ascensor en el piso 1 cuando está
bajando por el subprograma inicio
digitalWrite(4, LOW);
digitalWrite(5, LOW);
}
if ((F<4)&&(P==4)){ //Subir hacia el piso 4
digitalWrite(4, HIGH);
digitalWrite(5, HIGH);
}
if ((F==4)&&(P==4)){ //Parar en el piso 4
digitalWrite(4, LOW);
digitalWrite(5, LOW);
}
if ((F<3)&&(P==3)){ //Subir hacia el piso 3
digitalWrite(4, HIGH);
digitalWrite(5, HIGH);
}
if ((F>3)&&(P==3)){ //Bajar hacia el piso 3
digitalWrite(4, HIGH);
digitalWrite(5, LOW);
}
https://sites.google.com/site/proyectosbarron/proyectos-electricos/ascensores/ascensor/programa-en-arduino 3/8
16/7/2019 Programa en Arduino - ¡Aterraja, que algo queda!
if ((F==3)&&(P==3)){ //Parar en el piso 3
digitalWrite(4, LOW);
digitalWrite(5, LOW);
}
if ((F<2)&&(P==2)){ //Subir hacia el piso 2
digitalWrite(4, HIGH);
digitalWrite(5, HIGH);
}
if ((F>2)&&(P==2)){ //Bajar hacia el piso 2
digitalWrite(4, HIGH);
digitalWrite(5, LOW);
}
if ((F==2)&&(P==2)){ //Parar en el piso 2
digitalWrite(4, LOW);
digitalWrite(5, LOW);
}
if ((F>1)&&(P==1)){ //Bajar hacia el piso 1
digitalWrite(4, HIGH);
digitalWrite(5, LOW);
}
if ((F==1)&&(P==1)){ //Parar en el piso 1
digitalWrite(4, LOW);
digitalWrite(5, LOW);
}
}
El display de 8 x 8
int F=0;
int P=0;
int indicelinea;
int indiceLED;
https://sites.google.com/site/proyectosbarron/proyectos-electricos/ascensores/ascensor/programa-en-arduino 4/8
16/7/2019 Programa en Arduino - ¡Aterraja, que algo queda!
void Impresion_Linea(int indicelinea, char contenidolinea)
{
digitalWrite(pinCS,LOW);
convertir_byte_a_bits(indicelinea); //Envia el valor de la linea del display
convertir_byte_a_bits(contenidolinea); //Envia el valor de los LEDs de la
// linea del display
digitalWrite(pinCS,HIGH);
}
void puesta_en_marcha()
{
Impresion_Linea(0x09, 0x00); //Tipo de decodi cado :BCD
Impresion_Linea(0x0a, 0x03); //Brillo de los LEDs
Impresion_Linea(0x0b, 0x07); //Cantidad de LEDs por linea :8 LEDs
Impresion_Linea(0x0c, 0x01); //Desconexion del display :0 Modo normal :1
Impresion_Linea(0x0f, 0x00); //Modo de prueba del display :1 Modo EOT
//del display :0
}
void setup() {
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, INPUT);
pinMode(7, INPUT);
pinMode(8, INPUT);
pinMode(9, INPUT);
pinMode(10, INPUT);
pinMode(11, INPUT);
pinMode(12, INPUT);
pinMode(13, INPUT);
pinMode(pinCLK,OUTPUT);
pinMode(pinCS,OUTPUT);
pinMode(pinDIN,OUTPUT);
delay(50);
puesta_en_marcha(); //Puesta en marcha del display 8x8
inicio();
}
void loop(){
if (digitalRead(6)==1){
F=1;
}
if (digitalRead(8)==1){
F=2;
}
if (digitalRead(10)==1){
F=3;
}
https://sites.google.com/site/proyectosbarron/proyectos-electricos/ascensores/ascensor/programa-en-arduino 5/8
16/7/2019 Programa en Arduino - ¡Aterraja, que algo queda!
if (digitalRead(12)==1){
F=4;
}
if (digitalRead(7)==1){
P=1;
}
if (digitalRead(9)==1){
P=2;
}
if (digitalRead(11)==1){
P=3;
}
if (digitalRead(13)==1){
P=4;
}
if ((F==1)&&(P==0)){ //Parada del ascensor en el piso 1 cuando está bajando
por el subprograma inicio
digitalWrite(4, LOW);
digitalWrite(5, LOW);
puesta_en_marcha();//Fotograma UNO
for(indicelinea=1;indicelinea<9;indicelinea++)
{
Impresion_Linea(indicelinea, archivo_fotogramas[2][indicelinea-1]);
}
delay(100); //Tiempo de espera entre fotograma y fotograma
}
if ((F<4)&&(P==4)){ //Subir hacia el piso 4
digitalWrite(4, HIGH);
digitalWrite(5, HIGH);
puesta_en_marcha();//Fotograma subir
for(indicelinea=1;indicelinea<9;indicelinea++)
{
Impresion_Linea(indicelinea, archivo_fotogramas[0][indicelinea-1]);
}
delay(100); //Tiempo de espera entre fotograma y fotograma
}
if ((F==4)&&(P==4)){ //Parar en el piso 4
digitalWrite(4, LOW);
digitalWrite(5, LOW);
puesta_en_marcha();//Fotograma CUATRO
for(indicelinea=1;indicelinea<9;indicelinea++)
{
Impresion_Linea(indicelinea, archivo_fotogramas[5][indicelinea-1]);
}
delay(100); //Tiempo de espera entre fotograma y fotograma
}
if ((F<3)&&(P==3)){ //Subir hacia el piso 3
digitalWrite(4, HIGH);
digitalWrite(5, HIGH);
puesta_en_marcha();//Fotograma subir
for(indicelinea=1;indicelinea<9;indicelinea++)
{
Impresion_Linea(indicelinea, archivo_fotogramas[0][indicelinea-1]);
}
delay(100); //Tiempo de espera entre fotograma y fotograma
https://sites.google.com/site/proyectosbarron/proyectos-electricos/ascensores/ascensor/programa-en-arduino 6/8
16/7/2019 Programa en Arduino - ¡Aterraja, que algo queda!
}
if ((F>3)&&(P==3)){ //Bajar hacia el piso 3
digitalWrite(4, HIGH);
digitalWrite(5, LOW);
puesta_en_marcha();//Fotograma bajar
for(indicelinea=1;indicelinea<9;indicelinea++)
{
Impresion_Linea(indicelinea, archivo_fotogramas[1][indicelinea-1]);
}
delay(100); //Tiempo de espera entre fotograma y fotograma
}
if ((F==3)&&(P==3)){ //Parar en el piso 3
digitalWrite(4, LOW);
digitalWrite(5, LOW);
puesta_en_marcha();//Fotograma TRES
for(indicelinea=1;indicelinea<9;indicelinea++)
{
Impresion_Linea(indicelinea, archivo_fotogramas[4][indicelinea-1]);
}
delay(100); //Tiempo de espera entre fotograma y fotograma
}
if ((F<2)&&(P==2)){ //Subir hacia el piso 2
digitalWrite(4, HIGH);
digitalWrite(5, HIGH);
puesta_en_marcha();//Fotograma subir
for(indicelinea=1;indicelinea<9;indicelinea++)
{
Impresion_Linea(indicelinea, archivo_fotogramas[0][indicelinea-1]);
}
delay(100); //Tiempo de espera entre fotograma y fotograma
}
if ((F>2)&&(P==2)){ //Bajar hacia el piso 2
digitalWrite(4, HIGH);
digitalWrite(5, LOW);
puesta_en_marcha();//Fotograma bajar
for(indicelinea=1;indicelinea<9;indicelinea++)
{
Impresion_Linea(indicelinea, archivo_fotogramas[1][indicelinea-1]);
}
delay(100); //Tiempo de espera entre fotograma y fotograma
}
if ((F==2)&&(P==2)){ //Parar en el piso 2
digitalWrite(4, LOW);
digitalWrite(5, LOW);
puesta_en_marcha();//Fotograma DOS
for(indicelinea=1;indicelinea<9;indicelinea++)
{
Impresion_Linea(indicelinea, archivo_fotogramas[3][indicelinea-1]);
}
delay(100); //Tiempo de espera entre fotograma y fotograma
}
if ((F>1)&&(P==1)){ //Bajar hacia el piso 1
digitalWrite(4, HIGH);
digitalWrite(5, LOW);
puesta_en_marcha();//Fotograma bajar
https://sites.google.com/site/proyectosbarron/proyectos-electricos/ascensores/ascensor/programa-en-arduino 7/8
16/7/2019 Programa en Arduino - ¡Aterraja, que algo queda!
for(indicelinea=1;indicelinea<9;indicelinea++)
{
Impresion_Linea(indicelinea, archivo_fotogramas[1][indicelinea-1]);
}
delay(100); //Tiempo de espera entre fotograma y fotograma
}
if ((F==1)&&(P==1)){ //Parar en el piso 1
digitalWrite(4, LOW);
digitalWrite(5, LOW);
puesta_en_marcha();//Fotograma UNO
for(indicelinea=1;indicelinea<9;indicelinea++)
{
Impresion_Linea(indicelinea, archivo_fotogramas[2][indicelinea-1]);
}
delay(100); //Tiempo de espera entre fotograma y fotograma
}
}
Č
ċ ASCENSOR4PISOS.INO (2K) CÁNDIDO GARCÍA, 16 OCT. … V.5 ď
ċ ASCENSOR4PISOSCONDISP… CÁNDIDO GARCÍA, 7 NOV. 2… V.2 ď
Comentarios
Iniciar sesión | Actividad reciente del sitio | Noti car uso inadecuado | Imprimir página | Con la tecnología de Google Sites
https://sites.google.com/site/proyectosbarron/proyectos-electricos/ascensores/ascensor/programa-en-arduino 8/8