hola en el codigo del reloj donde se escribe los pin para la lectura y escritura.?
Follow along with the video below to see how to install our site as a web app on your home screen.
Nota: Es posible que esta función no esté disponible en algunos navegadores.
hola en el codigo del reloj donde se escribe los pin para la lectura y escritura.?
#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);
}
pepepotamo luego dices com has conectado las peristalticas...
y la temperatura la tengo casi resuelta yupi
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.
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.
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