Taller de Arduino - MaevaReef - jmerino

  • Iniciador del tema Iniciador del tema jmerino
  • Fecha de inicio Fecha de inicio
Registrado
12 Sep 2010
Mensajes
445
Ubicación
España
Provincia
Barcelona (Sabadell)
Quiero dejar claro, que yo no he inventado ni creado nada, me he limitado a seguir los avances del foro principal creado por jmcadsl pongo el link porque es de obligada lectura
Link Post principal Arduino

Mi única intención con este post, es ordenar lo que yo he hecho para que quien se quiera adentrar en este mundillo lo tenga mas facil.

Hola a todos, en este post pretento explicar los avances que he conseguido con el Arduino UNO, lo he dividido en cuatro mensajes para ir colocando como sigue:

1 - Este mensaje, explicación y detalles finales (fotos)
2 - Todo lo referente a componentes necesarios (electrónica)
3 - Codigo de las diferentes funciones creadas
4 - Conclusiones de las modificaciones efectuadas

Agradecimientos a jmcadsl por meterme de lleno en este tema y a todos los que hemos seguido con el intercambio de opiniones/experiencias en el post principal que es de obligada lectura y participacion para todos los interesados en este micromundo.

Foto del arduino, para que todos sepamos de lo que hablamos:
[TodoMarino.com] Taller de Arduino - MaevaReef - jmerino

Se pueden encontrar kits en ebay por menos de 30€ o el trasto solo por las tiendas de electrónica por unos 23€.

Foto con 2 de las 3 peristalticas de la regleta de conexiones y donde está incorporado el arduino.
[TodoMarino.com] Taller de Arduino - MaevaReef - jmerino


Pineado que he utilizado para que luego se entienda bien el código:
[TodoMarino.com] Taller de Arduino - MaevaReef - jmerino


Como podeis ver no me queda ningún pin libre, por lo que para nuevas funcionalidades tendré que pensar en el arduino Mega que ya tengo por casa. Lo bueno es que el Mega respeta el conexionado del Duemilenove y UNO por lo que todo lo que hay con el Mega funciona exactamente igual.
 
Última edición:
Componentes que he necesitado

Aqui iré detallandos los componentes electrónicos, resistencias y demás que he utilizado en el projecto.

Listadito de componentes que he necesitado:

Modulo del reloj:
Este módulo es importante porque lo necesitamos para controlar el tiempo que transcurre entre una acción u otra y es en el que nos basaremos para las ejecuciones de código.

[TodoMarino.com] Taller de Arduino - MaevaReef - jmerino

Conexioado al Arduino:
[TodoMarino.com] Taller de Arduino - MaevaReef - jmerino



Sondas de Temperatura:
He fabricado 3 con una resistencia de 4,7k y 3 DS1820
Cableado de RCA, Termoretractil y cola de neopreno para el aislamiento.

[TodoMarino.com] Taller de Arduino - MaevaReef - jmerino

Conexioado al Arduino:
[TodoMarino.com] Taller de Arduino - MaevaReef - jmerino


Pantalla LCD:
en mi caso 4x20 Blanco sobre azul con interface serial (no la recomiendo)
Me ha dado muchos quebraderos de cabeza al no poder utilizar la libreria SLCD, recomiendo alguna que haga uso de esta librería porque se agilizan las cosas.
Hoy compraría una de Sparkfun seguro que no dan problemas con las librerias.
Enlace Sparkfun
Fotos de la información final que muestro en pantalla.....La fecha/hora/nombre_reef cambian cada 20 segundos...
Creo que se puede apreciar bien, muestro temperatura de Urna, Sump y Exterior.... Fecha/hora/Nombre ... PH (Pruebas), ORP (despues...), estado de los 4 reles....
1. Bomba de retorno activada (OFF, RET) - Controlada por boya en la urna principal para que no rebose.
2. Calentador (OFF, CAL) - Controlado por la sonda de temperatura del Sump.
3. Luz Sump (OFF, LUZ) - Controlado por menu de configuración encendido-apagado.
4. Reposicion (MIN, MED, MAX, ERR) - Controlado por 2 boyas de nivel en el sump, repongo un máximo de 8 veces al días durante 4 segundos. (mi acuario es muy pequeñito).
[TodoMarino.com] Taller de Arduino - MaevaReef - jmerino

[TodoMarino.com] Taller de Arduino - MaevaReef - jmerino

[TodoMarino.com] Taller de Arduino - MaevaReef - jmerino


Botones Arriba/Abajo/MenuOK:
1k, 10k, 3.3k para los botones (utilizo tres botones en un pin analógico, por eso las resistencias)
Cable negro grueso = Positivo
Cable negro fino = Negativo
Cable naranja = Pin analógico del Arduino
[TodoMarino.com] Taller de Arduino - MaevaReef - jmerino


Placa de 4 reles:
Será la encargada de activar/desactivar las diferentes bombas/calentador/luz/bomba reposición en mi caso.
Consta de 6 cables:
3, 4, 5 y 6 a respectivos pines digitales del Arduino
1 y 2 para la alimentación a 5v. Yo los alimento directamente de la salida del Arduino si problemas.

[TodoMarino.com] Taller de Arduino - MaevaReef - jmerino


Peristalticas:
Yo me decidi por comprar 3 peristalticas a las que todavia no se que uso les daré, pero de momento las he configurado y están listas para su uso.
Para conectarlas he utilizado esquema que está en el hilo principal, lo buscaré y lo pondré aqui para que sea mas ágil.
Se alimentan directamente del Arduino por lo que se simplifican bastante las conexiones.

[TodoMarino.com] Taller de Arduino - MaevaReef - jmerino

Conexión al Arduino:
[TodoMarino.com] Taller de Arduino - MaevaReef - jmerino

Yo no he utilizado la resistencia que indica en la imagen porque con esta no funcionaba.

Boyas de nivel:
Las boyas de nivel son para el OTA por lo que en mi caso eran el motivo principal por el que montar Arduino para ahorrarme trabajo. He puesto varias con diferentes usos, los iremos detallando mas adelante (espero). Yo tengo de dos tipos, las del enlace son unas de ellas y personalmente me han dado mejor resultado porque el cable que traen es mas largo y las soldaduras quedan fuera del agua. Esto último me dio problemas con el termoretractil y el agua marina, supongo que no estaban bien selladas, pero con estas boyas el problema desaparece.

[TodoMarino.com] Taller de Arduino - MaevaReef - jmerino


Placa para PH/ORP:
Para la lectura del PH estoy utilizando una placa amplificadora que compre a Phidgets exactamente el modelo 1130, no recuerdo el precio pero era bastante cara, tiene un pequeño switch para la lectura del ORP, pero hay que cambiar tambien la sonda, por lo que de momento me basaré en leer el PH, de momento no he conseguido lecturas buenas.
Enlace Phidgets
Yo lo compre exactamente aqui:

[TodoMarino.com] Taller de Arduino - MaevaReef - jmerino


Sonda PH
Pues ya voy por la segunda sonda, las dos las he comprado al mismo vendedor, por lo que espero que la segunda salga mejor. La primera no iba muy fina y un día dejo de dar lecturas, como no sabía de donde venía el problema, me decidí a comprar otro modelo que es el que estoy probando ahora y liquido de calibración.
Ya puedo decir que está probada y funciona muy bien. Al calibrarla no he tenido ni que rectificar valores. Está perfectamente calibrada y obtengo valores correctos (para mi).

[TodoMarino.com] Taller de Arduino - MaevaReef - jmerino


Que mas?????
 
Última edición:
Codigo fuente (funciones que utilizo)

Aqui ire colocando porciones de código o funciones que estoy utilizando en mi projecto

Lo primero, las librerias
#include <avr/io.h>
#include <avr/wdt.h>
#include <stdlib.h>
#include <EEPROM.h>
#include <Wire.h> // Esta es la libreria de comunicacion I2C
#include <OneWire.h> //temperatura
#include <DallasTemperature.h> //temperatura
#include <pitches.h> //Sonido

Lo segundo, las variables para los pines entrada/salida de arduino
//Pines Digitales
int boya_urna = 2; //Boya urna
int boya_sump_max = 3; //Boya nivel maximo de agua en sump
int boya_sump_min = 4; //Boya nivel minimo de agua en sump
int boya_repo = 5; //Boya deposito reposición
//Tenperatura en pin 6
int altavoz = 7; //Buzzer - Altavoz
int rele1 = 8; //Rele bomba retorno
int rele2 = 9; //Rele calentador
int rele3 = 10; //Rele luz sump
int rele4 = 11; //Rele relleno

int peristaltica1 = 12; //Peristaltica1 pin 12 digital
int peristaltica2 = 14; //Peristaltica2 pin 0 analogico convertido a digital
int peristaltica3 = 13; //Peristaltica3 pin 13 digital

//Pines Analogicos
//Bomba peristaltica3 en pin 0
int boton = 1; //Botones 1, 2 y 3
int sonda_ph = 2; //Sonda PH
int sonda_orp = 3; //Sonda ORP
//pin 4 ocupado reloj
//pin 5 ocupado reloj

El momento del setup es importante, se puede ver que la porcion de código de poner en hora está comentada, la he dejado porque creo que se atrasa algo el reloj.

//Realizamos el setup de todos los componentes
void setup(){
wdt_disable(); //Watchdog
Wire.begin();
sensors.begin();//Temperatura
Serial.begin(9600);

LCD_Reset(1);

pinMode (boya_urna, INPUT); //Boya Urna
pinMode (boya_sump_min, INPUT); //Boya Relleno nivel máximo
pinMode (boya_sump_max, INPUT); //Boya Relleno nivel mínimo
pinMode (boya_repo, INPUT); //Boya deposito de reposición
pinMode (altavoz, OUTPUT); //Altavoz
pinMode (rele1, OUTPUT); //Rele 1, Bomba de retorno
pinMode (rele2, OUTPUT); //Rele 2, Calentador
pinMode (rele3, OUTPUT); //Rele 3, Luz sump
pinMode (rele4, OUTPUT); //Rele 4, Relleno
pinMode (peristaltica1, OUTPUT); //Rele peristaltica1
pinMode (peristaltica2, OUTPUT); //Rele peristaltica2
pinMode (peristaltica3, OUTPUT); //Rele peristaltica3
pinMode (sonda_ph, INPUT); //Sonda PH
pinMode (boton, INPUT); //Pin de botones

/*
// la primera vez debemos poner en hora, active esta parte y luego vuelva a quitarla
second = 00;
minute = 03;
hour = 23;
dayOfWeek = 3;
dayOfMonth = 30;
month = 11;
year = 10;

setDateDs1307(second, minute, hour, dayOfWeek, dayOfMonth, month, year);
*/

//EEPROM.write(luz_on, 0);
//EEPROM.write(luz_off, 0);
wdt_enable(WDTO_8S); //Watchdog
}
 
Última edición:
Cableado y funcionamiento

Aqui iré explicando el funcionamiento de la diferentes partes y las conclusiones

Primero unas fotitos de la placa que fabriqué para hacer todas las conexiones y soldaduras, espero que se vea mas o menos lo que intento con ella:

Esta es la parte de abajo, la que pega contra el arduino, recorté un trozo de baquelita perforada y le soldé los pines de conexionado rápido al arduino, de modo que si se fastidia el bicho, poder cambiarlo rápidamente (tengo otro programado para el posible cambio a modo de backup).
[TodoMarino.com] Taller de Arduino - MaevaReef - jmerino

La parte de los cablecitos la tenemos aqui:
[TodoMarino.com] Taller de Arduino - MaevaReef - jmerino

Desde aqui, sale todo el cableado a los conectores rca de las sondas de temperatura y boyas de nivel. Se aprecian conectores hembra de pines porque la placa de reles, la pantalla y las peristalticas, las conecto con estos pines.
 
Última edición:
gracias compi esto es lo que necesitamos los que estamos pez en este tema.
ire siguiendo tus pasos para realizar el controlador igual que el tuyo.
por cierto unos esquemas de los cablecitos vendrian de perlas... jajaja

un saludo
 
Poco a poco irémos recopilando cositas para que sea lo mas sencillo posible. Lo malo es que no tengo todo documentado, pero lo voy a intentar documentar para quien le pueda ayudar.

Saludos y gracias
 
Compi te estas saliendo, se agradece muchísimo tu trabajo. De esta manera va quedando todo clarísimo. De verdad muchas gracias.
Por cierto que pantalla recomiendas? ya que la que la que as puesto monte ha dado buen resultado.
 
Última edición:
Actualizado en post principal el tema de la pantalla.
 
Cualquiera de las serial 16x2 estan bien, el tema del color ya va a gustos.
 
hola compañero yo tengo todo todo pero hando mas perdido que un pez en un estanque jajajajaj e hecho varias pruevas pero no tengo ni pajolera idea el caso es que cargo las muestras que lleva el arduino y funcionan a la primera pero si pruevo con archivos vajados que se suponen que lo llevan todo solo a falta de cambiar alguna cosilla a tu conbenienza me dan todos error
pufff
habra algun compañero que me ayude a carga estos programitas jajajajajaj
 
Que osado!!! Jajaja. Postrar en un post que lleva un año y medio parado.

Que componentes tienes. A ver si te podemos ayudar.
 
buenas lleva tiempo parado pero bueno dura y dura como duracel jajaja
bueno compre a un compañero del foro un arduino mega 2560 con sus placa de 8 reles las bollas y 2 sensores de temperatura pero el compañero lo tenia montado en un taper de esos de plastico y dificil de sacar sin desconctarlo y lo desmonte para montarlo en el cuadro de mandos que tengo yo pero ya no a buelto a arrancar asi que tendre que enpezar de 0 que listo soy verdad
se me olvidaba la pamtalla es una paralelo LCD12864R solo pidiria el programa para reinstalarlo y despues yo poco a poco pues ir jugando con el
mi lista
arduino mega 2560 r3
3 fuentes dimiables marwel
2 sensores de tenperatura
2 bollas de nivel de agua
placa reles de 8 reles
saludos
 
Última edición:
bueno para que te hagas una idea ya que mi ingles como que no este es uno de los errores que meda cuando cargo las librerias le doy a verificar y compilar


salva_reef:91: error: 'OneWire' does not name a type
salva_reef:92: error: 'DallasTemperature' does not name a type
salva_reef:93: error: 'DeviceAddress' does not name a type
sketch_jun15a.cpp: In function 'void IniciarTemperaturas()':
salva_reef:334: error: 'sensors' was not declared in this scope
salva_reef:339: error: 'TempMarino' was not declared in this scope
salva_reef:340: error: 'TempPantallaLeds' was not declared in this scope
sketch_jun15a.cpp: In function 'void MirarTemperaturas()':
salva_reef:358: error: 'sensors' was not declared in this scope
salva_reef:362: error: 'TempMarino' was not declared in this scope
salva_reef:363: error: 'TempPantallaLeds' was not declared in this scope
esto le sale a un pinpollo como yo y te quedas con la voca abierta sinsaber que hacer jajajjaja
saludos
 
Pero has declarado algo? xDDDD

De todas formas Ábrete un hilo con tu proyecto, que este es el de jMerino

Enviado desde mi Nexus S usando Tapatalk 2
 
Atrás
Arriba