Linearmotor Treiber schaltet bei LOW?!

Hallo,

ich habe mir diesen (hoffentlich) Motortreiber

gekauft und wollte nun mal etwas damit rumspielen. Ich verwende einen 12 V Linearmotor und einen Arduino Uno.

Ich weiß nicht, inwiefern alle Bezeichnungen auf der Platine einem Standard folgen, am besten ruft ihr ggf. den Link auf, wenn etwas unklar ist. Ich habe das ein 12 V Netzteil an DC- und DC+ verschraubt, den Motor an MT- und MT+ angeschlossen.

Vom Arduino habe ich GND an COM angeschlossen. Außerdem verwende ich vom Arduino Pin 7 und Pin 8, die ich aber nicht angeschlossen habe, sodern einzeln an die jeweiligen K1, K2, SW1 oder SW2 halte.

Dazu verwende ich folgendes Programm:

// Engine
int engineUp = 7;
int engineDown = 8;

void setup() {
  // Engine initialization
  pinMode(engineUp, OUTPUT);
  pinMode(engineDown, OUTPUT);
  digitalWrite(engineUp, LOW);
  digitalWrite(engineDown, LOW);
}

void loop() {
    digitalWrite(engineDown, HIGH);
}

Ich setze also Pin8 auf HIGH, Pin7 bleibt immer LOW. Das passt auch, wenn ich per Multimeter GND und das Kabel an Pin8 messe bekomme ich 5V. Messe ich Pin7, dann sehe ich dort 0V auf dem Multimeter. Ob ich beim Adrunio an die richtigen GPIOs angeschlossen habe, habe ich auch mehrfach nachgezählt.

Jetzt würde ich erwarten, dass der Motor ein- oder ausfährt, wenn ich Pin8 an K1 oder K2 halte. Dem ist aber nicht so. Wenn ich dagegen Pin7 (ist über das Setup immer noch auf LOW) an K1 oder K2 halte, dann höre ich den Treiber bzw. dessen Relais klacken und der Motor fährt.

Ich kapiere es einfach nicht. Ich habe auch mehrfach das obige Programm auf den Arduino gespielt. Immer mit dem gleichen Resultat. Das würde doch bedeuten, dass ich nie einen der Pins auf 0 schalten dürfte, wenn der Motor stehen soll, sondern immer auf 5V bleiben müssten, was aus meiner Sicht keinen Sinn macht. Ich habe leider auch nur einen dieser Treiber, weshalb ich das Verhalten an keinem zweiten testen kann.

Habt ihr eine Idee, was ich falsch mache? Gerne liefere ich auch Infos nach, falls noch welche fehlen.

Vielen Dank und viele Grüße!

Bisschen Suchmaschine Quälen :wink:

1 Like

Aus der Beschreibung des Artikels:

Signal input: active low level, the input is the negative pole of the optocoupler. When the voltage is lower than 2V, it is considered that there is a signal

d.h. doch, daß er genauso funktioniert, wie von dir beschrieben:
0V = LOW = Signal (Motor fährt)
2V und mehr = HIGH = kein Signal (Motor stoppt)

So eine Beschaltung bietet sich bei Verwendung mit Tastern (wofür das Modul ausgelegt ist) an. Diese stellen ja beim Tasten (Motor soll fahren) auch nur eine Verbindung zu GND(0V) her.

Also braucht man nur die Logik im Sketch entsprechend anpassen (LOW<->HIGH) und man kann damit arbeiten.

1 Like

Danke euch.

@fony: Meiner hat die Jumper-Pins nicht. Ich kann also nicht umschalten. Mir war leider nicht bewusst, dass so eine Variante auch Sinn machen könnte.

@derGeppi: Das hatte ich nicht gelesen. Ich hatte mir lediglich die Bestückung auf einem der Screenshots angeschaut und den ganzen Text wegen der dazwischen hängenden Werbung für andere Artikel übersehen.

Ist es nicht deutlich Stromintensiver, wenn ich K1, K2, SW1 und SW2 permanent mit 5V beschalten muss, als wenn ich nur im Bedarfsfall, also wenn der Motor fährt, auf 5V gehe? Das Board soll bei meiner Hühnerklappe zum Einsatz kommen und am Ende an einem Raspberry Pi betrieben werden, der u.a. bereits meiner Gartenbewässerung steuert.

Was ich gerne verstehen würde: Liegen, wenn keine Pins vom Arduino an den Signaleingängen (K1, K2, SW1 und SW2) angeschlossen sind, immer 5V über den DC+/DC- Anschluß an? Denn sonst würde ich nicht verstehen, wie es funktionieren kann, wenn ich nur im COM-Signaleingang GND habe und z.B. Pin7 mit 0V an z.B. K1 halte, dass sich der Motor dann bewegt.

Linearmotor und Hühnerklappe war hier im Forum schon mall, vielleicht hilft dir der Beitrag weiter.

1 Like

Die Signalspannungen sind da gar nicht so stromintensiv. Zumindest fallen sie irgendwann deutlich hinter dem Bedarf des Raspberry, den du dem Ganzen irgendwann ja vorschalten möchtest.

Module power consumption: 0.6W (without load motor), static 0.1W

Aber wenn du eh schon einen Mikrocontroller verwenden möchtest, dann spar dir diesen Motor-Controller doch gleich und schließ Endschalter und zwei Relais (die können dann auch high active sein) für Fahrtrichtungsumkehr (oder besser 3 Relais, 1 noch für die Motorspannung selbst) direkt am Controller (Arduino oder Raspberry) an. So hast du die volle Kontrolle über alles, was passieren soll.

Das kannst du ganz leicht selbst überprüfen: schließ doch mal nur diesen Controller an der Spannungsversorgung an (ohne Arduino und Motor) und miß die Spannung zwischen K1 (oder einem der anderen Anschlüsse) und COM(GND). Ich könnte wetten, daß dort schon ein Wert größer 2V vorliegt.

1 Like

Danke euch für eure Antworten.

Wie genau würde das denn funktionieren oder hat das einen Namen, damit ich danach googlen kann? Für was die Endschalter? Der Linearmotor stoppt doch automatisch, sobald er oben/unten ist?!

Finde ich jetzt keine so gute Idee, wenn er doch schon dieses funktionierende Modul hat, auf demm auch schon, wie ich erkennen konnte, die einen und anderen Schutzmassnamen drauf sind, Warum dann extre andere Relais oder Relais-Board kaufen, die dann vlt. auch noch mit zusätzlichen Schutzmassnamen nach-/aufgerüstet werden müssen, damit der Controler störunsfrei arbeiten kann? und zudem am schluss auch wieder praktisch dasselbe macht, wie das Treiber-Board, das er schon hat?Und hinterher, wenn der TO jetzt Relais-Board(s) kauft, das versucht zu beschalten und dabei probleme bekommt, und hier wieder fragt, bin ich ganz sicher, dass er die Rückfrage bekommt: Warum nimmst Du nicht dasTreiber-Board, dass Du zu Deinem Linear-Antrib schon hast ? Das hat doch funktioniert?"
Es gibt sicher Situationen, wo man es sich mit den gewählten HW-Komponenten das Leben unnötig schwer macht, und man sich Gedanken dazu machen muss, auf andere HW auszuweichen, aber hier sehe ich das absolut nicht gegeben.

1 Like

Die meisten haben Endschalter eingebaut, betone das Wort "meisten" um sicher zu sein Strom messen wen der am Ende ist und 0A, dann ist einer eingebaut, Datenblatt lesen.

1 Like

Einfach mal Arduino Hühnerklappe googlen. Je nach verwendeter Hardware gibt es da sehr viele unterschiedliche Herangehensweisen.
Ein sehr gut dokumentiertes (aber auch umfangreiches) DIY-Projekt ist Chicken-Coop-Control sowohl für Arduino also auch Raspberry.

Das mag für den Linearmotor richtig sein. Andere Systeme (wie z.B. Hühnerklappe durch Seilzug) benötigen diese unbedingt für ihre Endpositionen oder um ein Absenken auf den Hühner-Rücken zu erkennen (Seil entspannt sich) und dementsprechend zu reagieren. Auch bitte bedenken, daß so ein Linear-Motor immense Kräfte aufbauen kann, denen so ein Hühnchen u.U. nicht viel entgegensetzen kann.. Einen ungewollten Projektwechsel zur Arduino-Hühnerguillotine will ja auch keiner :wink:
Also auch hier die ein oder andere Schutzfunktion einplanen.

1 Like

Danke euch.

Finde ich jetzt keine so gute Idee, wenn er doch schon dieses funktionierende Modul hat, auf demm auch schon, wie ich erkennen konnte, die einen und anderen Schutzmassnamen drauf sind,...

Ich habe noch paar Motoren, von kleinen über Scheibenwischer Motoren zum Rumspielen rumliegen, dafür habe ich u.a. auch noch zwei L298N. Ich würde jetzt eher den L298N nutzen, dann brauche ich kein "Dauer 5V" für etwas, das 24/7 laufen muss. Den hier genannten Treiber würde ich zur Rumspielerei verwenden.

Die meisten haben Endschalter eingebaut, betone das Wort "meisten" um sicher zu sein Strom messen wen der am Ende ist und 0A, dann ist einer eingebaut, Datenblatt lesen.

Meiner hat das. Ich habe es in der Kaufbeschreibung und in Datenblatt gesehen, werde aber trotzdem noch zwei solcher Fenstersensoren verbauen, um benachrichtigt zu werden, ob die Klappe ganz hoch oder ganz runtergefahren ist. Was ich gelesen habe gibt es keine Möglichkeit den Stand der Motoren abzufragen.

Danke dir.

Ich habe hier im Forum gesucht. Ja, ich habe mir massenweise Möglichkeiten auf YT und in Blogs, etc. angeschaut. Am Anfang war ich bei einer Seillösung, aber der Linearmotor gefiel mir dann doch am besten.

Klar, für meine ersten Seilversuche hatte ich auch diese Fenstersensoren verwendet, um den Stand der Klappe zu ermitteln. Für den Linearmotor, den ich jetzt verwenden werde, will ich die Sensoren nur verwenden, um sicherzustellen, dass die Klappe morgens komplett auf und am Abend komplett zu ist.

Wegen der Guillotine will ich eine Idee wie diese hier ab Minute 4:42 umsetzen: https://www.youtube.com/watch?v=EslCGKDSwMg&list=PLN6GcVDsiZDVn5tTz_Ydw-J4iIZD3l3bM&index=28

Man kann auch mit dem Motor öffnen und bei einfahren nicht Starr mit der Klappe verbinden , dann überleben das auch deine Flattermänner :wink:
Meistens wurde hier Schiebetür gebaut.

1 Like

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.