INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Thermostat Steuerung für Fußbodenheizung
21.01.2021, 21:19
Beitrag #1
Thermostat Steuerung für Fußbodenheizung
Hallo Leute,
da es mir auf die nerven ging nach der Arbeit in eine kühle Wohnung zu kommen habe ich mittels Arduino und einem Stepper Motor was zurecht gebastelt dass zu einer bestimmten Uhrzeit den Regler für die Fußbodenheizung auf dreht und zu einer weiteren Uhrzeit wieder abstellt.
Der Stepper Motor wurde mit einer 3D gedruckten Halterung am Thermostat befestigt.

[Bild: 20210116_184532ebjeb.jpg]

Das ganze Funktioniert auch ganz wunderbar - nur eine Kleinigkeit stört mich noch.
Der Steppermotor wird natürlich auch warm wenn er gerade nix dreht, ich suche nach einer Simplen Funktion diesen nach dem ausführen des Drehens abzuschalten.
Jemand eine Idee?
Ich habe mal den ganzen Code eingefügt. Interessant sind aber (für meine Frage) nur die Bereiche Heizung an und Heizung aus

Code:
#include <Stepper.h>
#include <TimeLib.h>
#include <Wire.h>
#include <DS1307RTC.h>
#include <dht11.h>
#include <LiquidCrystal.h>
LiquidCrystal lcd(7, 4, 6, 3, 5, 12); //In dieser Zeile wird festgelegt, welche Pins des Mikrocontrollerboards für das LCD verwendet wird

dht11 DHT11;
#define DHT11PIN 2

#define STEPS  32   // Number of steps per revolution of Internal shaft
int  Steps2Take;  // 2048 = 1 Revolution
Stepper small_stepper(STEPS, 8, 10, 9, 11);


void setup() {
  lcd.begin(16, 2); //Im Setup wird angegeben, wie viele Zeichen und Zeilen werwendet werden.
  Serial.begin(9600); //Öffnet den seriellen Port und legt die Baud Rate (9600) für die serielle Übertragung fest.
  setSyncProvider(RTC.get); //Dies ist die Funktion um die Zeit- und Datumsangabe von der RTC zu bekommen



}
void loop() {  

  int chk = DHT11.read(DHT11PIN);

  //lcd.setCursor(0, 12);
  //lcd.print("Temp: ");
  //lcd.print((float)DHT11.temperature, 2);
  //lcd.print(" C");
  
  //lcd.setCursor(0, 1);
  //lcd.print("RelF: ");
  //lcd.print((float)DHT11.humidity, 0);
  //lcd.print(" %");
  //delay(2000);
  
   Serial.print(hour()); //Serial.print ist der Befehl etwas im seriellen Monitor anzuzeigen (Stunde, Minute, Sekunde, Leerzeichen, Tag, Leerzeichen, usw.)
  printDigits(minute()); //bei den Minuten und Sekunden wird der Befehl
  printDigits(second()); //printDigits angegeben welcher am Ende des Codes noch festgelegt wird.
  Serial.print(" ");
  Serial.print(day());
  Serial.print(" ");
  Serial.print(month());
  Serial.print(" ");
  Serial.print(year());
  Serial.println();
  delay(1000); //warte eine Sekunde
  lcd.setCursor(0, 0); //setCursor gibt an wo der Text beginnen soll.
  lcd.print(hour()); //Hier soll jetzt die Uhrzeit angezeigt werden, also „hour“ „:“ „minute“ usw..
  lcd.print(":");
  lcd.print (minute());
  lcd.print(":");
  lcd.print(second());
  lcd.print(" ");
  lcd.print("|"); //Hier soll nach der Uhrzeit noch das Wort „Uhr“ angezeigt werden, dazu müssen noch3 Leerzeichen folgen, sonst würde bei Zahlen <10 immer ein weiteres „r“ hinter Uhr angezeigt werden. Das liegt daran, dass in der LCD Library der Befehl eine 0 vor Zahlen <10 anzuzeigen nicht vorhanden ist.
  lcd.print(" ");
  lcd.print((float)DHT11.temperature, 0);
  lcd.print(" C");
  lcd.setCursor(0, 1); // Der nächste „Text“ soll nun beim zweiten Zeichen in der zweiten Reihe beginnen.
  lcd.print(day()); // Das Datum soll nun als
  lcd.print("."); // „Tag“, „.“ „Monat“ usw. angegeben werden.
  lcd.print(month());
  lcd.print(".");
  lcd.print(year());
  lcd.print("|");
  lcd.print((float)DHT11.humidity, 0);
  lcd.print(" %");
  
  

  //Heizung an
  if (hour() == 18) {
   if (minute() == 30) {
      if (second() == 0) {
        Serial.print("Heizung an"); Serial.println("");
        small_stepper.setSpeed(500); //Max seems to be 500
        Steps2Take  =  700;  // Rotate CW
        small_stepper.step(Steps2Take);
        delay(2000);
      }
    }
  }
  
  //Heizung aus
  if (hour() == 18) {
   if (minute() == 30) {
    if (second() == 30) {
        Serial.print("Heizung aus"); Serial.println("");
        small_stepper.setSpeed(500); //Max seems to be 500
        Steps2Take  =  -700;  // Rotate CW
        small_stepper.step(Steps2Take);
        delay(2000);
      }
    }
  }
}

void printDigits(int digits){ //In diesem Abschnitt wird festgelgt, dass bei Zahlen <10 im seriellen Monitor automatisch eine 0 vor den Ziffern angezeigt wird. Das gilt nur für den seriellen Monitor und nicht für LCD Display.
  Serial.print(":");
  if(digits < 10)
  Serial.print('0');
  Serial.print(digits);
  
}
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
21.01.2021, 21:43
Beitrag #2
RE: Thermostat Steuerung für Fußbodenheizung
So wie ich Deine Konstruktion sehe, braucht Dein Stepper kein Haltemoment, wenn er seine Position erreicht hat. Richtig?

Dann kannst Du ihn abschalten.

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
21.01.2021, 21:50
Beitrag #3
RE: Thermostat Steuerung für Fußbodenheizung
Richtig, gibt nix wo er gegen halten müsste.

Nur wie ich den abschalten lasse ist mir nicht klar.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
22.01.2021, 09:51
Beitrag #4
RE: Thermostat Steuerung für Fußbodenheizung
(21.01.2021 21:50)FALLout schrieb:  Nur wie ich den abschalten lasse ist mir nicht klar.
Es gibt Stepper-Treiber, die einen Eingang zum Abschalten des Steppers haben.
Da solltest du mal im Datenblatt deines Treibers nachlesen.

Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
22.01.2021, 17:56
Beitrag #5
RE: Thermostat Steuerung für Fußbodenheizung
Hallo,

warum nicht einfach die 4 Motorpins per digitalWrite auf LOW setzen; oder HIGH, hängt vom (Hardware-) Treiber ab, was besser ist.

Sauberer wäre, die Stepper.h und Stepper.cpp um eine Stoppfunktion zu erweitern und in das eigene Verzeichnis zu kopieren.

Gruß
GuaAck
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
23.01.2021, 12:09
Beitrag #6
RE: Thermostat Steuerung für Fußbodenheizung
Die Variante mit digitalWrite(PIN,LOW); funktioniert in meinen Fall wunderbar.
Stepper ist Stromlos und wird somit nicht übertreiben warm nur weil er 2 mal am Tag n Stückchen dreht.
Danke
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
23.01.2021, 15:40
Beitrag #7
RE: Thermostat Steuerung für Fußbodenheizung
Hallo,

Schön wenn es jetzt so funktioniert wie du es haben willst.
Zum Nachbauen oder für andere User mit ähnlichen Problemen,
würde es hilfreich sein nun auch deinen kompletten funktionsfähigen Sketch zu zeigen.

Guuß, Markus

Immer in Stress
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
23.01.2021, 16:44 (Dieser Beitrag wurde zuletzt bearbeitet: 23.01.2021 16:44 von Franz54.)
Beitrag #8
RE: Thermostat Steuerung für Fußbodenheizung
Der Therostat auf dem Bild oben ist übrigens kein Hexenzauber. Das Ding macht einfach nur Temperaturabhängig einen Kontakt schließen für Heizen und öffnen für nicht heizen. Das heißt,du brauchst dieses ganze Gedönse nicht,das du da drann gebaut hast. Einfach ein Temp. Fühler z.B. den DS18B20 der dem Arduino die Themperatur im Raum mitteilt, eine Uhr DS3231 die dem Arduino die genaue Zeit sagt, und dann ein Relais, das dieses schließen für Heizen und öffnen für nicht heizen, übernimmt. Das würde mit nem Nano in die Unterputzdose gehen, die jetzt dieser Thermostat belegt. Dann könntest du perfekt regeln.

Franz

https://www.youtube.com/watch?v=Fnzn85oWM_Q
Hier was zum Thema Deutsche Politik Angry
Und hier zum Thema richtige Politik Big Grin
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
Question Steuerung Lineartisch AnS 40 3.888 06.01.2021 11:37
Letzter Beitrag: MicroBahner
  Blaulicht steuerung Alexander307 33 1.986 24.12.2020 15:49
Letzter Beitrag: Tommy56
  Mouse Steuerung - Absolut und Relativ, Aulösung/Skalierung Arduino4Fun 10 715 15.12.2020 18:14
Letzter Beitrag: Tommy56
  Terrarium Steuerung kintaro 13 821 12.12.2020 22:55
Letzter Beitrag: hotsystems
  Steuerung meines Gartenweges Iron_Daddy 9 1.263 11.12.2020 15:18
Letzter Beitrag: Bitklopfer
  Aquarium Steuerung sopolka 9 2.060 11.11.2020 20:15
Letzter Beitrag: sopolka
  Tag Nacht Steuerung Hühnerstall Klappe Raging Ender 10 1.320 10.09.2020 13:31
Letzter Beitrag: hotsystems
  Ramps 1.4 mit #Accel Stepper Steuerung per Serial Monitor Arduino DMX Master 14 2.077 12.08.2020 15:26
Letzter Beitrag: Arduino DMX Master
  Steuerung KFZ Hebebühne Markus3D 6 2.313 31.07.2020 14:45
Letzter Beitrag: Beatzler
  PWM-Steuerung mit 15 KHz oder höher ingo46 8 1.757 26.06.2020 14:21
Letzter Beitrag: ingo46

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste