Facebook Twitter Google +1     Admin





Who the Hell...?!

motagirl2, la culpable de todo esto

¿De qué va esto?

Temas



¿Más cosas interesantes?

Elementos compartidos de motagirl2


Google



Quiero estar al dia!

- Subscribirme usando mi agregador de noticias ^^
- No, gracias, prefiero recibir un mail cuando haya nuevos artículos ;)

¿Dónde está mota?


En Anobii
En DeviantArt
En Facebook
En Flickr
En Instagram
En LastFM
En Lomography
En Tumblr
En Twitter
En YouTube


Automatizacion: Control de una puerta de garaje con Arduino (DIY)

(Antes de nada, los credits: Mi grupo éramos Héctor, Aitor y yo misma =^_^=)

El pasado jueves estuvimos en clase de Automatización jugando con Arduino. ¿Qué es Arduino? Arduino es,copypasteando de la wikipedia, una plataforma de hardware de fuente abierta basada en una sencilla placa con entradas y salidas (E/S), analógicas y digitales, y en un entorno de desarrollo que implementa el lenguaje Processing/Wiring. Está basado en el procesador Atmega8, un chip sencillo y de bajo coste que permite el desarrollo de múltiples diseños. Hay más info y múltiples ejemplos en su web.

Tengo que decir que es la primera vez que trabajaba con algo así, y que me ha encantado la experiencia. ¿Por que? Porque, para empezar, es tremendamente sencillo de utilizar: Sólo hay que escribir el código en C un poco modificado, enchufar la placa al pc por usb, volcarle el programa, montar el circuito y ale, a correr. Pega: necesitas una placa, pero rondan los 30 euros (visto lo visto, no es tanto); aproximadamente la mitad si montas los componentes por separado (aunque te sale una placa más grande)

Concretamente, el modelo que hemos utilizado en clase ha sido una Arduino Diecimila, que aquí podeis ver en mi manita:

Arduino Diecimila

(haciendo clic en la imagen podeis acceder a ella en flickr, le he puesto unas cuantas notas explicando más o menos qué es cada cosa)

Al principio, el profesor nos sugirió que pensáramos nosotros un posible uso de la placa para escribir el código (sin circuito). Y me costó mucho, muchísimo pensar algo xD Pero cuando empezamos a utilizarla "fisicamente"... miles de ideas vinieron a mi ^^ Y eso da gustito :) (Aquí es cuando inserto un "gracias al señor mapache", por pasarme enlaces interesante con ejemplos, como este o este)

En esta práctica, la idea era diseñar e implementar un sistema de control para una puerta de garaje. En nuestro sistema, tenemos un botón para abrir la puerta, otro para cerrarla y además un detector de presencia, que para no montar más lio de cables, sustituimos/simulamos con un tercer botón. Además, en la puerta hay conectados dos finales de carrera, para indicar si la puerta está cerrada o abierta completamente. Se usan, además, dos relés para abrir y cerrar, y unas cuántas resistencias para no quemar nada (y mira que nos gusta xD) Bueno, y por supuesto, la puerta del garaje, el motor, el piñon-cremallera.... también eran bastante necesarios jaja.

O sea:

  • Una placa de pruebas de laboratorio.
  • Una fuente de alimentación a 7,5 V. para alimentar el motor de la puerta de garaje.
  • Dos relés de placa de circuito impreso de 5V.
  • Una placa Arduino.
  • Un cable USB para conectar y alimentar la placa Arduino a través del PC.
  • Tres pulsadores.
  • Cinco resistencias de 2K2 ohmios.
  • Cables de conexión.
  • Multímetro.

Este es el esquema de conexión de las entradas:

Conexión entradas

Y este es el esquema de conexión de las salidas:

 

Conexion Salidas

Y aquí, podeis verlo todo montadito (slalvo la puerta con su motor y finales de carrera):

Circuito montado


Y para acabar, este es el código. Tengo que decir que tardé exactamente 10 minutos en diseñarlo y escribirlo, más otros 5 de "solución de minibugs" xD Y además, se autoexplica a sí mismo:

//Entradas
int PulsadorVerde = 3;
int PulsadorRojo = 4;
int PulsadorPresencia = 5;
int FinCarrera_Abierto = 6;
int FinCarrera_Cerrado = 7;

//Salidas
int Rele_Abrir = 12;
int Rele_Cerrar = 13;


void setup (void) {
pinMode(PulsadorVerde, INPUT);
pinMode(PulsadorRojo, INPUT);
pinMode(PulsadorPresencia, INPUT);
pinMode(FinCarrera_Abierto, INPUT);
pinMode(FinCarrera_Cerrado, INPUT);
pinMode(Rele_Abrir, OUTPUT);
pinMode(Rele_Cerrar, OUTPUT);
}



void loop (void) {

if (digitalRead (PulsadorRojo) == HIGH) {
while ((digitalRead(PulsadorPresencia) == LOW) && (digitalRead(FinCarrera_Cerrado) == HIGH)&& (digitalRead (PulsadorVerde) == LOW)){
// Al pulsar el rojo, mientras no hay presencia, no se pulse el verde y no se ha cerrado

digitalWrite (Rele_Abrir, LOW);
delay (500);
digitalWrite (Rele_Cerrar, HIGH);
}
}

delay (100);

if (digitalRead (PulsadorVerde) == HIGH){
while ((digitalRead(FinCarrera_Abierto) == HIGH) && (digitalRead (PulsadorRojo) == LOW)){
//Al pulsar el verde,mientras no se pulse el rojo y no se haya abierto
digitalWrite (Rele_Cerrar , LOW);
delay (500);
digitalWrite (Rele_Abrir, HIGH);
}
}

//Estado de reposo , no hay nada pulsado, o hay presencia
digitalWrite (Rele_Abrir, LOW); //hay presencia, se corta la energía al motor
digitalWrite (Rele_Cerrar, LOW);
delay (100);

}

 

Sencillo, verdad? :)

El código se escribe en un software especial para esto, que se puede descargar desde la propia página de arduino y corre sobre Windows, Mac y Linux. Este software te informa de si tu código es o no correcto, te permite pasarlo a la placa, enviarle órdenes y seguro que hace más cosas. Para pasar el código a la placa, simplemente se instalan los drivers que van con el software, se conecta la placa por usb al pc, se elige el puerto correcto (en mi caso, el COM4) y le dices "alah, vuélcalo" . Y a correr!

Cosa graciosa: el programa "inicial - por defecto" que lleva la placa es simplemente apagar y encender el LED que lleva incorporado. Pero lo hace a una velocidad bastante graciosa y suena como cuando se cocinan palomitas xD

Como bonus-colofón final, el video del artilugio funcionando (Dirigido por Hector, filmado por Aitor, y las manos que aparecen son mías XD)

Seguro que me he dejado algo por explicar/contar/agujeros de conocimiento. Si se os ocurre algo, preguntad en los comments, que para eso están =^_^=


 

Actualizado: Nuevo video, made by Héctor:

 

 

Perpetrado por MotaGirl
19/04/2008 13:49 # id #. Tech/Geek/Craft

Comentarios » Ir a formulario

motagirl

gravatar.comPerpetrado por motagirl2

parece que hay problemas con el embed de daily motion -_-
Haced clic directamente al enlace u_u



¿Cuándo? 19/04/2008 13:57.


gravatar.comPerpetrado por Lord_Kote

Asi que eso es Arduino!!! lo había leido alguna vez, pero parecía tan complicado que me daba perrería buscar info.

Y una pregunta:
Las resistencias para que sirven?
nunca las he entendido del todo :D



¿Cuándo? 19/04/2008 19:12.


gravatar.comPerpetrado por Taxis

Felicidades por un trabajo bien hecho ;)



¿Cuándo? 20/04/2008 18:49.


gravatar.comPerpetrado por sonsomar

A tí te parecerá sencillo pero a mí me parece imposible :p



¿Cuándo? 21/04/2008 00:09.


gravatar.comPerpetrado por Mr. Ohm

Interesantísimo artículo

Muchas gracias por compartirlo

saludos



¿Cuándo? 24/06/2008 21:52.


gravatar.comPerpetrado por jdm

Una clse magistral!! ole oleeee



¿Cuándo? 22/08/2008 18:10.


Añadir un comentario



No será mostrado.





Artículos anteriores

Blog creado con Blogia. Esta web utiliza cookies para adaptarse a tus preferencias y analítica web.
Blogia apoya a la Fundación Josep Carreras.

Contrato Coloriuris