Taller de Arduino (para todos los públicos)

Crustaforo ::  :: 

Ver el tema anterior Ver el tema siguiente Ir abajo

Taller de Arduino (para todos los públicos)

Mensaje por fran1400 el Sáb 8 Oct 2016 - 16:19

Buenas a todos,

Creo este tema para que todos colaboremos y expongamos nuestras dudas sobre arduino.

INTRODUCCION
Yo me ofrezco voluntario a responder todas las preguntas que estén en mi mano. No me considero un experto, pero sí un auto-didacta con ganas de aprender y enseñar. Por supuesto toda la colaboración y participación será bienvenida. Cuantos más seamos mejor.
Actualmente tengo entre manos un proyecto de arduino que he querido hacer yo mismo (código y cableado etc.) para aprender. Aún no lo he acabado y ya estoy comprando un segundo arduino! esto engancha...

Bueno. Al grano que me voy

EPISODIO 1: QUE QUEREMOS?
Pues casi todos los tutoriales, posts, webs, etc que he leído de arduino empiezan por poner una foto y explicar lo que hace el bicho en cuestión.
PUES NO!
Lo primero es preguntarse: Que queremos?
"Buuuuu, fácil!" me diréis... pero no siempre es fácil.

- Yo quiero controlar la temperatura!
- Yo quiero controlar el fotoperiodo!
- Yo quiero controlar el nivel para rellenar!
- Yo quiero controlar la humedad de mi terrario!
- Yo quiero controlar el Ph con la inyección de CO2!
- Yo quiero efecto amanecer y atardecer!

Pues bien, llamadme loco, pero para mí todo es lo mismo!!!
Por mi trabajo tengo contacto diario con lo que llamamos "Lógica de control", y al final todo se reduce a lo mismo.

EPISODIO 2: LÓGICA DE CONTROL

Antes de lanzarnos a comprar cosas o a programar, deberíamos tener claro que es lo que queremos.
Bien, tras la reflexión del episodio anterior, ya sabemos lo que queremos, no lo voy a repetir.
Pues ahora toca coger un papel, y escribir un poco, no hace falta saber programar ni saber siquiera lo que es un arduino. Va a ser fácil!!!

La lógica de control es lo que nosotros programaremos e introduciremos en el cerebro de arduino para que el bicho sepa lo que tiene que hacer. Pero antes, nosotros debemos saberlo y tenerlo escrito en un papel!

Arduino es un cacharro que no para de leer sensores: sensor de temperatura, de ph, de humedad, de nivel, la hora (sí, lo considero un sensor, y ya veréis el por qué...)

Nosotros debemos saber que hacer en función de lo que digan esos sensores.
Hagamos un ejemplo fácil.

Si el SENSOR1 supera el valor de H (High, valor alto) entonces encender el dispositivo A
Si el SENSOR1 baja del valor de L (Low, valor bajo) entonces apagar el dispositivo A

Y ahora lo adaptamos a nuestra aplicación:
-Si llamamos SENSOR1 a Temperatura, H es 27 grados, L es 26 grados y A es un ventilador, tenemos un sistema para evitar que la temperatura no supere los 27 grados.

-Si llamamos SENSOR1 a la Hora, H es las 15:00h, L es las 22:00h y A es una lámpara, tenemos un sistema para controlar el fotoperiodo.

- Si llamamos SENSOR1 al pH, H es 6,9 , L es 6,5 y A es una electroválvula de suministro de CO2, tenemos un sistema para controlar el pH en función del CO2 que inyectemos.

- Si llamamos SENSOR1 a la humedad, H es 85% , L es 80% y A es un ventilador, tenemos un sistema para evitar que la humedad no supere el 85%

También podemos hacer la lógica inversa, es decir, que el dispositivo A se encienda cuando el SENSOR1 baje del valor L y que se apague cuando suba del valor H

- En este caso, si llamamos SENSOR1 a la temperatura, L son 23 grados, H son 24 grados y A es un calentador, tendremos un sistema que evita que la temperatura caiga por debajo de 23 grados.

Como veis las aplicaciones son infinitas, solo se trata de leer, comparar, y actuar en consecuencia.

Ahora, con nuestra lista de cosas que queremos hacer, parámetros a controlar, valores altos y bajos, y los dispositivos que queremos instalar, estamos dispuestos a hacer una compra de material y programar el arduino para que haga lo que acabamos de escribir en nuestro papel.

En el siquiente episodio: materiales necesarios.
Si os parece, empezaremos por lo más básico que es encender y apagar las luces. Os adelanto que casi vale más barato hacerlo con arduino que comprarse un temporizador de "los chinos"...

Saludos!
avatar
fran1400

Mensajes : 80
Localización : Sevilla

Ver perfil de usuario

Volver arriba Ir abajo

Re: Taller de Arduino (para todos los públicos)

Mensaje por fran1400 el Miér 12 Oct 2016 - 18:54

Volvemos a la carga!!!

EPISODIO 3: La placa de Arduino.

Bueno, para empezar queremos controlar las luces de nuestro acuario, para ello lo primero que necesitamos es un Arduino! (y además un reloj y un relé, pero todo a su tiempo)

Pero... Qué arduino?
Pues uno de estos tres:
Arduino NANO v3 (en adelante arduino nano)
Arduino UNO r3 (en adelante arduino uno)
Arduino MEGA 2560 r3 (en adelante arduino mega)

Y como sé cual me conviene?
Pues en función del proyecto que queramos hacer. Pensadlo bien, por pocos euros compráis el de la siguiente gama y siempre podréis ampliar.
Para ayudar a decidir, os pondré las características básicas de cada uno:

Nano:




Tensión de alimentación: 7-12V
Tensión de operación: 5V
Pins de entrada/salida (en adelante I/O de Input/Output): 14
De los cuales con capacidad de modulación por ancho de pulsos (en adelante PWM): 6
Pins de entrada analógica: 8
Corriente por pin I/O: 40mA
Dimensiones y peso: 45x18mm y 5g

Y en estos momentos me pitan los oídos porque escucho desde vuestras casas:
-QUIETOOOO!!!
-Que es todo eso?
-Ni se te ocurra seguir sin explicarlo!!

Yaaa, voy a ello:

Tensión de alimentación: es la tensión (voltios) que acepta nuestro arduino para ser alimentado por los pines GND (negativo) y VIN (positivo) que son los dos pin de abajo a la derecha de la primera foto.

Tensión de operación: Es la tensión a la que operan los pins I/O.
Y que es un pin I/O??
Pues básicamente es un pin que puede ser configurado para que sea una entrada o una salida digital, y por digital se entiende que solo puede adoptar un valor de 1 ó 0, también llamado VERDADERO ó FALSO, o también llamado HIGH ó LOW. Resumiendo: cuando un I/O pin esta leyendo o mandando un 1/VERDADERO/HIGH hay 5 voltios en ese pin.
Cuando un I/O pin esta leyendo o mandando un 0/FALSO/LOW hay 0 voltios en ese pin. (Hay modelos de Arduino que usan 3,3V pero todos los aquí tratados trabajan a 5V)

Pins de entrada/salida (en adelante I/O de Input/Output): Bueno, parece que me adelanté a explicarlo ...  Laughing pasamos al siguiente.

De los cuales con capacidad de modulación por ancho de pulsos (en adelante PWM): PWM o modulación por ancho de pulsos es la capacidad que tiene un pin I/O digital configurado como salida de regular entre 100% (que sería un 1 permanente) o 0% (que sería un 0 permanente).
Para regular, por ejemplo al 50%, el pin se pone por ejemplo durante 500ms a 5V (1) y durante 500ms a 0V (0).
Con esto podemos regular la intensidad de un led o la velocidad de un ventilador, por ejemplo.
Una imagen vale más que mil palabras:


Pins de entrada analógica: Son pins en los que podemos leer valores de forma contínua, que no sean 1 y 0, por ejemplo, la lectura de un sensor de pH, o la lectura de un potenciómetro que usemos para regular la intensidad de luz.

Corriente por pin I/O: Es la intensidad máxima que el pin de salida puede suministrar cuando se encuentra a 5V (1). Esto es importante saberlo, sobre todo cuando la salida esta conectada a un relé cuya bobina consume energía, o directamente a un led, o directamente a un ventilador. OJO con esto: si nos pasamos, podemos quemar la placa de arduino. Más adelante, en cada elemento, trataremos la forma de conectarlo (directamente o no)

Dimensiones y peso:
- Pógame un metro de leche!
+ Se lo envuelvo?
- NO!, me lo voy a llevar rodando!
lol!
Perdón por el chiste malo pero no me podía resistir... jajaja

Bueno seguimos con el UNO y el MEGA:

Arduino UNO:

Tensión de alimentación: 7-12V
Tensión de operación: 5V
Pins de entrada/salida (en adelante I/O de Input/Output): 14
De los cuales con capacidad de modulación por ancho de pulsos (en adelante PWM): 6
Pins de entrada analógica: 6
Corriente por pin I/O: 20mA
Dimensiones y peso: 68,6x53,4mm y 25g

Si os fijáis es igual que el NANO, salvo por las dimensiones y otras cosa que luego comentamos...

Arduino MEGA:

Tensión de alimentación: 7-12V
Tensión de operación: 5V
Pins de entrada/salida (en adelante I/O de Input/Output): 54
De los cuales con capacidad de modulación por ancho de pulsos (en adelante PWM): 16
Pins de entrada analógica: 16
Corriente por pin I/O: 20mA
Dimensiones y peso: 68,6x53,4mm y 25g

Llegados a este punto podemos decidir que placa nos conviene más.
Mis recomendaciones, basadas en experiencias personales son:

NANO vs UNO: Comprad el NANO solo si el tamaño es un asunto que importe, entiendo que en nuestro campo de aplicación poco importa y os recomiendo mejor el UNO, que aunque es de las mismas características (salvo por la corriente por pin, que poco importa) es más grande (mayor comodidad para trabajar con los pins) e incluye una conexión jack de alimentación para que podamos conectar directamente la fuente de ese router viejo que tenemos en un cajón... Además, el nano a veces se suele vender con los pins sueltos, y hay que soldarlos. Yo personalmente tengo el pulso un poco malo, además de que podemos "jod3rlo"  Twisted Evil  si se nos escapa el soldador.


UNO vs MEGA: Pues aquí depende del proyecto que queramos hacer, en función de los dispositivos y lecturas que querámos hacer.
Os recomiendo UNO si: queréis controlar lo básico (temp. y luz) en pocos acuarios sin grandes pretensiones, es decir, con pantalla lcd de 16 dígitos x 2 líneas (sin pantalla color táctil) sin conectarse a internet ni hacer mucho el loco...
Ejemplo de proyectos con UNO: quiero controlar mi gambario del salón. Quiero controlar mi batería de 4 gambarios.
Aquí un ejemplo de pantalla LCD 20x04 (20 dígitos x 4 líneas):


Os recomiendo el MEGA si: queréis controlar más parámetros (niveles para reponer agua, cambios de agua automáticos, atardecer, amanecer, sondas de pH) en uno o más acuarios y/o además queréis conectarlo a internet y/o queréis pantalla LCD táctil.
Ejemplo de proyectos con MEGA: Quiero controlar todos los parámetros posibles de mi plantado. Quiero controlar los niveles, temperaturas, encendidos y apagados independientes de mi batería de 9 gambarios con pantalla táctil.
Aquí un ejemplo con pantalla LCD táctil:


Conclusiones:
Yo me compraría el UNO.
Con una pantalla LCD de 16x02 parecida a la del primer ejemplo o incluso sin pantalla y con pocos elementos más, podremos controlar lo básico de nuestros gambarios/caracolarios/cangrejarios (cuanto bicho sin hueso!!) u otros acuarios/terrarios etc..
Incluso las persianas para que entre luz natural!!! jajajaja
Personalmente, me compré el MEGA con LCD táctil con el fin de cargar algún conocido programa que hay por la red, pero hacen falta conocimientos muy avanzados y sobre todo mucha paciencia para personalizar el proyecto de un marino o un plantado y modificar las mas de 3000 líneas de código... Al final me aburrí y decidí empezar de cero con un UNO y una LCD pequeña y hacerlo todo a mi manera y de acuerdo a mis necesidades. Es más divertido, se ven antes los resultados, y es menos frustrante que buscar y adaptar un programa gigante que ha desarrollado un tercero....

Cuánto nos hemos gastado hoy? En la conocida página que trae las cosas de oriente tenemos hoy:
NANO: 1,88 €
UNO: 2,61 €
MEGA: 5,32 €

En los siguientes episodios:
- Como alimentar nuestro arduino
- El reloj
- El relé

Edito:
Podéis dejar vuestros comentarios en el siguiente post:
Comentarios Taller de Arduino


Última edición por fran1400 el Jue 13 Oct 2016 - 11:46, editado 1 vez (Razón : Se añade referencia al post de comentarios)
avatar
fran1400

Mensajes : 80
Localización : Sevilla

Ver perfil de usuario

Volver arriba Ir abajo

Re: Taller de Arduino (para todos los públicos)

Mensaje por Malagon el Jue 13 Oct 2016 - 11:38

hay un Tema para los comentarios, por favor escribir en él.

Próximos mensajes, incluido este, serán borrados sin avisar.
avatar
Malagon

Mensajes : 875
Localización : Talavera de la Reina

Ver perfil de usuario

Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba

- Temas similares

Crustaforo ::  :: 

 
Permisos de este foro:
No puedes responder a temas en este foro.