• .
  • Willkommen im Forum!
  • Alles beim Alten...
  • Du hast kaum etwas verpasst ;-)
  • Jetzt noch sicherer mit HTTPS
Hallo, Gast! Anmelden Registrieren


TN Tochteruhr - back to life
#5
Heute hab ich die RTC verdrahtet und das Programm geschrieben...

Der abenteuerliche Drahtverhau sieht nun so aus (wird hoffentlich besser auf Lochraster):
   

Und das Programm dazu:
Code:
// 2018-11-16: TN-Tochteruhr mit hochgenauer RTC
// Version 1.0
// von kahlo (kahlo@stromrichter.org)
// Hardware: Adafruit Feather ( https://www.adafruit.com/product/2771 )
// Hardware: Adafruit DS3231 Precision RTC ( https://www.adafruit.com/product/3013 )
// Hardware: TN Tochteruhr, Bahnhofsuhr
// Hardware: 2 Relais 5V, 1xUM, 2 NMOS, Widerstände, LM7805
// Programmierumgebung: Arduino ( http://arduino.cc/ )

#include <Wire.h>

int led = 13;                 // interne LED an Pin 13
int TN1 = 6;                  // Ausgang 1 an Pin 6
int TN2 = 15;                 // Ausgang 2 an Pin 15
int power = 11;               // Pin 11 ist der Sensor für die externe Spannungsversorgung
int SQW = 1;                  // 1Hz Rechteck-Signal von RTC an Pin 1
int SetPin = 0;               // an Pin 0 kann die Uhr gestellt werden
volatile bool SecondFlag = false; // ISR Sekundenmarker
int seconds = 0;              // Zähler s
int minutes = 0;              // Zähler m
bool coilstatus = LOW;        // Polaritätsstatus der Uhrwerkes bzw. der Spule

void setup() {                
 Wire.begin();               // Initialisierung der RTC
 Wire.beginTransmission(104);// DS3231 Adresse
 Wire.write(0x0E);           // Registerauswahl
 Wire.write(0b01000000);     // Registerbitmap, schaltet das 1Hz-Rechteck ein (siehe DB vom DS3231)
 Wire.endTransmission();
 
 pinMode(led, OUTPUT);       // Definition der Pins
 pinMode(TN1, OUTPUT);    
 pinMode(TN2, OUTPUT);
 pinMode(power, INPUT);
 pinMode(SQW, INPUT_PULLUP);
 pinMode(SetPin, INPUT_PULLUP);
 
 digitalWrite(TN1, LOW);     // Beide Spulenenden auf Masse
 digitalWrite(TN2, LOW);
 
 attachInterrupt(3, Hz_interrupt, FALLING); // Interrupt 3 an Pin 1 aktivieren
}

void loop() {
 if (digitalRead(SetPin) == LOW) {  // Stellen der Uhr per Hand - Pin mit Masse verbinden (Taster)
   minutes++;                       // einfach den Minutenstack erhöhen...
   seconds = 0;                     // auch noch sekundengenau kann es sein ;-)
 }
 if (SecondFlag == true) {          // Die ISR setzt den Flag, wenn 1s um ist
   delay(50);                       // falls was prellt (schlechte Verkabelung)
   seconds++;                       // der Sekundenstack...
   if (seconds == 60) {
     seconds = 0;
     minutes++;                     // der Minutenstack...
   }
   if (minutes >= 720) minutes = 0; // nach 12h ohne externe Spannungsversorgung
   if (digitalRead(led) == LOW) digitalWrite(led, HIGH); // Funktionsindikator
   else digitalWrite(led, LOW);                          // LED im 2s-Takt
   SecondFlag = false;              // Reset Flag
 }
 if (digitalRead(power) == HIGH) {  // Wenn externe Spannung da ist, läuft die Uhr
   if (minutes > 0) {               // Minutenstack wird abgearbeitet
     if (coilstatus == LOW) {       // die Spule muss wechselseitig bestromt werden
       digitalWrite(TN1, HIGH);     // Anschluss 1 bekommt 12V
       delay(400);                  // so lange braucht die Uhr zum Zeigerbewegen
       digitalWrite(TN1, LOW);      // Anschluss 1 auf Masse
       coilstatus = HIGH;           // das nächstemal vom anderen Spulenende...
     }
     else {                         // das andere Ende
       digitalWrite(TN2, HIGH);
       delay(400);
       digitalWrite(TN2, LOW);
       coilstatus = LOW;
     }
     minutes--;                     // Minutenstack verkleinern
     delay(500);                    // Atempause für die Uhrmechanik
   }
 }
}

void Hz_interrupt()
{
SecondFlag = true; // schon wieder eine Sekunde im Stack
}

Die Uhr lässt sich nun mit einem Taster stellen. Bei Stromausfall zählt sie die Minuten, die sie aufholen muss. Falls es länger dauert als 12h, ist sie so schlau, die 12h einzusparen ;-)

   

Nun kommt meine grosse Schwäche: das hübsch machen, wenn's doch schon geht...  Rolleyes
 
Reply
  


Nachrichten in diesem Thema
TN Tochteruhr - back to life - von kahlo - 16.11.2018, 10:40 AM
RE: TN Tochteruhr - back to life - von christianw. - 16.11.2018, 01:05 PM
RE: TN Tochteruhr - back to life - von kahlo - 16.11.2018, 02:08 PM
RE: TN Tochteruhr - back to life - von christianw. - 16.11.2018, 03:17 PM
RE: TN Tochteruhr - back to life - von kahlo - 17.11.2018, 12:16 AM
RE: TN Tochteruhr - back to life - von kahlo - 17.11.2018, 05:07 PM
RE: TN Tochteruhr - back to life - von voltwide - 17.11.2018, 08:38 PM
RE: TN Tochteruhr - back to life - von christianw. - 17.11.2018, 09:22 PM
RE: TN Tochteruhr - back to life - von kahlo - 17.11.2018, 09:50 PM
RE: TN Tochteruhr - back to life - von alfsch - 17.11.2018, 10:03 PM
RE: TN Tochteruhr - back to life - von kahlo - 18.11.2018, 05:48 PM
RE: TN Tochteruhr - back to life - von christianw. - 18.11.2018, 04:02 PM
RE: TN Tochteruhr - back to life - von kahlo - 18.11.2018, 07:12 PM
RE: TN Tochteruhr - back to life - von E_Tobi - 18.11.2018, 07:40 PM
RE: TN Tochteruhr - back to life - von alfsch - 18.11.2018, 09:03 PM
RE: TN Tochteruhr - back to life - von kahlo - 18.11.2018, 09:11 PM
RE: TN Tochteruhr - back to life - von voltwide - 20.11.2018, 12:49 AM
RE: TN Tochteruhr - back to life - von kahlo - 20.11.2018, 10:27 AM
RE: TN Tochteruhr - back to life - von E_Tobi - 28.11.2018, 04:57 PM
RE: TN Tochteruhr - back to life - von alfsch - 18.11.2018, 09:18 PM
RE: TN Tochteruhr - back to life - von kahlo - 18.11.2018, 09:42 PM
RE: TN Tochteruhr - back to life - von alfsch - 19.11.2018, 11:19 PM
RE: TN Tochteruhr - back to life - von alfsch - 18.11.2018, 10:08 PM
RE: TN Tochteruhr - back to life - von kahlo - 18.11.2018, 10:17 PM
RE: TN Tochteruhr - back to life - von alfsch - 18.11.2018, 10:23 PM
RE: TN Tochteruhr - back to life - von kahlo - 27.11.2018, 11:54 PM
RE: TN Tochteruhr - back to life - von alfsch - 28.11.2018, 12:06 AM
RE: TN Tochteruhr - back to life - von kahlo - 28.11.2018, 12:08 AM
RE: TN Tochteruhr - back to life - von alfsch - 28.11.2018, 01:06 AM
RE: TN Tochteruhr - back to life - von christianw. - 28.11.2018, 01:10 AM
RE: TN Tochteruhr - back to life - von alfsch - 28.11.2018, 01:22 AM
RE: TN Tochteruhr - back to life - von kahlo - 28.11.2018, 01:40 AM
RE: TN Tochteruhr - back to life - von alfsch - 28.11.2018, 02:09 PM
RE: TN Tochteruhr - back to life - von kahlo - 28.11.2018, 04:39 PM
RE: TN Tochteruhr - back to life - von alfsch - 28.11.2018, 06:48 PM
RE: TN Tochteruhr - back to life - von kahlo - 28.11.2018, 08:10 PM
RE: TN Tochteruhr - back to life - von alfsch - 28.11.2018, 10:17 PM
RE: TN Tochteruhr - back to life - von christianw. - 29.11.2018, 06:22 PM
RE: TN Tochteruhr - back to life - von kahlo - 29.11.2018, 07:33 PM
RE: TN Tochteruhr - back to life - von alfsch - 30.11.2018, 12:19 AM
RE: TN Tochteruhr - back to life - von kahlo - 30.11.2018, 12:55 AM
RE: TN Tochteruhr - back to life - von christianw. - 30.11.2018, 10:12 AM
RE: TN Tochteruhr - back to life - von alfsch - 30.11.2018, 10:31 AM
RE: TN Tochteruhr - back to life - von christianw. - 30.11.2018, 11:51 AM
RE: TN Tochteruhr - back to life - von kahlo - 30.11.2018, 02:38 PM
RE: TN Tochteruhr - back to life - von alfsch - 30.11.2018, 03:34 PM
RE: TN Tochteruhr - back to life - von kahlo - 30.11.2018, 03:57 PM
RE: TN Tochteruhr - back to life - von alfsch - 30.11.2018, 07:44 PM
RE: TN Tochteruhr - back to life - von kahlo - 30.11.2018, 08:00 PM
RE: TN Tochteruhr - back to life - von E_Tobi - 30.11.2018, 08:43 PM
RE: TN Tochteruhr - back to life - von alfsch - 30.11.2018, 11:43 PM
RE: TN Tochteruhr - back to life - von kahlo - 01.12.2018, 08:05 PM
RE: TN Tochteruhr - back to life - von alfsch - 02.12.2018, 12:34 AM
RE: TN Tochteruhr - back to life - von E_Tobi - 02.12.2018, 12:46 PM
RE: TN Tochteruhr - back to life - von kahlo - 02.12.2018, 05:34 PM
RE: TN Tochteruhr - back to life - von christianw. - 03.12.2018, 11:10 AM
RE: TN Tochteruhr - back to life - von kahlo - 03.12.2018, 01:57 PM
RE: TN Tochteruhr - back to life - von voltwide - 03.12.2018, 11:30 AM
RE: TN Tochteruhr - back to life - von christianw. - 03.12.2018, 02:22 PM
RE: TN Tochteruhr - back to life - von kahlo - 03.12.2018, 04:21 PM
RE: TN Tochteruhr - back to life - von christianw. - 03.12.2018, 05:27 PM
RE: TN Tochteruhr - back to life - von alfsch - 03.12.2018, 10:08 PM
RE: TN Tochteruhr - back to life - von christianw. - 04.12.2018, 09:41 AM
RE: TN Tochteruhr - back to life - von alfsch - 04.12.2018, 12:17 PM
RE: TN Tochteruhr - back to life - von kahlo - 04.12.2018, 01:02 PM
RE: TN Tochteruhr - back to life - von christianw. - 04.12.2018, 10:30 PM
RE: TN Tochteruhr - back to life - von kahlo - 04.12.2018, 11:16 PM
RE: TN Tochteruhr - back to life - von alfsch - 04.12.2018, 11:38 PM
RE: TN Tochteruhr - back to life - von E_Tobi - 04.12.2018, 11:48 PM
RE: TN Tochteruhr - back to life - von scooot - 05.12.2018, 10:42 PM
RE: TN Tochteruhr - back to life - von alfsch - 05.12.2018, 12:52 AM
RE: TN Tochteruhr - back to life - von kahlo - 05.12.2018, 09:39 AM
RE: TN Tochteruhr - back to life - von alfsch - 05.12.2018, 03:28 PM
RE: TN Tochteruhr - back to life - von kahlo - 05.12.2018, 04:30 PM
RE: TN Tochteruhr - back to life - von christianw. - 05.12.2018, 07:05 PM
RE: TN Tochteruhr - back to life - von alfsch - 05.12.2018, 07:05 PM
RE: TN Tochteruhr - back to life - von kahlo - 05.12.2018, 10:57 PM
RE: TN Tochteruhr - back to life - von kahlo - 14.12.2018, 01:30 PM
RE: TN Tochteruhr - back to life - von kahlo - 26.01.2020, 01:52 PM
RE: TN Tochteruhr - back to life - von christianw. - 27.01.2020, 08:37 AM
RE: TN Tochteruhr - back to life - von kahlo - 27.01.2020, 05:20 PM
RE: TN Tochteruhr - back to life - von scooot - 27.01.2020, 09:06 PM
RE: TN Tochteruhr - back to life - von kahlo - 27.01.2020, 09:28 PM
RE: TN Tochteruhr - back to life - von kahlo - 15.02.2023, 12:21 AM
RE: TN Tochteruhr - back to life - von christianw. - 15.02.2023, 02:09 PM
RE: TN Tochteruhr - back to life - von alfsch - 15.02.2023, 08:13 PM
RE: TN Tochteruhr - back to life - von kahlo - 16.02.2023, 10:36 AM
RE: TN Tochteruhr - back to life - von christianw. - 16.02.2023, 01:14 PM
RE: TN Tochteruhr - back to life - von kahlo - 16.02.2023, 01:39 PM
RE: TN Tochteruhr - back to life - von christianw. - 16.02.2023, 10:04 PM