Stap 3:
CODE INSTELLEN TIJD SCHAKELAAR VOLGENS VOORSCHRIFT
#include "Wire.h"
#includeLiquidCrystal lcd (7,6, 5, 4, 3, 2); LCD (rs inschakelen, d4, d5, d6, d7)
const char * AMPM; int lamp = 0;
byte seconde, minuut, uur, dayOfWeek, dayOfMonth, maand, jaar;
char * dagen [] = {"", "Sun", "Ma", "Di", "Wo", "Do", "VR", "Sat"};
int. H; String s, m, d, mth, h;
#define DS1307_I2C_ADDRESS 0x68
byte op [8] = {0b01110, 0b11111, 0b11111, 0b11111, 0b11111, 0b11111, 0b11111, 0b01010};
byte [8] = {0b01110, 0b10001, 0b10001, 0b10001, 0b10001, 0b10001, 0b11111, 0b01010};
byte vonk [8] = {0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b10101, 0b01010};
VOID Setup
{
Wire.begin();
lcd.createChar(1, on); OP lamp cracter
lcd.createChar(0, off); UIT DE LAMP CRATCTER
lcd.createChar (2, vonk); SPARK LAMP
LCD.begin (16, 2);
LCD.Print ("DIAMOND AHIR");
lcd.setCursor(0,1);
LCD.Print ("X-PERT groep");
delay(3000);
Serial.begin(9600);
}
void loop
{
getDateDs1307 (& tweede, & minuut, uur, & dayOfWeek, & dayOfMonth, & maand, & jaar); Waarden krijgen
AMPM();
Convert_Hours();
LCD.Clear(); Schakel weergeven
displaytime(); Tijd weergeven
match_bulb_time(); MATCHING MET SET LAMP TIMEING
delay(1000); Wacht 1 seconde
}
byte bcdToDec(byte val) {return ((val/16 * 10) + (val % 16));}
VOID getDateDs1307 (byte * tweede, byte * minuut, byte * uur, byte * dayOfWeek, byte * dayOfMonth, byte * maand, byte * jaar)
{
Waarden van de RTC DS1307 leest
Wire.beginTransmission(DS1307_I2C_ADDRESS);
Wire.write(0);
Wire.endTransmission();
Wire.requestFrom (DS1307_I2C_ADDRESS, 7);
* tweede = bcdToDec(Wire.read() & 0x7f);
* minuut = bcdToDec(Wire.read());
* uur = bcdToDec(Wire.read() & 0x3f);
* dayOfWeek = bcdToDec(Wire.read());
* dayOfMonth = bcdToDec(Wire.read());
* maand = bcdToDec(Wire.read());
* jaar = bcdToDec(Wire.read()); }
VOID ampm() {(uur > 11)? () AMPM="PM"):(AMPM="AM"); }
VOID Convert_Hours() {if(hour == 12|| uur == 0) H = 12; anders als (uur > 12) H = uur % 12; anders H = uur; }
VOID displaytime()
{
if(minute == 0) / / op elke uur het DISPLAY voor ONE MINUTS
{
LCD.begin (16, 2);
LCD.Print ("DIAMOND AHIR");
lcd.setCursor(0,1); (H < 10)? (h = "0" + String(H)): (h = String(H));
TOEPASSEN van nul + met 1to9 uur
(< 10 minute)? (m = "0" + String(minute)): (m = String(minute)); TOEPASSEN van nul + 1to9 minuten
(tweede < 10)? (s = "0" + String(second)): (s = String(second)); Tweede toepassing van nul + met 1to9
LCD.Print ("" + String(h) + ":" + m + ":" + s + "" + AMPM);
}
anders
{
LCD.begin (16, 2);
(H < 10)? (h = "0" + String(H)): (h = String(H)); TOEPASSEN van nul + met 1to9 uur
(< 10 minute)? (m = "0" + String(minute)): (m = String(minute)); TOEPASSEN van nul + 1to9 minuten
(tweede < 10)? (s = "0" + String(second)): (s = String(second)); TOEPASSEN van nul + met 1to9 seconden
(dayOfMonth < 10)? (d = "0" + String(dayOfMonth)): (d = String(dayOfMonth)); TOEPASSEN van nul + met 1to9 dag
(maand < 10)? (mth = "0" + String(month)): (mth = String(month)); TOEPASSEN van nul + met 1to9 maand
lcd.setCursor(0,0);
LCD.Print (h + ":" + m + ":" + s + "" + AMPM); UREN: MINUTEN: SECONDEN AM/PM
lcd.setCursor(0,1);
LCD.Print (d + ":" + mth + ":" + jaar + "" + days[dayOfWeek]); WEEK VAN DE DAG: MAAND: JAAR
}
} //END FUNCTIE
VOID match_bulb_time()
{
schakelaar (uur) / / Apply lamp aan op met uren
{/ / 6-AM to 6-PM aan op Bulb
geval van 0: lamp = 1; breken; 12
geval 1: lamp = 1; breken; 1
geval 2: lamp = 1; breken; 2
Case 3: lamp = 1; breken; 3
geval 4: lamp = 1; breken; 4
geval 5: lamp = 1; breken; 5
kast 6: lamp = 1; breken; 6
geval 7: lamp = 0; breken; 7
geval 8: lamp = 0; breken; 8
zaak 9: lamp = 0; breken; 9
zaak 10: lamp = 0; breken; 10
geval 11: lamp = 0; breken; 11
geval 12: lamp = 0; breken; 12
zaak 13: lamp = 0; breken; 1
geval 14: lamp = 0; breken; 2
geval 15: lamp = 0; breken; 3
geval 16: lamp = 0; breken; 4
kast 17: lamp = 0; breken; 5
kast 18: lamp = 1; breken; 6
geval 19: lamp = 1; breken; 7
geval 20: lamp = 1; breken; 8
kast 21: lamp = 1; breken; 9
geval van 22: lamp = 1; breken; 10
geval van 23: lamp = 1; breken; 11
standaard: breken;
}
if(Bulb==1) //Relay schakelaar
{digitalWrite(8,LOW); / / of verbinden met grond
digitalWrite(9,HIGH); OP RELAY
BULB-pictogram weergeven op LCD-scherm
lcd.setCursor(14,0);
LCD.write((byte) 2);
LCD.write((byte) 2);
lcd.setCursor(14,1);
LCD.write((byte) 1);
LCD.write((byte) 1);
}
if(Bulb==0)
{
digitalWrite(8,LOW); Of verbinding maken met grond
digitalWrite(9,LOW); UIT RELAY
Display lamp uit pictogram
lcd.setCursor(14,1);
LCD.write((byte) 0);
LCD.write((byte) 0);
}
}