

Franz
Forum zur gegenseitigen Hilfe für Hobby´s, Spass und Technik, im Raum Penzberg, Garmisch, Bad Tölz, Seeshaupt
Code: Alles auswählen
// Programm zur Solarsteuerung mit DS 3231 Modul nit IBS_2 Motortreiber
// aufgespielt am
#include "RTClib.h"
#define DS3231_I2C_ADDRESS 0x68
RTC_DS3231 rtc;
int mot1 = 5;
int mot2 = 6;
int schalter = 4;
int pwm = 9;
int buttonState = 0;
void setup () {
Serial.begin(9600);
pinMode (mot1, OUTPUT);
pinMode (mot2, OUTPUT);
pinMode(schalter, INPUT_PULLUP);
analogWrite(pwm, 255); // 0.. 255 gemeinsam mit REN
buttonState = digitalRead(schalter);
#ifndef ESP8266
while (!Serial); // wait for serial port to connect. Needed for native USB
#endif
if (! rtc.begin()) {
Serial.println("Couldn't find RTC");
Serial.flush();
abort();
}
Serial.println("Setting the time...");
rtc.adjust(DateTime(F(__DATE__), F(__TIME__))); // nur bei Uhr stellen verwenden!!
}
void stopp(){
if (digitalRead(schalter) == 0){
digitalWrite(mot2, LOW);
Serial.println("Endschalter");
}
}
void loop () {
DateTime now = rtc.now();
Serial.print(now.hour(), DEC);
Serial.print(':');
Serial.print(now.minute(), DEC);
Serial.print(':');
Serial.print(now.second(), DEC);
// Serial.print(rtc.getTemperature());
// Serial.println(" C");
Serial.println();
Serial.println();
// Der Startpunkt ist die Richtung Osten
// 11 x Zustellen Richtung Westen
if (now.hour()== 8 && now.minute()== 0 && now.second()==0) {digitalWrite(mot1, HIGH);} // zustellen
if (now.hour()== 8 && now.minute()== 0 && now.second()== 7) {digitalWrite(mot1, LOW);} // Stopp
// der "now.secound" Wert muss den Gegebenheiten vor Ort angepasst werden
if (now.hour()== 9 && now.minute()== 0 && now.second()== 0) {digitalWrite(mot1, HIGH);} // zustellen
if (now.hour()== 9 && now.minute()== 0 && now.second()== 7) {digitalWrite(mot1, LOW);} // Stopp
if (now.hour()== 10 && now.minute()== 0 && now.second()== 0) {digitalWrite(mot1, HIGH);} // zustellen
if (now.hour()== 10 && now.minute()== 0 && now.second()== 7) {digitalWrite(mot1, LOW);} // Stopp
if (now.hour()== 11 && now.minute()== 0 && now.second()== 0) {digitalWrite(mot1, HIGH);} // zustellen
if (now.hour()== 11 && now.minute()== 0 && now.second()== 6) {digitalWrite(mot1, LOW);} // Stopp
if (now.hour()== 12 && now.minute()== 0 && now.second()== 0) {digitalWrite(mot1, HIGH);} // zustellen
if (now.hour()== 12 && now.minute()== 0 && now.second()== 6) {digitalWrite(mot1, LOW);} // Stopp
if (now.hour()== 13 && now.minute()== 0 && now.second()== 0) {digitalWrite(mot1, HIGH);} // zustellen
if (now.hour()== 13 && now.minute()== 0 && now.second()== 6) {digitalWrite(mot1, LOW);} // Stopp
if (now.hour()== 14 && now.minute()== 0 && now.second()== 0) {digitalWrite(mot1, HIGH);} // zustellen
if (now.hour()== 14 && now.minute()== 0 && now.second()== 6) {digitalWrite(mot1, LOW);} // Stopp
if (now.hour()== 15 && now.minute()== 0 && now.second()== 0) {digitalWrite(mot1, HIGH);} // zustellen
if (now.hour()== 15 && now.minute()== 0 && now.second()== 6) {digitalWrite(mot1, LOW);} // Stopp
if (now.hour()== 16 && now.minute()== 0 && now.second()== 0) {digitalWrite(mot1, HIGH);} // zustellen
if (now.hour()== 16 && now.minute()== 0 && now.second()== 6) {digitalWrite(mot1, LOW);} // Stopp
if (now.hour()== 17 && now.minute()== 0 && now.second()== 0) {digitalWrite(mot1, HIGH);} // zustellen
if (now.hour()== 17 && now.minute()== 0 && now.second()== 6) {digitalWrite(mot1, LOW);} // Stopp
if (now.hour()== 18 && now.minute()== 0 && now.second()== 0) {digitalWrite(mot1, HIGH);} // zustellen
if (now.hour()== 18 && now.minute()== 0 && now.second()== 2) {digitalWrite(mot1, LOW);} // Stopp
if (now.hour()== 19 && now.minute()== 0 && now.second()== 0) {digitalWrite(mot2, HIGH);} // Zurueck nach Osten fahren
stopp();
if (now.hour()== 19 && now.minute()== 10 && now.second()== 0) {digitalWrite(mot1, HIGH);} // zustellen weil zuweit zuerueck
if (now.hour()== 19 && now.minute()== 10 && now.second()== 6) {digitalWrite(mot1, LOW);} // Stopp
// diese zwei Sätze sind nur Korrektur falls abends zuweit gefahren
}
Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast