*garden&control*

1 Jul 2009
627
españa
Provincia
huelva
bueno os presento el resultado final de la pantalla he de comentaros que el fragmento del video corresponde al segundo video ya que el primero se grabo en mala calidad ,en este se observa los canales
1º blancos-2º blancos-3ºblancos-4º blancos
el video solo muestra los encendidos y apagados para que veais como juega la luz ........ estan trabajando a un 10% con un trabajo de dimeado de 6 minuto ,en su codigo real el dimeado es de una hora con lo que nio se nota los cambio de enmcendido y apagados .
espero que os guste .
[video=youtube;tcz0pVMYLe4]https://www.youtube.com/watch?v=tcz0pVMYLe4[/video]
 
10 Ago 2009
472
España
Provincia
Madrid (Leganés)
Buah, te ha quedado guapísimo. No se como no te lías con tanto relé.
Muy chulo sí señor.
 

jmcadsl

Miembro Honorífico
17 Ene 2010
1.023
España
Provincia
Madrid
Buen trabajo Medina!!
Ahora a programar y ver la mejor manera de sacara partido a tantas fases!! Te deberías animar a ensayar tormentas!! jajaja seguro que te queda chulo aunque yo siempre he pensado que los pobres peces deben volverse locos!

Salu2!!
 
1 Jul 2009
627
españa
Provincia
huelva
buenas poues la garden&control funciona de maravilla .el echo de activar este post es por que me surge una duda que espero que me ayudeis
he encontrado unas bombitas para dosificar son estas

https://i1040.photobucket.com/albums/b403/guokunli/T19hzmXaJgXXb5ugrb_124132_jpg_310x310.jpg
Estos son los datos
1.5v 200ml/min
3v 400 ml/min
4.5v 600ml/min
A partir de hay no se nota un cambio en el caudal aunque aumentemos la tensión.

Consigue subir agua a mas de un metro y aspirarla aun sin estar cebado el tubo a máximo 74cm.
Seguiremos informando
¿los reles admitirian cortar y encender 1,5v? de ser asi
PHP:
#include <OneWire.h>
#include <Wire.h>   // 
#define DS1307_I2C_ADDRESS 0x68
#define ONE_WIRE_BUS 40//temperatura, pin de entrada
OneWire oneWire(ONE_WIRE_BUS);//temperatura
byte second, minute, hour, dayOfWeek, dayOfMonth, month, year;
int PinBombaI =40;//ventiladores
int Retraso=5000;
// Convierte números normales decimales a BCD (binario decimal codificado)
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);  //¿Necesita cambiar esto si 12 horas am / pm
  *dayOfWeek  = bcdToDec(Wire.receive());
  *dayOfMonth = bcdToDec(Wire.receive());
  *month      = bcdToDec(Wire.receive());
  *year       = bcdToDec(Wire.receive());
}
void setup()
{
pinMode(PinBombaI, OUTPUT);

    byte second, minute, hour, dayOfWeek, dayOfMonth, month, year;
    Wire.begin();
    delay(6000);
}
void loop() {  
  getDateDs1307(&second, &minute, &hour, &dayOfWeek, &dayOfMonth, &month, &year); //Obtenemos la hora
   BoI(second,minute, hour);
   

  if (second < 1)  Retraso=1000; 
else  if (minute < 2)  Retraso=1000;
  else if (hour < 5) Retraso=1000;
  else Retraso=3000;
}
 void BoI(int second,int minutos, int horas,) {
  int BoI;
  int InicioBoI=50400;//segundos del dia 
  int FinBoI=50403;

  int Tiempo;  
  Tiempo=horas*60+minutos*60+second;
  if (Tiempo < InicioBoI ) BoI=0;
  //Amanecer
  if (Tiempo >= InicioBoI && Tiempo <= FinBoI) BoI=(Tiempo,InicioBoI,FinBoI);

  if (Tiempo >= InicioBoI && Tiempo <= FinBoI)//decimos al rele el encendido y apagado//
  {
    digitalWrite(PinBombaI, LOW);   
   

  }
  else
  {
    digitalWrite(PinBombaI, HIGH);   
   

  }
  delay(1000);
}
con este codigo podria controlar segundos ?
 
Última edición:

jmcadsl

Miembro Honorífico
17 Ene 2010
1.023
España
Provincia
Madrid
Hola MEdina.

Los reles te van a cortar o dejar pasar la corriente que le pongas en la entrada (le da igual la que sea),
La pregunta es cómo conseguir esos 1,5v !!!!
Yo cogería los 5v de la salida de Arduino (si las bomba no consumen mucho.....) y luego le pondría unos condensadores para estabilizar y un un diodo zener de 1,5 V 1/2 W, pero ya te digo...depende del consumo de las bombas...

Salu2!
 
1 Jul 2009
627
españa
Provincia
huelva
jorge muy buenas,las bombas las voy hacer trabajar con un trasformador externo de 5v (no arduino) ,el problema me lo encuentro en cambiarle el voltaje a tan poco 1.5v . ¿tienes un esquema del montaje ,para cambiar el voltaje al trasformador ?
sld
 
23 Mar 2006
383
España
Provincia
Rivas Vaciamadrid-Madrid
Igual que podemos alimentar un diodo led con 12v a través de una resistencia limitadora digo yo que haciendo el cálculo se podrá disminuir la tensión a 1,5v no? pero como bien dice Jorge hay que ver lo que consumen esas bombas.
 
3 Abr 2012
686
Beniaján
Provincia
Murcia
o puedes regular un transistor (bd137) para que te baje a 1.5v, no es dificil y es mas estable y seguro que la resistencia limitadora.

un saludo.
 
1 Jul 2009
627
españa
Provincia
huelva
bueno despues de dialogar y del ofrecimiento de la ayuda del compañero alsimu me dispondo a insertar una keypad 4x4 para insertar en el codigo un menu ,para manejo directo y rapido de las funciones del codigo ya que tener que estar modificando para pruevas el codigo se hace un poco coñ....zo esta es la keypad que voy a comprar mejorare en funcionalidad y estetica


esta es la idea alsimu del menu
https://imageshack.us/photo/my-images/843/111fln.png/

Uploaded with ImageShack.us

desde luego me ha quedado tus opciones de tener ON/OFF/AUTO,muy astuto y perpicaz ademas de un gran trabajo
 
27 Jun 2009
127
España
Provincia
Alicante
Pues mira, si te pillas ese teclado yo vendré ha echarle mano a tu código ma o menos cuando te llegue, así podrás empezar ha hacer pruebas.

Enviado desde mi ASUS Transformer Pad TF300T usando Tapatalk 2
 
1 Jul 2009
627
españa
Provincia
huelva
alsimu en el modo "ON"¿que porcentaje de luz tendremos?¿o sera regulable con el teclado desde "0"?
 
27 Jun 2009
127
España
Provincia
Alicante
Yo solo he dejado un máximo, el mismo para todos. La opción que yo realizo es que cuando se ponga en ON se ponga a ese máximo. Pero si tienes alguna otra idea se puede ver.

Enviado desde mi ASUS Transformer Pad TF300T usando Tapatalk 2
 
1 Jul 2009
627
españa
Provincia
huelva
Yo solo he dejado un máximo, el mismo para todos. La opción que yo realizo es que cuando se ponga en ON se ponga a ese máximo. Pero si tienes alguna otra idea se puede ver.

Enviado desde mi ASUS Transformer Pad TF300T usando Tapatalk 2
una buena idea alsimu seria al entrar el modo "0n"empezara desde "0" y poder subir con el teclado
 
27 Jun 2009
127
España
Provincia
Alicante
Pensaré en alguna forma de hacerlo, aunque supongo que no será difícil.

Enviado desde mi ASUS Transformer Pad TF300T usando Tapatalk 2
 
27 Jun 2009
127
España
Provincia
Alicante
Estaba pensando, se puede hacer lo siguiente:

-- Opción 1:
Pones un menú principal desde el que se accede a todas las opciones.

-- Opción 2:
Accedes directamente a cada opción desde el teclado, es decir:
A -> Luces
B -> Temperatura
C -> Fuente
D -> CO2

Luego todavía te quedarían 1,3,7,*,0 y # libres.

Que opinas?
 
1 Jul 2009
627
españa
Provincia
huelva
Estaba pensando, se puede hacer lo siguiente:

-- Opción 1:
Pones un menú principal desde el que se accede a todas las opciones.

-- Opción 2:
Accedes directamente a cada opción desde el teclado, es decir:
A -> Luces
B -> Temperatura
C -> Fuente
D -> CO2
#-> reloj y fecha
Luego todavía te quedarían 1,3,7,*,0 y # libres.

Que opinas?
me parece perfecto alsimu ¿cuando dices (fuente ) es el void Batery?puesto que la fuente 48v se activa con el encendido de los led azules y se apaga igual
 
Arriba