Frage zu 3 pol. Modellbaumotor an AVR

Hucky3000

Geocacher
Tach !

Nachdem ich mich schon seit einiger Zeit durchs Internet wusel und mitlerweile auch mitbekommen habe wie ein Modellbaumotor angesteuert wird habe ich noch eine Frage zur Hardware.
Kann ich den PWM-Anschluß direkt mit einem Tiny2313 ansteuern, oder muss da nen "Treiber" vor ? Wenn ja, wie mach ich das ? Über nen Transistor 5 V direkt über die Kollektor-Emitter Strecke in den Motor ? Oder besser einen Optokoppler nehmen ? Der macht aber nur 50mA, der BC337 800mA.
Den Motor möchte ich permanent an 5 V legen. Irgendwo habe ich gelesen, dass der im Leerlauf um die 6mA zieht - kann hoch gehen bis 1100mA.
Aber was zieht das Ding über die PWM-Leitung ?!

Hucky
 

feinsinnige

Geomaster
Hucky3000 schrieb:
Tach !

Nachdem ich mich schon seit einiger Zeit durchs Internet wusel und mitlerweile auch mitbekommen habe wie ein Modellbaumotor angesteuert wird habe ich noch eine Frage zur Hardware.
Kann ich den PWM-Anschluß direkt mit einem Tiny2313 ansteuern, oder muss da nen "Treiber" vor ? Wenn ja, wie mach ich das ? Über nen Transistor 5 V direkt über die Kollektor-Emitter Strecke in den Motor ? Oder besser einen Optokoppler nehmen ? Der macht aber nur 50mA, der BC337 800mA.
Den Motor möchte ich permanent an 5 V legen. Irgendwo habe ich gelesen, dass der im Leerlauf um die 6mA zieht - kann hoch gehen bis 1100mA.
Aber was zieht das Ding über die PWM-Leitung ?

Hucky

icon_confused.gif


Du weißt gewiss, was Du mache willst.
Für mich isses unklar, drum en paar Fragen:
Wat sollet denn werden, wenns fertig iss?
Was meinste denn mit 3poligem Modellbau-Moto - nen einfachen Gleichstrommotor mit nur drei Ankern?
Meinst Du den PWM, der Teil des Tiny ist? Willst Du an dessen Ausgang den Motor als Last anschließen? Kannste machen, wahrscheinlich einmal. ;) Auch der BC337 wirkt als Treiber was unterdimensioniert, wenn der Motor unter Last so 1100mA benötigen könnt. Et scheint mir aver auch kein gut Idee zu sein, den Motor mit dem PWM immer ein- und auszuschalten. Dürfte diesem Transistor auch net so gut gefalle.
Wozu der Aufwand, wenn de den Motor permanent an 5V lege willst? Dann klemm ihn halt an Vcc von de Tiny. Den Tiny brauchst dann ja net mehr. ;)
Der Motorstrom hängt von de Drehzahl, Last usw. ab. Und von Deiner Stromversorgung.

f
 

kalor

Geonewbie
Hallo Hucky3000

Ich denke, du meinst ein Modellbauservo, auch Rudermaschine genannt.

Wenn ich mit denen experimentiert habe habe den Steuereingang direkt an einen Tiny gehangen.
Es gab seinerzeit mal Bauvorschläge, wo 8 Stück am PC-Paralelport hängen, der darf auch nicht richtig belastet werden.

Schau mal auf http://www.rn-wissen.de/index.php/Servos da ist es beschrieben.

Grüße
Kalor
 

radioscout

Geoking
Wenn Dun ein Servo meinst: das kannst Du direkt mit einem CMOS-IC steuern.
Ich habe mir mal einen Servotester gebaut. Mit einem 4093. Hat perfekt funktioniert.

Wenn die Ruhestromaufnahme zu hoch ist: mit einem MOSFET nur bei Bedarf einschalten.
Wenn Du keinen Port mehr frei hast: nimm einen MMV der vom Steuersignal getriggert wird und die Stromversorgung einschaltet, wenn ein Steuersignal vorhanden ist.
 
OP
Hucky3000

Hucky3000

Geocacher
Hallo !
Danke für die Anrworten.
Ich meine genau das was kalor geschrieben hat. Über Google war ich auch schon auf der Seite gelandet.
Hatte nur nichts über die Ansteuerung (Hardwareseite) gefunden.
Da ich in Assembler code benutze ich für meine Anwendung diverse Schleifen, so dass ich auf 1,2,18 und 19ms komme.
Also werde ich den Steuereingang direkt an den 2313 stecken :)
Auf Arbeit war mir heute noch ne Idee gekommen. Über einen Port einen BC337 ansteuern. Kollektor direkt auf +5. Emitter über 1K an MAsse. Zwischen Emiiter und dem 1K auf den Anschluss vom Motor gehen.
Da wäre evtl. das Problem, dass der Steuereingang um die 0,7V (K/E Strecke) weniger bekommt. Weiß nicht, ob das geht.
Aber wenn ich den Steuereingang direkt auf den Port geben kann....
Wäre schade wenn der abraucht - der 2313 ist was Ports angeht meh oder weniger ausgelastet ;)
Wollte heute Infos vom Hersteller - da war immer nur nen AB dran. Sie rufen ausserhalb der Geschäftszeiten an. Komisch. Vielleicht arbeiten die nur sonntags :schockiert:
Oder die Bude hat dicht gemacht. Graupner, oder so ähnlich....


Hucky
 

jennergruhle

Geoguru
Ich habe schon viele Servo-Schaltungen gesehen, meist ist der Eingang ein CMOS-Gatter, also nahezu ohne Eingangsstrom steuerbar. Ein Widerstand von einigen hundert Ohm in Reihe sollte als Schutz völlig ausreichen.
 

Windi

Geoguru
Für Bascom gibt es übrigens eigene Befehle um einen Modellbau-Servo direkt anzusteuern.
http://mikrocontroller.jacob-pirna.de/myavr_modellbau_servo_bascom.html
 
OP
Hucky3000

Hucky3000

Geocacher
Ja guck !

DAS ist doch (fast) genau was ich gesucht habe ;)
Man kann schön sehen, dass die Pulsstrippe direkt am Ausgang hängt.
Ich bin im Moment mit MY AVR und dem MK1 am Assembler lernen, obwohl ich wohl NIE in die tiefere Materie vordringen werde :irre: Habe schon diverses mit dem 6510 auf einem C64 gemacht - kann man gut umsetzten.
Deswegen wollte ich (vorerst) NICHT auf BasCom zurück greifen.
Muss auch so gehen :roll:
Mal schauen....
Ausserdem läuft das ganze bei BasCom ja über den Interrupt. Brauch ich für meine Anwendungen nicht.
Das Ding soll unter einer bestimmten Vorraussetzung vor, oder zurück laufen. Jeweils bis Endanschlag, oder bisl weniger.
Nicht permanent unter Dampf stehen.

Gerade gesehen, dass nur das zweite Beispiel mit IRQ ist. Kommt davon wenn man alles nur überschlägt statt zu lesen :^^:

Hucky
 

Bussard

Geocacher
Hallo Hucky3000,
die Ansteuerung eines Servos ist eigentlich recht einfach: alle ca. 20ms wird auf den Impulseingang des Servos (gelb oder weiß) ein +3V bis +5V-Impuls gegeben, für die Servomittelstellung ist die Impulslänge 1.5ms, die Endstellungen liegen bei 1ms bzw. 2ms. Die schwarze Ader ist Masse (-), die rote Ader ist +5V (Nennspannung).
Die Stromaufnahme ist sehr stark vom Servotyp und seiner Belastung abhängig (ca. 200mA bis 6A). Alle Angaben passen für ca. 90% der Servotypen, es gibt aber Abweichungen bei Betriebsspannungen, Impulslängen, Wiederholrate usw, sollte aber hier keine Rolle spielen.
Hier eine Ansteuerung gleich für mehrere Servos http://www.voidpointer.de/servoswitch/
hier Servotypen bis zum Abwinken http://www.rc-network.de/magazin/artikel_09/art_09-044/art_044-01.html
Gruß Volker
 

radioscout

Geoking
Aus meinen lange zurückliegenden Modellbauzeiten habe ich noch in Erinnerung, daß es Servos gab, die positive brauchten und welche, die negative Impule brauchten.
 
OP
Hucky3000

Hucky3000

Geocacher
So. Hab mich jetzt durchgerungen das ganze in BasCom zu coden. Aus zeitgründen verzichte ich (vorerst) auf Assembler. Für meine jetzigen Zwecke reicht die Ansteuerung des Servos mit den einfachen Befehlen. Die Hardware ist fertig. Nachdem ich den AVR gesteckt habe ist er zumindest noch nicht abgefackelt ;)
Alles weitere wird sich in den nächsten Tagen zeigen. Mit dem Hardwareaufbau für das nächste Projekt (Nachtcachestation) habe ich schon begonnen :)

Hucky
 
OP
Hucky3000

Hucky3000

Geocacher
So. ich habe das ganze jetzt mal so gemacht wie auf dem Link von Windi.
Der Motor zuckt leider nur. Lass ich eine Taste gedrückt wird das zucken schächer , drücke ich die andere Taste wird das Zucken immer stärker, bis zum Stillstand. Mit zucken meine ich, dass der Servo erst links und sofort wieder rechts drehen will.
Habe schon mit den Werten etwas herumgespielt. Dadurch wird das zucken nur noch stärker, oder schwächer, oder das Ding sagt garnichts mehr.
Ist das Teil vielleicht kaputt ? :schockiert:
Oder muss der Takt zwingend auf
$crystal = 3686411
stehen ?
Ist doch nicht sooo ein gravierender Unterschied zu 4000000 ?
Wenn ja WAS muss ich WO bei den Fusebits von dem Tiny 2313 einstellen ?
Kenne mich da nicht mit aus - soll nicht abrauchen.

Hucky

Code:
$regfile = "attiny2313.dat"
$crystal = 4000000
$framesize = 32
$swstack = 10
$hwstack = 40

Config Portb = &B00000000                                   'PortB komplett auf Eingang
Config Portd = &B01111000                                   'PortD 0-2 auf Eingang - Rest auf Ausgang - PD7 nicht vorhanden
Portb = &B11111111                                          'PortB komplett Pull Up ein
Portd = &B00000111                                          'PortD 0-2 Pull Up ein

Config Servos = 1 , Servo1 = Portd.5 , Reload = 10
Enable Interrupts

Dim Winkel As Byte
' Etwa auf Mittelstellung setzen
Winkel = 70
Servo(1) = Winkel

' Hauptprogrammschleife
Do
 If Pinb.1 = 0 Then
  ' ist Schalter an Pin 2 Port D gedrückt
  If Winkel > 30 Then Decr Winkel
 Elseif Pinb.0 = 0 Then
 ' ist Schalter an Pin 3 Port D gedrückt
  If Winkel < 110 Then Incr Winkel
 End If
 Servo(1) = Winkel
 Waitms 10
Loop

End
 

hihatzz

Geomaster
Im Link von Bussard wird ja eine Menge an Servos gelistet. Sind die alle mit einem ATTiny ansteuerbar? Kann jemand hier eine Empfehlung (Preis/Leistung) aussprechen den man auch bei Reichelt oder Conrad bekommt?
Schon mal Danke
und Gruß,
hihatzz
 
Oben