- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Seite 3 von 3 ErsteErste 123
Ergebnis 21 bis 26 von 26

Thema: Anfängerprojekt Schrittmotor steuern

  1. #21
    Erfahrener Benutzer Robotik Einstein Avatar von Searcher
    Registriert seit
    07.06.2009
    Ort
    NRW
    Beiträge
    1.703
    Blog-Einträge
    133
    Anzeige

    E-Bike
    Zitat Zitat von p@ty Beitrag anzeigen
    ...ok, also ich versuche als erstes mal nur einen Takt über den Timer1 an einem Pin zu erzeugen - den maximalen Takt (oder annähernd) für den den Leadshinetreiber.
    ....ähm, was sagt ihr?
    Hallo p@ty,

    es gibt so viele Möglichkeiten einen Takt zu erzeugen. Dein Programm nutzt einen Interrupt um dort einen Pin zu toggeln. Damit lassen sich sicher keine 300kHz erzeugen weil Interruptausführung (mit Sichern von Registern) und Toggle Kommando zuviel Zeit beanspruchen. Es werden dann mehr Interrupts benötigt als überhaupt ausgeführt werden können. Die Timer im AVR können aber selbst HW-mäßig einen Pin toggeln.

    Ich habe Dir dazu mal einen Testgenerator für einen Mega88 angehangen, der compiliert für einen Mega168 auch dort laufen sollte. Mit max. 2550Hz ist der Generator zwar noch weit von 300kHz entfernt, sollte aber zum Probieren gut sein. Welche Frequenz brauchst Du denn effektiv bzw Dein Motor? 300Khz scheint mir für die Praxis schon recht viel. Aber mit 16MHz Systemfrequenz und Prescaler = 1 für Timer1 kommt man hier schon recht einfach auf 40kHz und bei weiteren Modifikationen auch höher - teoretisch bis 333kHz wenn man den ADC_new Wert zB. manuell auf 2047 setzt.

    Programm ist bis etwa 1,9kHz getestet. Mangels eines richtigen Schrittmotortreibers diente ein ATtiny44 mit L293D als Simulator mit einem bipolaren Schrittmotor (der bei höherer Taktfrequenz aus dem Tritt kam) aus einem Floppylaufwerk.

    Das Programm nutzt den Timer1 des Mega88 im Mode 15. Das ist Fast-PWM, bei dem der Timer immer nur bis zum OCR1A Registerwert läuft. Durch ein Poti wird der OCR1A Wert verändert und damit wird die Frequenz des Taktes beeinflußt. Im PWM Modus wird der OCR1A-Wert gepuffert und erst zu einem unkritischen Zeitpunkt effektiv,; hier am "BOTTOM" bei TCNT1 = 0. Die Ausgabe des Taktes wird durch die Timereinstellung Toggeln von OC1A bei Erreichen des OCR1A-Wertes erreicht.

    Mit zwei Tastern kann man DIR und ENABLE beeinflussen.

    Gruß
    Searcher


    Frequenzangaben zum Programm berichtigt. Hoffe sind keine weiteren Bugs drin
    Angehängte Dateien Angehängte Dateien
    Geändert von Searcher (23.10.2016 um 08:52 Uhr) Grund: Angaben zur Frequenz des Generators berichtigt.
    Hoffentlich liegt das Ziel auch am Weg
    ..................................................................Der Weg zu einigen meiner Konstruktionen

  2. #22
    Benutzer Stammmitglied Avatar von p@ty
    Registriert seit
    05.06.2011
    Ort
    Bottrop
    Beiträge
    51
    Hallo Searcher,

    alles gut bei dir?

    Danke für deine Mühe und Umfangreiche Antwort! Am WE werde ich das mal testen und Bescheid geben! �� Danke Dir! ��

  3. #23
    Erfahrener Benutzer Robotik Einstein Avatar von Searcher
    Registriert seit
    07.06.2009
    Ort
    NRW
    Beiträge
    1.703
    Blog-Einträge
    133
    Zitat Zitat von p@ty Beitrag anzeigen
    alles gut bei dir?
    Danke für deine Mühe ...
    Joah, alles gut. Hab 'ne schöpferische Pause um nicht zu sagen Ideensuchend. Da kam mir Deine Frage gerade recht um mal wieder einen Steckbrettaufbau zu machen und mit dem verstaubten Schrittmotor in einem alten Floppylaufwerksskelett etwas zu experimentieren. Also ich danke Dir .

    Übrigens könnte man nach Deinem Programmentwurf mit dem Toggeln in der ISR auch höhere Frequenzen hinbekommen, wenn man die Anweisung "on Timer1 Frequenzerzeugung" mit dem Parameter "nosave" ausrüstet. Dann fallen die ganzen zeitraubenden Registersicherungen weg und in der ISR würde ich dann dann nur noch "!sbi PIND,2" reinschreiben. Timer1 natürlich vorher in einem Mode konfigurieren, der ein Setzen des Timer1 (TCNT1) in der ISR unnötig macht. SBI ist ein Assembler Befehl, der hier Bit 2 im PIND Register setzt, aber das SREG und andere Prozessorregister nicht verändert (deshalb keine Registersicherungen notwendig und deshalb das "nosave"). Ein Ausgangspin wird normalerweise im PORTx Register geschaltet. Wird stattdessen das entsprechende PINx Registerbit gesetzt, wird der PORT-Pin bei den meisten neueren AVR, wie Mega88, Mega168 getoggelt; und man braucht es dort nicht erst zu löschen um es wieder zu setzten um den Ausgangspin zu toggeln.

    Aber 300kHz kann man damit wahrscheinlich auch nicht erreichen. Außerdem würde der AVR bei der Frequenz nur noch in der ISR hängen und sonst kaum noch etwas anderes machen können. Probiere ich vielleicht auch nochmal aus. Vielleicht sogar auch bis zum Wochenende

    Gruß
    Searcher
    Hoffentlich liegt das Ziel auch am Weg
    ..................................................................Der Weg zu einigen meiner Konstruktionen

  4. #24
    Erfahrener Benutzer Roboter-Spezialist Avatar von erik_wolfram
    Registriert seit
    02.12.2009
    Ort
    Berlin
    Beiträge
    406
    Hallo und guten Morgen,

    ein schönes Projekt welches mich an meine Anfänge erinnert (auch mit BASCOM).
    Beim Querlesen ist mir was aufgefallen:

    Ich würde auf jeden Fall davon abraten die Massen zu verbinden! Schrittmotoren stören ordentlich - und wenn es sich vermeiden lässt sollte man die Massen artig getrennt lassen. Die Treiber haben optisch isolierte Eingänge - das hat seinen Grund! Das heißt das 5 V Potential ist nur an den jeweiligen Eingängen nötig: STEP, DIR und ENABLE.
    Je nach Schaltung legt man an alle 3 Dioden 5V an die 5V-Anschlüsse (STEP, DIR, EN) und Schaltet separat die Masse, oder man verbindet die GND-Anschlüsse und schaltet jeweils die 5 V. ENABLE kann hierzu bei den meisten Treibern dieser Art offen bleiben, da es invertiert ist.

    Anbei: mein Programm zur Schrittmotoransteuerung wurde so groß, dass ich dann irgendwann gezwungener Maßen auf C umgestiegen bin - das habe ich bis jetzt nie bereut

    Gruß Erik
    Meine Projekte auf Youtube

  5. #25
    Erfahrener Benutzer Robotik Einstein Avatar von i_make_it
    Registriert seit
    29.07.2008
    Ort
    Raum DA
    Alter
    56
    Beiträge
    2.814
    Zitat Zitat von erik_wolfram Beitrag anzeigen
    Ich würde auf jeden Fall davon abraten die Massen zu verbinden! Schrittmotoren stören ordentlich - und wenn es sich vermeiden lässt sollte man die Massen artig getrennt lassen.
    Also anstelle die EMV einzuhalten und so auch andere Störeffekte loszuwerden einfach einen Teil ohne Masse machen oder die Störungen über das Stromnetz schicken. So toll ist die Idee nicht wirklich.
    Vor allem ohne Masse(Erdung) würde das nur bei Batteriebetrieb gehen.
    Bei Netzgespeisten Spannungsversorgungen, macht einem spätestens der Pe einen Strich durch die Rechnung.
    Oder wenn man meint ein Eurostecker hat ja keinen Pe, dann der N. Spätestens wenn Schutzleiter und Nulleiter auf Etagen- oder Gebäudeebene Verbunden werden wandern die Störungen da weiter.
    Und im Extremfall hat man da dank EMV auch ein rechtliches Problem.
    Also Entstören ist im Worstcase die kostengünstigere Variante gegenüber GND trennen und die Probleme ins öffentliche Stromnetz einzuspeisen.
    Die Rechnung die das EVO einem als Verursacher für die Störungssuche schreibt wird ganz schnell mal vierstellig.

    Optokoppler sollen in EMV gestörter Umgebung eigentlich nur die Logik vor eingekoppelten Spannungsspitzen schützen.
    Und nicht als Grund herhalten selbst auf jede Entstörung zu verzichten.
    Geändert von i_make_it (26.10.2016 um 08:26 Uhr)

  6. #26
    Benutzer Stammmitglied Avatar von p@ty
    Registriert seit
    05.06.2011
    Ort
    Bottrop
    Beiträge
    51
    Hi zusammen!

    Viele Dank für eure Beiträge - leider hat mein Sohn einen Grippevirus aus dem Kindergarten mitgebracht und fleißig zu Hause verteilt.
    Denke wird sich noch etwas verzögern bis ich weiter machen kann.
    Aber danke für alle Infos.

    Viele Grüße,

    p@

Seite 3 von 3 ErsteErste 123

Ähnliche Themen

  1. Schrittmotor zeitpräzise steuern
    Von Geistesblitz im Forum Software, Algorithmen und KI
    Antworten: 7
    Letzter Beitrag: 12.07.2011, 23:07
  2. schrittmotor steuern
    Von watermelon im Forum Software, Algorithmen und KI
    Antworten: 6
    Letzter Beitrag: 17.11.2010, 21:23
  3. Schrittmotor über Schrittmotor steuern?
    Von Tarribo im Forum Motoren
    Antworten: 1
    Letzter Beitrag: 06.06.2010, 23:40
  4. Schrittmotor mit LPT steuern
    Von timo1105 im Forum Elektronik
    Antworten: 7
    Letzter Beitrag: 11.11.2006, 12:40
  5. [ERLEDIGT] Schrittmotor mit PC steuern
    Von SK112 im Forum Elektronik
    Antworten: 4
    Letzter Beitrag: 08.01.2005, 09:23

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Solar Speicher und Akkus Tests