Arduino + Temperaturfühler + Schrittmotor

Hi Leute,

ich habe etwa zwei Stunden in Englisch wie in Deutsch nach "Arduino + Temperaturfühler + Schrittmotor" gegoogelt. Dabei konnte ich leider meine Fragen nicht wirklich beantworten und nun möchte ich es gerne hier versuchen:

Ist es sehr schwierig, einen Schrittmotor per Temperaturfühler anzusteuern?

Gerne möchte ich auf eine einfache Weise eine Temperatur einstellen können, z.B. 25°C.
Der Temperaturfühler (mind. 1m Kabellänge) soll dabei die Raumtemperatur messen.
Steigt diese über 25°C, so sollte sich der Schrittmotor, mit einer vorgegebenen Anzahl Schritte, in eine Richtung bewegen.
Fällt die Temperatur unter 25°C, so sollte sich der Schrittmotor, mit einer vorgegebenen Anzahl Schritte, wieder an seine Ursprungsposition bewegen.

Dies wäre m.M.n. die einfachste Methode: entweder ganz offen oder ganz zu.

Interessant fände ich, wenn der Schrittmotor wie folgt vorgehen würde:

Steigt die Temperatur über 25°C, so bewegt er sich erstmal nur um ein paar Schritte.
Sinkt die Temperatur nicht wieder auf 25°C, so bewegt er sich weitere Schritte.
Es gibt ein Maximum sowie ein Minimum, über die sich der Schrittmotor nicht bewegen darf (physische Grenzen der Luftschleuse).

Es würde mich sehr freuen, wenn mir dabei jemand helfen könnte :slight_smile: !
Beste Grüße

liab

lostinabox:
Ist es sehr schwierig, einen Schrittmotor per Temperaturfühler anzusteuern?

Das kommt ganz auf deinen Wissenstand drauf an.
Wenn du danach googelst, musst du getrennt googeln.
"Arduino Schrittmotor" = 72000 Ergebnisse und "Arduino Temperaturfühler" 19300 Ergebnisse,
da wirst du jeweils fündig.

Dann beide Funktionen getrennt aufbauen und zur Funktion bringen. Danach kann man beide Funktionen zusammenbringen.

Welche Erfahrung hast du mit dem Arduino bisher?

HotSystems:
Welche Erfahrung hast du mit dem Arduino bisher?

Hi, danke für's schnelle Antworten.
Bisher habe ich keine Erfahrungen mit Arduino, das wäre mein erstes Projekt. Dafür habe ich ca. zwei Monate Zeit. Es würde mich natürlich freuen, wenn ich früher damit fertig werden könnte :slight_smile:

Es gab einige Tutorials, die mir erste Richtungen aufgezeigt haben, z.B. wie man einen Schrittmotor über ein Shield mit dem Arduino UNO verbindet und per Code sagen kann, in welche Richtung der sich drehen soll.

Auch Temperaturfühler habe ich gefunden, diese waren immer direkt auf dem Steckbrett angebracht (Muss das so sein? oder kann man auch welche mit langem Kabel verwenden => ich gehe schwer davon aus, dass das geht :wink: )

Ist oben Beschriebenes denn für einen absoluten Neuling, mit Hilfe hier aus dem Forum, überhaupt realisierbar?

Mein Problem liegt darin, dass ich nicht weiß, wo ich anfangen sollte.

lostinabox:
Mein Problem liegt darin, dass ich nicht weiß, wo ich anfangen sollte.

Als absoluter Neuling bitte erst die Grundlagen (Basics) lernen.
Da kannst du mit den Beispielen in der IDE gut anfangen. danach geht es an deine Projekte, die du dann sicher schon selbst erstellen kannst.
Bei deinen ersten Sketchen können wir dann auch helfen, da du mit unseren Tipps dann auch etwas anfangen kannst.

Es gibt sehr viel unterschiedliche Temperatursensoren, auch welche mit langem (ca. 1 m) Anschlusskabel.

Ist oben Beschriebenes denn für einen absoluten Neuling, mit Hilfe hier aus dem Forum, überhaupt realisierbar?

Das ist mit der oben beschriebenen Einarbeitung sicher möglich. Du musst nur kräftig mitarbeiten.

Machbar ist es. Vor allem die erste Version, die du beschrieben hast.

Gehe es wie gesagt getrennt an. Also erst mal den Temperatur-Sensor auslesen und den Wert auf der seriellen Schnittstelle ausgeben. Dann getrennt einen Schrittmotor immer hin- und herfahren lassen. Dazu gibt es auch mehr oder weniger fertige Beispiele bei den entsprechenden Libraries.

Zusammen mit einer Abfrage auf den Schaltpunkt kann man das dann kombinieren.

HotSystems:
Als absoluter Neuling bitte erst die Grundlagen (Basics) lernen.
Das ist mit der oben beschriebenen Einarbeitung sicher möglich. Du musst nur kräftig mitarbeiten.

Serenifly:
Machbar ist es. Vor allem die erste Version, die du beschrieben hast.
Gehe es wie gesagt getrennt an. Also erst mal den Temperatur-Sensor auslesen und den Wert auf der seriellen Schnittstelle ausgeben. Dann getrennt einen Schrittmotor immer hin- und herfahren lassen.

Alles klar, ich werde die Sache Schritt für Schritt angehen und es anschließend auf das Projekt adaptieren/anwenden. Damit ich nicht doppelt einkaufe, was wären denn die ersten Teile, die ich beschaffen sollte?

Derzeit würde ich folgendes holen:

1x Arduino UNO ATmega328
1x Temperatur-Sensor mit 1m Länge (DS18B20)
1x Adafruit Motor/Stepper/Servo Shield
1x Adafruit Schrittmotor

Dann könnte ich beides getrennt ausprobieren.
Was meint ihr?

Danke für eure Hilfe und ich freue mich, dass mein Vorhaben nicht allzu exotisch ist :-)) Dann bekomme ich das womöglich sogar hin!

Anstelle Adafruit Motor/Stepper/Servo Shield lieber DRV8825, da Du den Strom des bipolaren Schrittmotors einstellen kannst.

Wieviel Drehmoment brauchst Du denn? Dieser unipolare Schrittmotor hat ein Getriebe, daher 4096 Schritte pro Umdrehung und ist durch das Getriebe auch begrenzt selbsthaltend.

Der UNO ist der Einstiegsklassiker, es geht aber auch ein Nano mit Erweiterungskarte.

Alle Links sind keine Kaufempfehlung, sondern dienen der Erläuterung.

Hi agmue,

danke für die Links! Der Schrittmotor ist für mein Vorhaben perfekt. Ich möchte, dass dieser ein MDF-Brett mit den Maßen 190x100x5mm an der Mittelachse dreht (siehe Anhang).
Dafür werde ich ein Metallrohr anbringen, in dem der Schrittmotor ‘steckt’.

Kann man irgendwie berechnen, ob der Motor dafür ausreicht?

Dieser Nano ist hübsch, wenn ich den mit der Erweiterungskarte zusammenstecke, kann der dann das gleiche, wie der UNO ?

lostinabox:
Kann man irgendwie berechnen, ob der Motor dafür ausreicht?

Wenn man die richtigen Daten hat, kann man, wenn man es kann. Ich habe so einen Motor, der dreht ein Kohlekranmodell aus Metall, natürlich nicht im Dauerbetrieb. Wenn Du die Platte ausbalanciert lagerst, braucht der Motor nur ein kleines Drehmoment für die Beschleunigung aufzubringen. Ohne Gewähr: das kann er. Das Plastikgetriebe hält keine Drehversuche von außen aus, das muß ausgeschlossen sein.

lostinabox:
Dieser Nano ist hübsch, wenn ich den mit der Erweiterungskarte zusammenstecke, kann der dann das gleiche, wie der UNO ?

Einen Nano habe ich noch nicht in Händen gehalten oder ausprobiert, für das, was Du machen willst, lehne ich mich mal etwas aus dem Fenster und behaupte: ja. Kritisch sind immer Bibliotheken, wenn sie für den UNO geschrieben sind, ob sie dann auch auf dem Nano laufen. Die Schrittmotoransteuerung geht aber auch ganz ohne Bibliothek mittels digitalWrite, das habe ich für diesen Motor schon realisiert. Daher bin ich da optimistisch.

Ich kann Dir keine Gewähr geben, aber das finanzielle Risiko hält sich ja in Grenzen. Außerdem gibt es immer nette Forumsmitglieder, die mir widersprechen, wenn ich Blödsinn schreibe.

Bitte nicht vergessen: Eine Schrittmotorsteuerung braucht beim Einschalten einen Referenzpunkt, also Lichtschranke, Hallsensor oder Taster.

Nun schießt mir noch eine Idee durch den Kopf: Ein Servo kann 0-180° absolut positionieren. Wäre auch noch einen Gedanken wert. :slight_smile:

Zweite Idee wäre ein Poti für die Istposition, zusammen mit einem Gleichstromgetriebemotor.

Kritisch sind immer Bibliotheken, wenn sie für den UNO geschrieben sind, ob sie dann auch auf dem Nano laufen

Problemlos.

agmue:
Bitte nicht vergessen: Eine Schrittmotorsteuerung braucht beim Einschalten einen Referenzpunkt, also Lichtschranke, Hallsensor oder Taster.

Nun schießt mir noch eine Idee durch den Kopf: Ein Servo kann 0-180° absolut positionieren. Wäre auch noch einen Gedanken wert. :slight_smile:

Ist das mit dem Referenzpunkt gut anzuwenden bei meinem Beispiel? (siehe Anhang weiter oben)
Bräuchte ein Servo auch einen Referenzpunkt? Anhand von ‘absolut’ verstehe ich, dass der das nicht braucht und immer absolut positioniert wird… also ‘er’ weiß, auf welcher Grad-Position er steht.

Achja, »Das Plastikgetriebe hält keine Drehversuche von außen aus, das muß ausgeschlossen sein.« – ich bin mir nicht sicher, ob ich das richtig verstanden habe. Man darf den drehenden Stift nicht von Hand verändern? Oder geht es um Widerstand? Dass das Plastikgetriebe es nicht aushalten würde, wenn der Motor drehen soll, jedoch zu viel Widerstand vorhanden ist?

Ich glaube ich hole mir erstmal den Nano + Erweiterungskarte + Temperaturfühler, um mich mit dieser neuen Welt anzufreunden :slight_smile:

combie:
Problemlos.

Na dann kann’s losgehen :smiley:

edit:
Von der Form her würde dieser Motor super für mein Vorhaben passen. Gibt es nicht auch servos, die einen solchen ‘Stift’ haben? Den Motor könnte ich echt wunderbar anbringen…

Von der Form her würde dieser Motor super für mein Vorhaben passen. Gibt es nicht auch servos, die einen solchen 'Stift' haben? Den Motor könnte ich echt wunderbar anbringen...

Dann nimm den doch!

Ist es denn schwierig eine Lichtschranke u.a. ein Referenzpunkt anzubringen?
:slight_smile:

Normalerweise ist es nicht schwierig einen Endschalter anzubringen.

Der oben erwähnte kleine unipolare Schrittmotor wird übrigens in Klimaanlagen verbaut
(steuert da Luftklappen), einer der Gründe, warum er so günstig zu haben.

Hehe super sache! D.h. ein Sensor kommt mit auf den Nano oder das Shield und speichert die Positionen auch wenn alles aus ist?

Ich plane u.a. auch gerade etwas mit Luft:
Ein Luftmischer... Dieser mischt kalte Außenluft mit warmer Innenluft und somit soll es möglich werden, eine Raumtemperatur festzulegen. Steigt diese z.B. über 25°C, so öffnet sich die Kaltluft-Schleuse so lange, bis die Temperatur wieder unter 25°C ist. Bleibt die Temperatur unter 25°C, so bleibt die Schleuse zu.

Doch zurück zum Sensor: Ich habe einige Bilder von solchen Sensoren angeschaut, wenn es echt nur darum geht, diese beim Nano oder Shield anzubringen, würde ich beim Schrittmotor bleiben.

Wenn du mechanische Endschalter verwendest ist das so aufwändig wie ein Taster,
zwei Kabel (GND + pin mit INPUT_PULLUP), bei einer Lichtschranke oder einem Reflektionsdetektor
sind es ein/zwei mehr für die LED.

Die Holzplatte, welche sich durch den Motor bewegen wird, könnte in der geschlossenen Position auch einen Schalter gedrückt halten. Wäre das auch eine Möglichkeit, dem Schrittmotor zu sagen, an welcher Stelle das Ende ist? D.h. bei jedem Einschalten müsste sich der Motor nach rechts drehen, bis der Schalter gedrückt wird, dann würde dies die 0-Position vorgeben.

Wie sieht es mit einem Servo aus, ich denke, da habe ich nun doch eine ganz gute Lösung für die Montage. Wäre es einfacher mit einem Servo?

lostinabox:
Die Holzplatte, welche sich durch den Motor bewegen wird, könnte in der geschlossenen Position auch einen Schalter gedrückt halten.

Das wäre das Einfachste, inclusive der von dir beschriebenen Vorgehensweise.
Wie weit du dann in die andere Richtung fährst hast du ja in der Hand.

Ich halte einen Servo für teurer oder nicht kräftig genug.
Habe aber mit Servos oder Motoren noch keine Projekte realisiert,
sondern die nur zu Testzwecken betrieben.

Auch fehlt mir ein Marktüberblick bezüglich Servos und (Schritt-)Motoren.

Whandall:
Das wäre das Einfachste, inclusive der von dir beschriebenen Vorgehensweise.
Wie weit du dann in die andere Richtung fährst hast du ja in der Hand.

Cool, dann stimmt immerhin meine Denkweise! Eine andere Frage:

Wäre es möglich, den Schrittmotor so zu programmieren, dass er jeweils einen Step pro Temperatur-Grad macht (oder pro Temperaturbereich)?

z.B.:

  1. Step: 25,1° bis 26°C
  2. Step 26,1° bis 27°C
  3. Step 27,1°C bis 28°C
    etc.

Dann müsste man noch ein Maximum einstellen, da die Platte im 90° Winkel maximal geöffnet wäre.
also bei diesem Schrittmotor müsste nach 16 Steps also Schluss sein (5,625°/Step), die Temperatursprünge müsste man demnach anpassen.

Ich möchte verhindern, dass die Schleuse ständig öffnet und schließt, sondern sich irgendwie einpendelt. Wenn sie ganz offen ist, könnte es auch sein, dass die Temperatur zu schnell fällt…
Dazu kommen wir ja erst später beim Bau… :slight_smile: Trotzdem interessiert mich das sehr.

Also bevor ich die Bestellung absende…:

Schrittmotor
Nano
Shield
Temperaturfühler

Das habe ich bereits im Einkaufswagen, die richtige Wahl?
Welchen Taster könnte man dafür nehmen?
Gibt’s noch etwas, das ich vergessen habe?

Ich danke Euch :slight_smile:

Es ist ein Stepper Motor, den du kannst Steppen lassen wie du magst.

Als Endschalter kannst du jeden beliebigen nehmen,
da gibt es sicher auch viele Empfehlungen aus dem Bereich 3D Druck, CNC,
hängt mehr von der Art des Einbaus, dem Platz usw. ab.

Industrieschalter sind wahrscheinlich der Overkill, auch vom Preis her.