Go Down

Topic: Proyecto incubadora huevos gallina (Read 11 times) previous topic - next topic

barkalez


Oye no te imgainas lo pequeño que es el servo, yo tengo de esos, ¿te servirá?


Mientras me haga girar 1,5 kg entorno a unos rodamientos.... por cierto sabes donde venden rodamientos?

ajtorres

Saludos Amigos....

Tengo la misma inquietud que a9965 ya que yo también tengo 2 servos iguales a esos y dudo mucho de esos "2Kg de torque", por otro lado ¿ese sensor de temp/hum no es un DHT11?

barkalez


Saludos Amigos....

Tengo la misma inquietud que a9965 ya que yo también tengo 2 servos iguales a esos y dudo mucho de esos "2Kg de torque", por otro lado ¿ese sensor de temp/hum no es un DHT11?


Tiene toda la pinta

barkalez

Estoy desarrollando el diagrama de flujo para el programa que debo de hacer y me encuentro con varios muros.

He comprado un RELOJ DS1307 y quiero que se comunique con el Arduino UNO en I2C.
Esto lo hago por si algún día se me apaga el Arduino que no me empieze el ciclo de incubación desde el día 0 y lo haga desde el momento en el que se quedó sin energía.

Está claro que el RELOJ DS1307 se integra en una placa con una pila para ser autónomo.

Mi problema es que se muy poco de I2C, mas o menos se que tienes que cargar la librería .wire y empezar la transmisión, y tienes que ir al datasheet para ver como se comunica. Pero vamos por partes, en el diagrama de flujo lo primero que haga el programa es comprobar si antes ha dejado un ciclo por la mitad y si ha sido así que inicie desde ese momento.

Yo no se como conseguir que el arduino reconozca si se ha quedado a medias antes o no. Lo único que se me ocurre es que el programa sea especifico para una fecha de inicio y si no es esa fecha que reste los días que le manda el reloj y empieze desde ese día.

Es decir si lo pongo a funcionar el 11 de junio del 2012 y cuando inicia no es ese día sino el 15 de junio del 2012 pues que se vaya directamente a ese día.

Si se os ocurre algo mas facil me lo decís.




barkalez

Hola a todos,

Tengo buenas y malas noticias:

Me ha llegado el reloj DS1307 en cuestión de 4 días desde china, madre mia, la mala noticia que me ha costado dios y ayuda comunicarme con él, me daba fallo al compilarlo porque las librerías de wire.h no son compatibles con Arduino 1.0 y si bajo de versión no me comunica el la placa con el PC. Así que al final encontré un código que si lograba comunicarse con el reloj. Que es el siguiente:

Code: [Select]
//Arduino 1.0+ Only
//Arduino 1.0+ Only

#include "Wire.h"
#define DS1307_ADDRESS 0x68

void setup(){
  Wire.begin();
  Serial.begin(9600);
}

void loop(){
  printDate();
  delay(1000);
}

byte bcdToDec(byte val)  {
// Convert binary coded decimal to normal decimal numbers
  return ( (val/16*10) + (val%16) );
}

void printDate(){

  // Reset the register pointer
  Wire.beginTransmission(DS1307_ADDRESS);

  byte zero = 0x00;
  Wire.write(zero);
  Wire.endTransmission();

  Wire.requestFrom(DS1307_ADDRESS, 7);

  int second = bcdToDec(Wire.read());
  int minute = bcdToDec(Wire.read());
  int hour = bcdToDec(Wire.read() & 0b111111); //24 hour time
  int weekDay = bcdToDec(Wire.read()); //0-6 -> sunday - Saturday
  int monthDay = bcdToDec(Wire.read());
  int month = bcdToDec(Wire.read());
  int year = bcdToDec(Wire.read());

  //print the date EG   3/1/11 23:59:59
  Serial.print(month);
  Serial.print("/");
  Serial.print(monthDay);
  Serial.print("/");
  Serial.print(year);
  Serial.print(" ");
  Serial.print(hour);
  Serial.print(":");
  Serial.print(minute);
  Serial.print(":");
  Serial.println(second);

}


Ahora mi siguiente problema es que tengo poca idea de programar y mas o menos puedo aprender por analogías pero no se si debo hacerlo así.

Entonces que mejor manera es comentaros cada linea que es lo que hace y si lo digo mal pues me lo decís.

Go Up