Schakelklok met DS1307
24 berichten
• Pagina 1 van 3 • 1, 2, 3
Schakelklok met DS1307
Beste Leden,
ik ben met een schakelklok bezig gebruik makend van een DS1307 met de "Time" en "TimeAlarms" bibliotheken. Een lamp moet van 10uur 's morgens tot 22u branden. Dit werkt dus perfect. Nu mijn vraag: indien de Arduino gereset wordt of zonder spanning komt tijdens deze periode van 12 uur is de Arduino de status van de lamp "kwijt", dus uit. Kan dit opgelost worden en hoe?
alvast bedankt voor het meedenken
ik ben met een schakelklok bezig gebruik makend van een DS1307 met de "Time" en "TimeAlarms" bibliotheken. Een lamp moet van 10uur 's morgens tot 22u branden. Dit werkt dus perfect. Nu mijn vraag: indien de Arduino gereset wordt of zonder spanning komt tijdens deze periode van 12 uur is de Arduino de status van de lamp "kwijt", dus uit. Kan dit opgelost worden en hoe?
alvast bedankt voor het meedenken
Advertisement
- Gij Kieken
- Berichten: 631
- Geregistreerd: 15 Nov 2015, 11:54
Re: Schakelklok met DS1307
Plaats er een teleruptor met extra contact tussen en stuur deze aan door middel van een puls i.p.v. een continu signaal.
Zo kun je de status van je schakel contact ten alle tijde inlezen.
Zo kun je de status van je schakel contact ten alle tijde inlezen.
- nicoverduin
- Berichten: 5043
- Geregistreerd: 13 Mei 2013, 20:57
- Woonplaats: Heemskerk
Re: Schakelklok met DS1307
Het is een schakel klok. En aangezien er verder niets is ingegeven ga ik het zelf ff invullen:
a) Er is een relais die aan en uit gezet kan worden.
b) De klok heeft een backup batterij
Dan:
Gewoon de aan/uit tijden in eeprom zetten.
In de setup():
a) lees de eeprom
b) lees de klok
c) als de tijd binnen de aan/uit tijd valt gewoon een digitalWrite doen om het relais weer in te schakelen.
tutti.
a) Er is een relais die aan en uit gezet kan worden.
b) De klok heeft een backup batterij
Dan:
Gewoon de aan/uit tijden in eeprom zetten.
In de setup():
a) lees de eeprom
b) lees de klok
c) als de tijd binnen de aan/uit tijd valt gewoon een digitalWrite doen om het relais weer in te schakelen.
tutti.
- Gij Kieken
- Berichten: 631
- Geregistreerd: 15 Nov 2015, 11:54
Re: Schakelklok met DS1307
Terug fout van mij.
Ging ervan uit dat hij een schakelklok had geprogrammeerd in een arduino.
En Eeprom blijft ook niet meegaan.
Ging ervan uit dat hij een schakelklok had geprogrammeerd in een arduino.
En Eeprom blijft ook niet meegaan.
- nicoverduin
- Berichten: 5043
- Geregistreerd: 13 Mei 2013, 20:57
- Woonplaats: Heemskerk
Re: Schakelklok met DS1307
Eeprom houdt zijn waarde gewoon vast hoor. De klok is realtime en de eeprom heeft de instellingen
- Gij Kieken
- Berichten: 631
- Geregistreerd: 15 Nov 2015, 11:54
Re: Schakelklok met DS1307
Ja klop natuurlijk wat je zegt, in gewoon gebruik geen enkel probleem. Maar wat ik bedoelde is, als hij vele keren wegschrijft naar de Eeprom bijvoorbeeld
om te experimenteren kan het wel eens fout lopen.
Ik denk eigenlijk nog altijd in het tijdperk van als je wilt dat iets werkt sluit dan een draad aan i.v.p. draadloos(zeg maar het ouderwetse relais gebeuren).
Software oplossen is natuurlijk veel makkelijker en veel meer wendbaar.
Ben ook maar in de leerfase en heb al heel veel opgestoken op dit forum.
om te experimenteren kan het wel eens fout lopen.
Ik denk eigenlijk nog altijd in het tijdperk van als je wilt dat iets werkt sluit dan een draad aan i.v.p. draadloos(zeg maar het ouderwetse relais gebeuren).
Software oplossen is natuurlijk veel makkelijker en veel meer wendbaar.
Ben ook maar in de leerfase en heb al heel veel opgestoken op dit forum.
- nicoverduin
- Berichten: 5043
- Geregistreerd: 13 Mei 2013, 20:57
- Woonplaats: Heemskerk
Re: Schakelklok met DS1307
100.000x vullen..... tenzij je het bewust in een loop oid programmatisch doet, ga je niet voor mekaar krijgen hoor.
Re: Schakelklok met DS1307
ik gebruik het "Tiny RTC" bordje waar ook een eeprom IC op zit, misschien dat dit een optie is?
Re: Schakelklok met DS1307
de code:
cpp code
cpp code
#include <Wire.h>
#include <Time.h>
#include <TimeAlarms.h>
#include <DS1307RTC.h> // a basic DS1307 library that returns time as a time_t
int LED = 42; // which pin the LED is on
int LIGHTS = 0; // LED status (0 off, 1 on)
void setup()
{
// provide power to the RTC
// configure output light
pinMode(LED,OUTPUT);
digitalWrite(LED,LOW);
// start services
Serial.begin(9600);
Wire.begin();
// sync
setSyncProvider(RTC.get); // the function to get the time from the RTC
if(timeStatus()!= timeSet)
Serial.println("Unable to sync with the RTC");
else
Serial.println("RTC has set the system time");
// set alarm times
Alarm.alarmRepeat(20,00,00,LightsOn ); // turn light on
Alarm.alarmRepeat(20,30,00,LightsOff); // turn light off
}
void loop()
{
digitalClockDisplay();
Alarm.delay(1000);
}
void LightsOn()
{
digitalWrite(LED,HIGH); // turn LED of
Serial.println("...turning lights on...");
}
void LightsOff()
{
digitalWrite(LED,LOW); // turn LED off
Serial.println("...turning lights off...");
}
void digitalClockDisplay()
{
// digital clock display of the time
Serial.print(hour());
printDigits(minute());
printDigits(second());
Serial.print(" ");
Serial.print(day());
Serial.print(" ");
Serial.print(month());
Serial.print(" ");
Serial.print(year());
Serial.println();
}
void printDigits(int digits)
{
// utility function for digital clock display: prints preceding colon and leading 0
Serial.print(":");
if(digits < 10)
Serial.print('0');
Serial.print(digits);
}
- nicoverduin
- Berichten: 5043
- Geregistreerd: 13 Mei 2013, 20:57
- Woonplaats: Heemskerk
Re: Schakelklok met DS1307
Ik heb ff die library bekeken, maar volgens mij pakt hij hem automatisch op bij een reset of power up. Dus op het moment dat de tijd naar de LED on moment is zou de Led ook weer aan moeten gaan. Maar dat kan je zo testen. Druk de reset maar in tijdens het interval. Merk je het gauw genoeg
24 berichten
• Pagina 1 van 3 • 1, 2, 3
Wie is er online?
Gebruikers in dit forum: Geen geregistreerde gebruikers en 9 gasten