Påminnelse för att slå på luftkonditioneringen i bilen (3 / 3 steg)
Steg 3: Koden
Gör en signal varje vecka från första början av bil < br > //It påminner du vill slå på luftkonditioneringen minst en gång per vecka.
#include
#include
#include
int addr = 0; EEPROM adress
int WN; Veckonummer
int DOW; Dag i veckan
int lagras; Lagrat värde i EEPROM
void setup()
{
Serial.BEGIN(9600);
Wire.BEGIN();
pinMode (10, OUTPUT); Negativ utgång av summern
digitalWrite (10, låg).
pinMode (12, OUTPUT); Positiv utgång av summern
Delay(100);
STÄLL IN TID
Att ange tid behöva ta bort den "/ *" innan RTC.stopClock();
OBS!!! När du har tid sätta tillbaka den "/ *" och ladda upp programmet igen!!!
Det är viktigt att sätta tillbaka "/ *" och ladda upp igen. Om du glömmer att göra detta, kommer tiden att sätta varje start
/*
RTC.stopClock();
RTC.fillByYMD(2014,10,2);
RTC.fillByHMS(19,41,30);
RTC.setTime();
RTC.startClock();
//*/
RTC.getTime(); Läs datum och tid
DOW = RTC.dow; Veckodagen bör vara mellan 1 och 7
RTC.dow start från 0 = söndag, 1 = måndag...
För att kompensera detta, måste du ange söndag = 7 på nästa rad
om (RTC.dow == 0) //Normally söndag är O, men i vårt fall söndag måste vara 7
DOW = 7.
WN = ((RTC.ydn-DOW+10)/7); Här är datumformeln för att bestämma antalet veckan
LAGRADE = EEPROM.read(addr); Läs EEPROM
om (lagrade! = WN) {//Here följer signalen
Delay(10000); Försenad med ett valfritt värde
Signal_aircond(); Signal, det är på slutet av programmet
EEPROM.write (addr, WN); Över EEPROM med den nya veckan nej.
Serial.println("OK");
}
annat {/ / skriva till seriell bildskärmen
Serial.Print (RTC.year, DEC);
Serial.Print('/');
om (RTC.month < 10)
Serial.Print("0");
Serial.Print (RTC.month, DEC);
Serial.Print('/');
om (RTC.day < 10)
Serial.Print("0");
Serial.Print (RTC.day, DEC);
Serial.Print("");
Serial.Print (RTC.hour, DEC);
Serial.Print(':');
om (RTC.minute < 10)
Serial.Print("0");
Serial.Print (RTC.minute, DEC);
Serial.Print ("vecka nr.:");
Serial.Print(WN);
Serial.Print ("vecka ingen. i EEPROM: ");
Serial.Print(EEPROM.Read(addr));
Serial.Print('\n');
}
}
void loop()
{
}
void Signal_aircond()
{
Tone(12,3000,500);
Delay(900);
Tone(12,3000,500);
Delay(900);
Tone(12,3000,500);
}