Go Down

Topic: Programacion Reloj-Termometro (Read 261 times) previous topic - next topic

vilorteo

Hola a todos !

Soy nuevo en arduino y  este foro.Os pediría me echaseis una mano porque tengo montado este reloj-termómetro con alarma pero desearía incluirle botones de programación con su correspondiente código para programar las alarmas sin necesidad de hacerlo por usb.

Gracias de antemano.

El código del proyecto que tengo funcionando es el siguiente:

#include <LiquidCrystal.h>
#include <Wire.h>
#include "RTClib.h"


LiquidCrystal lcd(12, 11, 10, 5, 4, 3, 2);

// Conexión del RTC:
// Pin Sda al pin A4 del arduino
// Pin Scl al pin A5 del arduino
// También como en cualquier módulo, se deben conectar VCC y GND.
RTC_DS1307 RTC;
float tempC;
int backLight = 13;    // pin 13 will control the backlight
int tempPin = 0; // Definimos la entrada en pin A0
void setup()
{
  Serial.begin(57600);
  Wire.begin();
  RTC.begin();
 
  if (! RTC.isrunning()) {
    Serial.println("RTC is NOT running!");
    // following line sets the RTC to the date & time this sketch was compiled
    RTC.adjust(DateTime(__DATE__, __TIME__));
  }
  pinMode(9,OUTPUT);   
  pinMode(8,OUTPUT);
  pinMode(backLight, OUTPUT);
  digitalWrite(backLight, HIGH);
  lcd.begin(16,2);           
                 
}

void loop()
{
  // Lee el valor desde el sensor
    tempC = analogRead(tempPin);

    // Convierte el valor a temperatura
    tempC = (5.0 * tempC * 100.0)/1024.0;

 
   
//Mostramos los grados en la pantalla LCD
lcd.setCursor(14,1); //Con este comando decimos en que linea queremos escribir
lcd.print(tempC);
lcd.setCursor(19,1);
lcd.print("C");
lcd.setCursor(2,1);
lcd.print("");
   
    //esto enciende y apaga el ventlador
if (tempC < 26){//cambiar numero en funcion de lo que se desee
  digitalWrite(8, LOW);
 
}else
  digitalWrite(8,HIGH);
  DateTime now = RTC.now();
  lcd.setCursor(1,1);
  if(now.day() < 10)
  {   
  lcd.print("0");
  }
  lcd.print(now.day(), DEC);
  lcd.print('/');
  if(now.month() < 10)
  {   
  lcd.print("0");
  }
  lcd.print(now.month(), DEC);
  lcd.print('/');
  lcd.print(now.year(), DEC);
  lcd.setCursor(6,0);
  if(now.hour() < 10)
  {   
  lcd.print("0");
  }
  lcd.print(now.hour(), DEC);
  lcd.print(':');
  if(now.minute() < 10)
  {   
  lcd.print("0");
  }
  lcd.print(now.minute(), DEC);
  lcd.print(':');
  if(now.second() < 10)
  {   
  lcd.print("0");
  }
  lcd.print(now.second(), DEC);
  delay(1000);
 
  if(now.minute()>31 && now.minute()<35 && now.hour()==07)
digitalWrite(9,HIGH);
else
digitalWrite(9,LOW);
}

luisilva

Yo tengo eso hecho.  :smiley-mr-green:

Tienes que tener por lo menos 2 botones .
1 para entrar en modo de ajuste de hora;
1 para entrar en modo de programación de alarma;

Una vez en el modo correcto un botón puede ser para subir las variables y el otro para pasar a la próxima variable.


Go Up