Hallo Baue gerade einen Schlitten, der mit einem Gleichstrommotor angetrieben wird. Endschalter am Anschlag links und Endschalter am Anschlag rechts. Nach kurzem Drücken einer Start- Taste soll der Schlitten von rechten Anschlag zum linken Anschlag und wieder zurück laufen und stoppen. Steht der Schlitten aus irgendwelchen Gründen (z.B. nach Stromausfall) irgendwo zwischen den Endschaltern, soll er nach kurzem Drücken der Start- Taste der Schlitten zum rechten Anschlag laufen und stoppen. Schaltungstechnisch mit ATTINY 48, Motorumpolung usw. kein Problem. Programmtechnisch kriege ich das aber nicht hin. Hat jemand ein paar Anregungen/ Stichwörter – kein Code!
Na nur dafür brauchts aber keinen µC. Das geht doch auch mit Flipflops. Mit µC: Start --> Anschlag rechts? nein? dann fahre - ja? alles gut, warte auf Taster --> gedrückt? fahre zum Anschlag links --> angekommen? fahre zurück.
... darüber hinaus reicht die Rechenleistung eines ATTINY, für so eine Anwendung bei Weitem, nicht aus;-)
Ja, danke, man könnte auch Relais nehmen usw. Habe aber weder Relais noch Flip- Flops da. Na, dann muß ich mal weiter grübeln mit irgendwelche Flags....?
@Andi Eine mögliche Steuerung mit Taster und Schütz könnte folgendermaßen aussehen: S1 ist ein einfacher Taster. S2 und S3 sind die Endschalter (S3 2-Polig). K0 ist ein einfaches Hilfsrelais. K1 und K2 sind Relais oder Schütze mit mehreren Kontakten. Annahme: K1 sorgt für die Fahrt nach links K2 ist für die Heimreise zuständig S1 ist für den Start zuständig S2 ist Endschalter am Rechtsanschlag S3 ist Endschalter am Linksanschlag M1 ist der Brummer Vorsicht: Steht die Konstruktion beim Einschalten am Linksanschlag, so fährt sie auch ohne Befehl zurück. Wird der Taster (S1) dauerhaft betätigt, so "rattert" das Teil am Linksanschlag. Ein NOT-Aus-Schalter in der Zuleitung könnte auch nicht schaden. Motore laufen üblicherweise noch etwas nach, wenn man ihnen den Saft abdreht. Aus diesem Grunde sollten die Endschalter schon kurz vor Feierabend kommen. Ist nur so hingefloht, deshalb: AEG (A)uf (E)igene (G)efahr
Wenn er doch nur den Tiny, einen Motor und Endschalter hat, und die Schaltung kein Problem ist, dann reicht es doch, die Inputs zu entprellen, mehr oder weniger schlau zu dekodieren und eine Funktion zum Setzen des Motorstatus aufzurufen. Zu klären ist noch, wie der Prozessor das Mitten-Drin-Stehenbleiben erkennt (gemeinsame Versorgung oder Spannungsüberwachung im Lastkreis). Du solltest auch festlegen, wie sich die Logik bei ständig gedrücktem Taster verhalten soll - Hin- und herfahren oder nach dem ersten Durchlauf stehenbleiben, bis der Taster wieder losgelassen wurde. Und, ob nicht doch ein Anhalten während des Zyklus über den Taster sinnvoll wäre? Im einfachsten Fall Inputbits gemeinsam in einem select auswerten: T EL ER neuer Motorstatus 0 0 0 IstMitte -> keine Änderung 0 0 1 IstRechts -> AUS X 1 0 IstLinks -> RECHTS X 1 1 Fehler -> AUS 1 0 0 IstMitte -> keine Änderung | RECHTS (Ausfallerkennung) 1 0 1 IstRechts -> LINKS Ein direkter Richtungswechsel sollte mit einem kurzen AUS unterbrochen werden - das ist aber auch abhängig vom verwendeten Motor/Treiber.
Danke für Eure Antworten, die ich heute durcharbeiten werde. Jedenfalls sehe ich jetzt, daß es doch keine triviale Aufgabe ist, wie ich zuerst erwartet habe. Das "Rattern" habe ich auch, allerdings beim Starten, wenn der Schlitten am rechten Endschalter steht, der ja auch als Abschaltung nach einem Fahrzyclus verwendet wird. Ja, die Tasten haben eine Software- Entprellung und ja, den Motor schalte ich vor einem Richtungswechsel kurz aus und pole nicht im vollen Lauf einfach die Motorspannung um.
Andi schrieb: > Jedenfalls sehe ich jetzt, daß es doch keine triviale Aufgabe ist, wie > ich zuerst erwartet habe. Die Aufgabe ist sogar so trivial, dass sie mit ein paar Relais zu erledigen wäre. Ein Programm für den Tiny passt incl. ausführlicher Kommentare locker auf eine A4 Seite. Andi schrieb: > Schaltungstechnisch mit ATTINY 48, Motorumpolung usw. kein Problem. Poste doch mal deinen Schaltplan. Dann weiß man, wo und wie die ganze Hardware angeschlossen ist... astur schrieb: > Zu klären ist noch, wie der Prozessor das Mitten-Drin-Stehenbleiben > erkennt Ja nun, wenn beim Powerup keiner der Endschalter belegt ist...
:
Bearbeitet durch Moderator
Lothar Miller schrieb: > astur schrieb: >> Zu klären ist noch, wie der Prozessor das Mitten-Drin-Stehenbleiben >> erkennt > Ja nun, wenn beim Powerup keiner der Endschalter belegt ist... ... und der Stillstand des Motors diesen Powerup auch erzwingt. Sonst wird man um eine Überwachung, sei es Strom, Drehzahl oder irgendein Timeout, nicht herumkommen. Könnte auch nützlich für eine Blockiererkennung sein.
Beigefügt mal den Schaltplan. Wenn nach dem Einschalten keiner der beiden Endschalter betätigt ist, ist davon auszugehen, daß der Schlitten irgendwo in einer Zwischenposition steht. Zunächst soll gar nichts passieren, erst wenn die Start - Taste gedrückt wird, läuft der Schlitten an den rechten Anschlag und stoppt dort. Ein erneutes Drücken der Start- Taste soll dann Positionszyclus = Linkslauf zum linken Endschalter, Umkehr, Rechtslauf zum rechten Endschalter und Stop auslösen.
Andi schrieb: > Schlittensteuerung1.png Andi schrieb: > Schaltungstechnisch mit ATTINY 48, Motorumpolung usw. kein Problem. mhh, 1) an Stelle von irgendwelchen Leistungs-OPs würde man wohl eher auf eine H-Brücke setzen und zusätzliche Freilaufdioden spendieren, damit es beim Abschalten nicht zu "lustigen" Effekten kommt. 2) der 7805 Spannungsregler braucht lt. Datenblatt bestimmt noch ein paar Kondensatoren. 3) der ATtiny wird ohne Abblockkondensator nur unzuverlässig funktionieren.
Ja, Wolfgang, danke, ist alles drin: Kondensatoren vor, nach, dazwischen, als Elko und Keramik usw. nur nicht in den Plan gezeichnet, Ja, und geht auch mit H- Brücke. Die OPs habe ich aber fertig da.
Andi schrieb: > Nach kurzem Drücken einer Start- Taste soll der Schlitten von rechten > Anschlag zum linken Anschlag und wieder zurück laufen und stoppen. Was soll die Mimik machen, wenn der Taster dauernd gedrückt ist? Immer hin und her fahren? Vermutlich nicht. Deshalb brauchst du eine Flankenauswertung für den Taster. Dann ist die Logik nach den Entprellen des Tasters mit anschließender Flankenerkennung recht simpel: Variable Richtung (links, stillstand, rechts) Powerup -> warte auf Taste Taste betätigt -> fahre nach rechts Schleife { Endschalter rechts oder Endschalter links -> Richtung = stillstand Endschalter rechts und Tasterflanke -> Richtung = links Endschalter links und Tasterflanke -> Richtung = rechts }
:
Bearbeitet durch Moderator
Danke für Eure Unterstützung! Jetzt läuft es wie es soll. Systematisches Programmieren war das zwar nicht, aber das Ergebnis stimmt.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.