Impulsgeber 24V - Nano, L298N, RTC

Aloha,

ich bin gerade dabei meine alte Nebenuhr fit zu machen. Typisch für DDR-Fabrikate sind die 24V Uhrwerke, welche mittels Impuls einen Minutenschritt machen.
Einen solchen Impulsgeber möchte ich mit Hilfe eines Arduino-Nanos, einer RTC (DS3231) und einem Treiber (L298N) realisieren (Ich weiß es gibt fertige Lösungen, aber das ist mir zu einfach. :confused: ).

Uhrzeit setzen und im Minutentakt einen Methode aufrufen ist relativ simpel gemacht.

Mein derzeitiges Problem besteht jedoch darin, das L298N richtig zu verstehen. Trotz etwaiger Tutorials, Schaltzeichnungen und Codebeispielen bekomme ich keinen "Saft" zum Ausgang, an dem das Uhrwerk hängt. Ich habe schlichtweg den Verdacht, dass ich i.etwas falsch mache.

Vielleicht weiß jemand Rat? :slight_smile:

Im Anhang habe ich meine derzeitige Verkabelung einmal dargestellt. Der Jumper wurde gezogen, da das Netzteil mehr als 12V Spannung liefert. Das Nano wird derzeit mittels USB betrieben. Der unten stehende Code ist bunt zusammengewürfelt, er könnte ebenfalls fehlerhaft sein.

Ziel ist es, dass mir der Treiber alle Minute einen kurzen Impuls von 24V an den Ausgang (an das Uhrwerk) sendet. Dabei könnte man, meiner Ansicht nach, das Uhrwerk als Äquivalent zu einem Motor ansehen, oder?

// Init driver L298N
int in1 = 10;
int in2 = 8;
int enA = 9;

void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600); 
  pinMode(in1, OUTPUT);
  pinMode(in2, OUTPUT);
  pinMode(enA, OUTPUT);
}

void loop() {
  // put your main code here, to run repeatedly:
  Serial.println("HIGH");
  digitalWrite(in1, HIGH);
  digitalWrite(in2, LOW);
  analogWrite(enA, 1024);
  delay(2000);
  Serial.println("LOW");
  digitalWrite(in1, LOW);
  digitalWrite(in2, HIGH);
  analogWrite(enA, 1024);
  delay(2000);
}

Ogottogott, da weiß ich garnicht, wo ich anfangen soll :frowning:

Du könntest Dir etliche Probleme sparen, wenn Du einen Transistor und 1-2Widerstände verwenden würdest, statt des LM293. Oder ein Relais-Modul, wenn Du nicht löten möchtest.

Interessant wäre ein Schaltbild des Moduls mit dem LM293, was da schon alles drauf ist (Schutzdioden...) bzw. noch angeschlossen werden muß. Bevor man mit Kanonen auf Spatzen schießt, muß man schon wissen, wie die Kanone bedient werden möchte :wink:

Eigentlich brauchst Du nur 1/4 des LM293, aber ohne Schaltbild ist es sicherer, eine Hälfte zu verwenden. In1 und In2 können fest auf Vcc und Gnd gelegt werden, dann reicht ein Impuls an ENA um die Uhr weiterzuschalten.

Das analogWrite(enA, 1024) ist falsch, weil 1024 kein gültiger Wert ist, und PWM hier weder nötig noch sinnvoll ist. Stattdessen mit digitalWrite() den Ausgang für die gewünschte Zeit auf HIGH stellen. In Deinem Verdrahtungsplan ist ENA garnicht angeschlossen, dann geht natürlich garnichts. Vorsichtshalber sollte ein Pulldown-Widerstand (10k) nach Gnd hinzugefügt werden, damit der Treiber ausgeschaltet ist, wenn der Arduino ausgeschaltet ist oder programmiert wird.

Die 5V sollten auch angschlossen werden.

Der L298 braucht 5V für die Logik. Außerdem muß die Masse des Arduino mit dem L298 Modul verbunden werden.
Die LED braucht einen Vorwiderstand.

Grüße Uwe

Der Impulsgeber ist an DC motor 2 angeschlossen, die Logik aber an den Pins für Motor 1. Also IN3, IN4, DC motor 2 enable jumper, DC motor 2 "+" und DC motor 2 "-" gehören zusammen. Quelle.

@agmue
Da hast du vollkommen Recht. Im Bild ist es nur falsch dargestellt. Eigentlich ist der Verbraucher an Anschluss 1 angeschlossen.

@uwefed
Ergo ich benötige externe 5V Gleichstrom, bevor überhaupt etwas an dem Modul funktioniert? :slight_smile:

lg

Harry_993:
@uwefed
Ergo ich benötige externe 5V Gleichstrom, bevor überhaupt etwas an dem Modul funktioniert? :slight_smile:

Bislang hatte ich das Modul noch nicht mit mehr als 12V versorgt, daher den 5V-Anschluß als Ausgang verwendet. Nun habe ich mal die Steckbrücke gezogen, die 5V LED geht aus. Wenn ich dann mit den 5V vom Arduino verbinde, leuchtet die LED wieder und auch die Funktionalität ist wiederhergestellt, Motor dreht.

Antwort also: Ja.

Dir ist sicherlich klar, daß Du eine H-Brücke benutzt und dort die Polarität wechseln kann, damit ein angeschlossener Motor die Richtung wechselt. Außerdem ist eine H-Brücke nicht galvanisch betrennt. Ich kenne die Schaltung der Nebenuhr nicht, daher ist die Polarität abzuklären. Die Uhr soll ja nicht rückwärts laufen :wink:

Der Uhr wird die Polarität egal sein. Sie bekommt einen Impuls, ein Elektromagnet schaltet sie weiter, und dann muß die Spannung wieder abgeschaltet bleiben.

Mit einem 24V Netzteil und 2 Drähten kann man das leicht selbst nachprüfen.

Korrekt. 5V vom Netzteil angelegt, LED leuchtet und alles klappt wie gewollt.
Polarität wechselt alle Minute, so habe ich das mit dem Netzteil in Erfahrung bringen können. Reicht quasi die Umkehrung der Eingänge. Rückwärts laufen die Uhrwerke scheinbar nicht.

Aber das ist natürlich nicht die schönste Lösung, da ich jetzt mit 2 Netzteilen dastehe. Schnellste Lösung wäre ein Spannungswandler/ -regler.
Gäbe es jedoch noch eine "smoothere" Lösung zum L298N? (MOSFET, Relais)

Was hältst Du von einem Step-down Spannungsregler von 24 auf 5 V?

Das mit dem Rückwärtslaufen war natürlich Spaß :grin:

Harry_993:
Gäbe es jedoch noch eine "smoothere" Lösung zum L298N? (MOSFET, Relais)

wie DrDiettrich schon sagte, ist ein L298N hier eigentlich der falsche Ansatz. Ein einzelner Transistor mit 2 Widerständen tut's auch. Sollte der Impuls-Strom größer 100 mA sein, macht ggf. auch ein MOSFET Sinn.

http://forum.arduino.cc/index.php?topic=390127.0

schau mal hier

Harry_993:
Polarität wechselt alle Minute, so habe ich das mit dem Netzteil in Erfahrung bringen können. Reicht quasi die Umkehrung der Eingänge.

Wenn die Uhr ständig unter Spannung steht, dann könnte sie durchbrennen.