Taller de Arduino

  • Iniciador del tema Iniciador del tema jmcadsl
  • Fecha de inicio Fecha de inicio
Estado
Cerrado para nuevas respuestas.
hola pues el tema del reloj ya no me da fallos de compilacion pero no consigo ponerlo en hora, todo me sale a cero
el codigo es este:
#include <Wire.h> //
#define DS1307_I2C_ADDRESS 0x68
#include <LiquidCrystal.h>
// Convierte números normales decimales a BCD (binario decimal codificado)
LiquidCrystal lcd(8, 9, 4 , 5, 6, 7);
byte decToBcd(byte val)
{
return ( (val/10*16) + (val%10) );
}

// Convierte BCD (binario decimal codificado) a números normales decimales
byte bcdToDec(byte val)
{
return ( (val/16*10) + (val%16) );
}

// Parar el DS1307, pero esto tiene el efecto secundario de segundos que se ponen a 0
// probablemente solo quiera usar esto para pruebas.
/*
void stopDs1307()
{
Wire.beginTransmission(DS1307_I2C_ADDRESS);
Wire.send(0);
Wire.send(0x80);
Wire.endTransmission();
}
*/

// 1) Sets the date and time on the ds1307
// 2) Starts the clock
// 3) Sets hour mode to 24 hour clock
// Assumes you're passing in valid numbers
void setDateDs1307(byte second, // 0-59
byte minute, // 0-59
byte hour, // 1-23
byte dayOfWeek, // 1-7
byte dayOfMonth, // 1-28/29/30/31
byte month, // 1-12
byte year) // 0-99
{
Wire.beginTransmission(DS1307_I2C_ADDRESS);
Wire.send(0);
Wire.send(decToBcd(second)); // 0 a bit 7 inicia el reloj
Wire.send(decToBcd(minute));
Wire.send(decToBcd(hour)); // Si usted quiere 12 hora am/pm usted tiene que poner el
// bit 6 (tambien tiene que cambiar readDateDs1307)

Wire.send(decToBcd(dayOfWeek));
Wire.send(decToBcd(dayOfMonth));
Wire.send(decToBcd(month));
Wire.send(decToBcd(year));
Wire.endTransmission();
}

// Establece la fecha y el tiempo del ds1307
void getDateDs1307(byte *second,
byte *minute,
byte *hour,
byte *dayOfWeek,
byte *dayOfMonth,
byte *month,
byte *year)
{
// Resetea el registro puntero
Wire.beginTransmission(DS1307_I2C_ADDRESS);
Wire.send(0);
Wire.endTransmission();

Wire.requestFrom(DS1307_I2C_ADDRESS, 7);

// Alguno de estos necesitan enmascarar porque ciertos bits son bits de control

*second = bcdToDec(Wire.receive() & 0x7f);
*minute = bcdToDec(Wire.receive());
*hour = bcdToDec(Wire.receive() & 0x3f); // Need to change this if 12 hour am/pm
*dayOfWeek = bcdToDec(Wire.receive());
*dayOfMonth = bcdToDec(Wire.receive());
*month = bcdToDec(Wire.receive());
*year = bcdToDec(Wire.receive());
}

void setup()
{
byte second, minute, hour, dayOfWeek, dayOfMonth, month, year;
Wire.begin();
lcd.begin(16, 2);

// Cambie estos valores a los que usted quiere poner su reloj.
// Usted probablemente solo quiere poner su reloj una vez y luego quitar
// la llamada de setDateDs1307.

// si desea poner en hora, active esta parte y luego vuelva a quitarla
second = 00;
minute = 15;
hour = 21;
dayOfWeek = 6;
dayOfMonth = 19;
month = 9;
year = 9;

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

}

void loop()
{
byte second, minute, hour, dayOfWeek, dayOfMonth, month, year;

getDateDs1307(&second, &minute, &hour, &dayOfWeek, &dayOfMonth, &month, &year);

lcd.print("20");
if (year < 10) lcd.print("0");
lcd.print(year, DEC);
lcd.print("/");
if (month < 10) lcd.print("0");
lcd.print(month, DEC);
lcd.print("/");
if (dayOfMonth < 10) lcd.print("0");
lcd.print(dayOfMonth, DEC);
lcd.print(" ");
if (hour < 10) lcd.print("0");
lcd.print(hour, DEC);
lcd.print(":");
if (minute < 10) lcd.print("0");
lcd.print(minute, DEC);
lcd.print(":");
if (second < 10) lcd.print("0");
lcd.print(second, DEC);
lcd.print(" Dia de la semana:");
// Serial.println(dayOfWeek, DEC);
// Esto pone nombre del dia
switch (dayOfWeek)
{
case 1:
lcd.println(" Lunes"); break;
case 2:
lcd.println(" Martes"); break;
case 3:
lcd.println(" Miercoles"); break;
case 4:
lcd.println(" Jueves"); break;
case 5:
lcd.println(" Viernes"); break;
case 6:
lcd.println(" Sabado"); break;
case 7:
lcd.println(" Domingo"); break;
}

delay(1000);
}
 
Bueno amigos, os pongo al día:

Hoy he probado las sondas de temperatura y OK, voy a hacer como con los botones, soldaré una plaquita con la resistencia, y voy a poner conectores RCA, así uso un cable de audio RCA típico para la conexión, pero como no tengo RCA hembra de placa, me he puesto con las peristálticas, las he desmontado y las estoy montando en una caja, integrando dentro la controladora de relés, y conectada al módulo principal por RJ45.

La pena es que tengo dos bombas iguales (las que he podido desmontar e integrar), y una diferente que no se puede desmontar, por lo que la tendré que atornillar encima :-( con lo bonito que quedarían las tres iguales e incluso cuatro.

Bueno, las fotos:

Primero las podéis ver presentadas en la caja, pero el motor está fuera a la derecha


Listo, queda chulo ¿eh?


Vista lateral con el motor montado y probado


Y esta es la unidad central con el lateral preparado para conectar los RJ45:


Como siempre, espero que os guste, y que os sirva leñe :-)
 
PepePotamo, te está quedando de lujo; eres un auténtico manitas. Ahora a depurar para que todo funcione correctamente. Siguenos mostrando tus progresos.

A los demás "cracks": yo también creo que esto se alarga mucho y sin un orden, los nuevos se perderán seguro. 1 voto para estructurar este taller.

Saludos a todos y en especial a jmcadsl por"meternos en estos lios"
 
pepepotamo luego dices com has conectado las peristalticas...

y la temperatura la tengo casi resuelta yupi
 
Última edición:
pepepotamo luego dices com has conectado las peristalticas...

y la temperatura la tengo casi resuelta yupi


Me alegro de que des con la tecla del tema de la temperatura, a veces nos atascamos en una chorrada y no hay quien encuentre el fallo.

Con respecto a las peristálticas no se qué decirte, las conexiones son a la placa de relés, el neutro y la toma de tierra directamente al "enchufe" y le polo lo paso por los relés para poder activar y desactivar. En este caso mejor pasarlo por el lado de "NO" (Normalmente abierto) porque normalmente va a estar desconectado, y solo se conectará unos segungo/minutos al día.

Ahora no creo que lo haga pero estoy pensando poner una opción de configuración para la cantidad (en ml) a la que quiero que lleguen cada peristáltica y en cuanto tiempo, es decir, en vez de poner

P1->50ml (que es como lo voy a hacer en principio)

poner

P1-> 60ml dentro de 7días, y que el arduino calcule el incremento diario para llegar a los 60ml, de forma gradual.

Pero por ahora partiré del sistema base
 
Bueno, pues os voy a poner mis avances, que la noche de ayer fue productiva...

Esta es la plaquita de conexiones que me he fabricado yo con un trozo de placa perforada (hay que hacer una pequeña modificación en los conectores para que encaje bien, pero no me llevó mas de 10 minutos). Aqui es donde voy a ir soldando todo lo que se necesita.

Por la parte trasera se ve la cantidad de estaño que desaprovecho, pero para mi es lo más comodo.


Pinchado en el arduino y en su ubicación final con los conectores a placa de reles, reloj y pantalla mas alimentación y usb.


Aspecto final colocado en su sitio en el mueble. Las peristalticas todavia no las tengo conectadas a falta de otra plaquita de reles que tengo pedida y otra peristaltica más. Creo que finalmente pondré 3 y después ya veré el uso que les doy.


Y la pantallita con la información (todavía tengo que hacerme con alguna cajita y ver el tema de los botones que como Pepepotamo pondré tres.


Como veis he utilizado conectores rca para todos los cacharros.
Tambien tengo pensado pedir otro arduino y dejarlo programado por si en algún momento este peta simplemente cambiar uno por otro.

Venga esas ideas de todos para ir mejorando los artilugios.

Menuda patata el buzzer que venía con el kit, practicamente no se escucha, y finalmente lo he puesto sin resistencia, pero no veo la luz.
 
Bueno, pues os voy a poner mis avances, que la noche de ayer fue productiva...

Esta es la plaquita de conexiones que me he fabricado yo con un trozo de placa perforada (hay que hacer una pequeña modificación en los conectores para que encaje bien, pero no me llevó mas de 10 minutos). Aqui es donde voy a ir soldando todo lo que se necesita.
Por la parte trasera se ve la cantidad de estaño que desaprovecho, pero para mi es lo más comodo.

Por eso me gustan más las placas que tienen tiras que comunican líneas enteras en vez de esas que tienen cada taladrito aislado. Pero te ha quedado muy bien, mejor que sobre que no que falte ;-)

Pinchado en el arduino y en su ubicación final con los conectores a placa de reles, reloj y pantalla mas alimentación y usb.

Aspecto final colocado en su sitio en el mueble. Las peristalticas todavia no las tengo conectadas a falta de otra plaquita de reles que tengo pedida y otra peristaltica más. Creo que finalmente pondré 3 y después ya veré el uso que les doy.

Si vas a aditar los "balanceados" de Angel Morales, te hacen falta 3 (ese es mi caso). Te han quedado genial las peristálticas, super bien integradas en el conjunto

Y la pantallita con la información (todavía tengo que hacerme con alguna cajita y ver el tema de los botones que como Pepepotamo pondré tres.

Podrías poner la LCD y los botones en una cajita, y comunicarlo con la unidad central por RJ45 que como tienes 8 hilos...
2hilos para +5 y gnd
2 para la LCD
3 para los botones
y te sobra uno

Como veis he utilizado conectores rca para todos los cacharros.
Tambien tengo pensado pedir otro arduino y dejarlo programado por si en algún momento este peta simplemente cambiar uno por otro.

Venga esas ideas de todos para ir mejorando los artilugios.

Menuda patata el buzzer que venía con el kit, practicamente no se escucha, y finalmente lo he puesto sin resistencia, pero no veo la luz.

Pues yo también estoy pensando pedirme otro Arduino, porque me da mucha pereza tener que estar trayendo la caja al ordenador para cambiar y probar cualquier cosa, lo dejaría de entorno de pruebas, y en todo caso ya le buscaría cualquier otro uso en el futuro.
 
Si vas a aditar los "balanceados" de Angel Morales, te hacen falta 3 (ese es mi caso). Te han quedado genial las peristálticas, super bien integradas en el conjunto.

Perdona mi ignorancia... que son los balanceados de Angel Morales. Entonces he hecho bien en pedir la tercera. Por algun sitio ley 1, 2, 3 y pensé por tres aunque solo utilices dos.

Lo de el RJ45, tenía mis dudas pero me las acabas de quitar todas, voy a cojer un par de metros y me los llevo para casa y esta noche a soldar.
 
Perdona mi ignorancia... que son los balanceados de Angel Morales. Entonces he hecho bien en pedir la tercera. Por algun sitio ley 1, 2, 3 y pensé por tres aunque solo utilices dos.

Lo de el RJ45, tenía mis dudas pero me las acabas de quitar todas, voy a cojer un par de metros y me los llevo para casa y esta noche a soldar.

Jeje los aditivos balanceados de Angel Morales son unos "potingues" que te haces tú mismo partiendo de productos químicos de laboratorio o farmacia, y que te salen muchísimo más baratos que los aditivos comerciales. Busca en el foro y encontrarás todos los detalles.
Sirven para mantener el nivel de Ca Mg Str, etc y maximizar el crecimiento de los corales.
 
Ya me he emezado a informar... lo veo un poco lioso como decidir cuantos ml de solución 1, 2 y 3 pones a la semana cada 100 litros??? En este caso yo tendré 100 o 120 litros aprox. (pequeñito).

10ml solucion 1
25ml solucion 2
10ml solucion 3
por cada 100 litros, esto son a la semana?
 
Efectivamente, esas son las medias por las que tienes que empezar, y luego dependiendo de las necesidades de tu acuerio, lo mismo tienes que aumentarlas o disminuirlas. Pero siempre tienes que respetar la proporcion 1 - 2,5 - 1
 
Muchas gracias Luciano, cada dia aprendo algo nuevo, ahora a ver si un amigo que tengo farmaceutico me puede conseguir toda esa quimica...jejeje
 
hola
primero ya leeo la temperatura y el reloj en marcha OLE

he visto esta web para hacer caracteres especiales. muy buena y simple jeje
 
hola compis, me quedo soprendido de lo que haceis.yo quiero uno desos jejejee, tengo munchas dudas pero primero expongo mis necesidades y ya me direis, quiero que se encienda la luz progresiva con balastros electronicos regulables,bombas paraque se conecten progresivo vamos lo mismo que la luz y si se puede poner un controlador de kh . ya me contareis y gracias por escucharme.
 
hola antoñasco yo lo unico que te puedo decir es que las bombas (querrás hacer olas) tiene que se con bombas a 12v y electronicas que valen una pasta.
lo demas ni idea.
 
hola jmcadsl:
en que post colgaste los archivos de tu arduino?

esq voy por el 18 y ya no tengo mas ganas de buscar.... esto hay que solucionarlo.... estaria bien agrupar tus avances en el post 1
 
yo no voy por ningun post antes de hacer algo me informo para no dar palos de ciego pero estoy viendo lo de las bombas y creo que no hace falta que sean de 12 v ya contare ,pero lo de las luces ?
 
hola jmcadsl:
en que post colgaste los archivos de tu arduino?

esq voy por el 18 y ya no tengo mas ganas de buscar.... esto hay que solucionarlo.... estaria bien agrupar tus avances en el post 1

Buenas.... pues la verdad es que yo tampoco se en que post esta colgado el código.
Hoy en he enviado otro mensaje a los administradores para ver si nos crean unos subforos, si la cosa sigue igual la semana que viene voy a colgar toda la info en mi Blog y le incluiré un foro para que podamos allí compartir todas nuestras experiencias , aunque tenga que ser paralelamente a este gran foro....


antoñaso....lo de las luces no hay problema, hay mucha gente funcionando con T5 + reactancias dimeables 0-10v solo hay que hacer un circuito amplificador paralelo, yo no lo he hecho puesto que yo tengo leds y es diferente, pero poder se puede.
En cuanto a las bombas lo que puedes hacer es apagar encender correlativamente varias bombas pero aumentar o reducir el giro ?¿?¿?¿ no lo he visto por ningun lado....
 
Estado
Cerrado para nuevas respuestas.
Atrás
Arriba