Aus RN-Wissen.de
Wechseln zu: Navigation, Suche


Leistungsstarkes kompaktes Motor Ansteuerboard

Die Ansteuerung von Motoren ist nach wie vor das Thema Nummer 1, nicht nur bei Robotik – und Modellbaubastlern. Dieses neue Board dürfte für die meisten Anwendungen eine recht ideale Lösung darstellen. Der große Vorteil des Boards besteht darin das gleich zwei Motoren angesteuert werden können und das obwohl das Board extrem klein ist (ca. 5 x 8 cm Roboternetz-Miniformat). Das Board erlaubt bereits ohne Kühlkörper eine längere Belastung von ca. 4 - 5A, wobei die kurzzeitige Belastung bis ca. 10A auch kein Problem darstellt. Der verwendete hochmoderne Motor Chip verträgt sogar weit höhere Strombelastungen, welche aber aufgrund der Wärmeentwicklung ohne zusätzliche Kühlmaßnahmen Kühlkörper / Lüfter etc. nicht erreicht werden. Der neue Motorchip wird nur etwa halb so warm wie der VNH3SP30.

Fehler beim Erstellen des Vorschaubildes: Datei fehlt
Bestückungsplan
Schaltplan

Die Ansteuerung erfolgt über ein beliebigen Controller bzw. Controllerboard. Die Steuerung ist sehr einfach, nahezu identisch mit der Ansteuerung der beliebten Motorchips L298 oder L293D. Die Geschwindigkeit ist über einem PWM-Port, der bis zu 20 Khz liefern darf, regelbar. Weitere 2 Eingänge bestimmen die Drehrichtung oder Motorbremsung.

Der Anschluss erfolgt über 10 poligen Wannenstecker. Der Stecker ist kompatibel zu den Universalport-Wannenbuchsen. Zusätzlich ist das Motorboard für ein optionales Aufsteckboard (RN-MotorControl) vorbereitet, welches auch I2C und RS232 Ansteuerung erlaubt. Alternativ kann auch ein eigenes Steuer- oder Controllerboard über einfache Stiftleisten direkt aufgesteckt werden, man kann sich so die Kabelverbindung ersparen.

Leistungsmerkmale

  • Verwendet den zwei der neuen Motortreiber VNH2SP30 (erzeugt wesentlich weniger Hitze als VNH3SP30), bis 3A kaum Erwärmung
  • Ansteuerung von kleinen und größeren Motoren bis max. 4 A je Motor. Kurzzeitige Spitzenströme sind durchaus auch bis 10A möglich (bei maximaler Belastung ist Temperatur zu überwachen)
  • Einfache Ansteuerung mit jedem Controller der ein oder zwei PWM-Ports besitzt (z.B. RN-Control, andere Atmel Boards)
  • PWM-Ansteuerung bis 20 Khz möglich
  • Betriebsspannung ca. 6 bis 16V – ideal ca. 12V
  • Nahezu kein Stromverbrauch bei ausgeschalteten Motoren (PMW=0) nur 0,025mA
  • Fahrtrichtung und Bremsung über 2 Ports pro Motor steuerbar (ähnlich L298 / L293D)
  • RN kompatibler Boardanschluß (10 pol Wannenstecker Standard-Belegung nach RN-Definition). Sogar Motorstrom wird als analog Signal (0 bis 2,5V) für AD-Port geliefert.
  • Notaus-Anschluss um Motoren durch Schalter/Taster zu deaktivieren
  • Optional aufsteckbares I2C/RS232 Schnittstellenboard RN-MotorControl in Vorbereitung
  • Überlastungsschutz durch Chip interne Temperaturmessung (175 Grad)
  • Zusätzlich Temperaturüberwachung auf der Platine. Durch analogen Port einfach zu überwachen. So kann das Board den Motortreiber bei Überhitzung ausschalten, Lüfter aktivieren etc.
  • Zusatzschutz durch KFZ-Sicherungshalter (kann weggelassen werden wenn man extrem niedrige Bauhöhe benötigt wird, z.B. für aufsteckbares Zusatzmodul).
  • Sehr kompakte Bauweise, nur 5 x 8 cm
  • Kühlkörper ist nur notwendig wenn Dauerlast wirklich ausgenutzt oder überschritten wird
  • Roboternetz kompatible Miniplatine (1/4 Euroformat) und Stecker
  • Deutsche Doku mit Beispielen


Ansteuerung

Ansteuerung

Die Ansteuerung des Boards ist relativ einfach und entspricht weitgehend den üblichen Motorschaltungen wie dem L293D oder dem L298. Zwei Ports bestimmen die Drehrichtung, ein PWM-Port die Geschwindigkeit. Also drei Ports reichen pro Motor aus. Möchte man die Geschwindigkeit nicht regeln, so kann statt dem PWM-Port auch ein normaler Port genutzt werden. Die nachfolgende Skizze sollte alle Fragen klären, weitere Infos findet man auch im Datenblatt des Motorchips (auch auf der beiliegenden CD). Vorgesehen ist das Board für eine Dauerbelastung bis ca. 4 A. Kurze Spitzenströme können weitaus höher liegen. Somit ist in der Regel auch ein höherer Anlaufstrom kein Problem.

RN-VNH2DualmotorAnsteuerskizze.jpg

Aufbautips

Aufbau (falls Bausatz)

Der Aufbau der Schaltung ist durch die vorgefertigte Platine bzw. den Bausatz (über http://www.robotikhardware.de beziehbar) eigentlich sehr einfach. Allerdings handelt es sich bei dem Motorchip um ein SMD-Bauteil das Kontakte im 1mm Raster besitzt. Für dieses Teil ist also etwas größere Löterfahrung und ein feiner Lötkolben notwendig. Für Anwender mit weniger Löterfahrung wird daher auch eine bereits bestückte also fast fertige Version angeboten, diese ist Einsteigern zu empfehlen!

Haben Sie sich doch für den Bausatz entschieden und die Motorchips erst mal aufgelötet, so ist der Rest ein Klacks von wenigen Minuten, zumal es nun wirklich sehr wenig Bauteile sind. Durch die Beschriftung der Platine sind kaum Fehler möglich.

Dennoch einige Empfehlungen:

  1. Man sollte bei dem Widerstandsnetzwerk R1 und R2 (lange schwarze Teile) darauf achten das der Punkt auf der richtigen Seite ist (Punkt dahin wo 1 steht). Das Widerstandsnetzwerk darf also nicht falsch gepolt werden. Auch das Elko darf nicht falsch gepolt werden, dort muss unbedingt darauf geachtet werden das
  2. Auf der Platine ist ein größeres Elko C1 eingezeichnet . Dieses ELKO gehört normalerweise nicht zum Bausatz da es in aller Regel nicht notwendig ist. Lediglich bei sehr langen Zuleitungen kann es wahlweise bestückt werden um Spannungsabfälle aufzufangen. Im Test war das zu keinem Zeitpunkt notwendig. Soll später ein Huckepack Board aufgesteckt werden um das Board auch mit RS232 und I2C Schnittstelle auszurüsten, so darf Elko wegen der Bauhöhe nicht bestückt werden.
  3. Das Board ist vorgesehen für zwei KFZ-Sicherungshalter die mit 10 A abgesichert werden können. Soll später ein Huckepack Board aufgesteckt werden um das Board auch mit RS232 und I2C Schnittstelle auszurüsten, so muss man wegen der Bauhöhe auf diese Sicherungshalter verzichten. Aus diesem Grund werden diese auch beim Fertigmodul nicht serienmäßig eingebaut. In dem Fall sollte man statt Sicherungshalter nur zwei Drahtbrücken einlöten. Das Board sollte dann in der Zuleitung entsprechend abgesichert werden
  4. Das Board verfügt über zwei Plus und zwei Minus Schraubklemmen für die Spannungsversorgung. Beide sind parallel geschaltet, es müssen also nur 2 genutzt werden. Die beiden anderen kann man wahlweise zum Anschluß eines großen externen Elkos oder zum versorgen eines anderen Boards nutzen.
  5. Möchten Sie päter eventuell das Board mit einem Aufsteckboard erweitern um I2C und RS232 Schnittstelle zu besitzen, so sind genau 12mm Abstandsbolzen zwischen den Boards notwendig. Im Bausatz werden diese mitgeliefert.

Wenn das Board voll ausgelastet werden soll, ist zu empfehlen die Motorchips über einen kleinen Alu-Block oder U-Profil auf der Unterseite des Boards zu kühlen. Wenn das Board auf einer Alu-Platte montiert wird, läßt sich so sehr leicht die Wärme auf das Alublech leiten. Man muss jedoch darauf achten das die Alu-Teile keinen Kontakt zu anderen Lötpunkten etc. besitzen.

Achtung: Bis etwa 3A erzeugt der Chip fast keine spürbare Wärme. Jedoch wird der Chip bei maximaler Auslastung sehr heiß. Man kann sich durchaus verbrennen, also aufpassen. Auch unbedingt für ausreichend Luftzufuhr achten und die Temperatur überwachen. Über den Anschluß TEMPERATUR wird eine analoge Spannung zurückgegeben die der Temperatur entspricht.

Anschlüsse am Board

Anschlüsse am Board

CTRL

Über diesen Stecker wird das ganze Motorboard angesteuert. Die Steckerbelegung entspricht weitgehend dem Endstufenstecker wie er im Roboternetz.de für Boards empfohlen wird. Die Belegung ist angelehnt an die beliebten Motortreiberschaltkreise L293D , L298.und ähnliche H-Brücken. Der Motorendstufenstecker ist seit dem August 2005 kompatibel zu dem definierten universellen Datenportstecker. Datenportstecker sind mehrfach auf Standard-Boards wie RN-Control, Atmel STK500 und anderen Board´s die im Roboternetz vorgestellt wurden vorhanden. Somit lassen sich Datenportstecker sehr schnell als Endstufenstecker nutzen und umgekehrt.

Pin 1 Motor 1 IN 1 
Pin 2 Motor 1 IN 2 
Pin 3 Motor 2 IN 1 
Pin 4 Motor 2 IN 2 
Pin 5 Rückgabe Signal von 0 bis 2,5V (bei ca. 0-15A) das einem AD-Port die Strommessung für Motor 1 erlaubt (siehe dazu Tabelle nächste Seite)
Pin 6 Enable Motor1 ein (PWM) 
Pin 7 Enable Motor2 ein (PWM)
Pin 8 Rückgabe Signal von 0 bis 2,5V (bei ca. 0-15A)  das einem AD-Port die Strommessung für Motor 2 erlaubt (siehe dazu Tabelle nächste Seite)
Pin 9 GND 
Pin 10 Logikspannung 5V
Diese Belegung gilt bis zur Platinenversion 1.11 !  Im Gegensatz zur RN-Definitions Beschreibung
sind die Funktionen der Datenports 7 und 8 anders belegt (also wie hier zuvor geschildert).

Wichtig: die Pinbelegung für neuere Platinen findet ihr hier.

Motor 1

Hier wird der Motor 1 angeschlossen. Die Drehrichtung wird durch die Polung festgelegt, versteht sich

Motor 2

Hier wird der Motor 2 angeschlossen. Die Drehrichtung wird durch die Polung festgelegt, versteht sich

Power

Hier wird die Motorspannung +6V bis 16V angeschlossen. Es stehen jeweils zwei Klemmen zur Verfügung welche miteinander verbunden sind. Wahlweise kann dort auch ein externes Elko oder anderes Board angeschlossen werden. Über 16 V schaltet der Motorchip automatisch die Motoren aus!

JP1

Hier kann eine hohe 10 polige Buchsenleiste eingelötet werden (Mindesthöhe über der Platine 8mm). Diese Buchsenleiste dient zum aufstecken eines Zusatzboard das RS232/I2C Schnittstelle und High-Level Befehle bereitstellt. Diese Buchse beinhaltet sämtliche Leitungen des Motorsteckers, so das keine Kabelverbindung zu diesem optionalen Aufsteckboard notwendig wäre. Wir kein Aufsteckboard benötigt, kann diese weggelassen werden.

JP2

Hier kann eine hohe 10 polige Buchsenleiste eingelötet werden (Mindesthöhe über der Platine 8mm). Diese Buchsenleiste dient ebenfalls zum Aufstecken eines Zusatzboard das RS232/I2C Schnittstelle und High-Level Befehle bereitstellt. Diese Buchse beinhaltet die Spannungen und das Temperatursignal. Die Spannungen dienen zum versorgen des Aufsteckboardes, dort werden diese auf 5V stabilisiert. Das Temperatursignal dient dem Aufsteckboard (RN-MotorControl) zur Überwachung der Überlastung.

Temperatur

Eine analoge Spannung von 0 bis 2,5V. Die Spannung steigt mit der Temperatur an. Hier kann und sollte also die Temperatur überwacht werden. Die Temperatur wird auf dem Board und nicht auf dem Chip gemessen, dies ist bei der Beurteilung zu beachten.

 -5 Grad = 0,04V
 25 Grad = 0,2V
 40 Grad = 0,35 V
 60 Grad = 0,73V
 80 Grad = 1,3V
100 Grad = 2V

Bei etwa 60 Grad sollte man Board abschalten und/oder Lüfter aktivieren

Notaus

Hier kann wahlweise eine Art Notausschalter angeschlossen werden. Werden die beiden Kontakte verbunden, so werden die Motoren ausgeschaltet solange die Verbindung besteht.

Stromsignal

Wie bereits aus der vorherigen Tabelle zu entnehmen ist, liefert das Board über den Wannenstecker (CTRL) auch auch ein analoges Signal mit dem der momentane Stromfluß bei den Motoren ermittelt werden kann.

Pin 5 Motor 1
Pin 8 Motor 2

Hier kann man bei Bedarf einen analogen Port eines Controllers anschließen, wenn der Motorstrom überwacht werden soll. Bei der üblichen Belastung von 0 bis 10 A liegt die Spannung im Bereich zwischen 0 und 1,5Vol, es empfiehlt sich daher ein 2,5V Messbereich (Referenzspannung 2,5V).

Da die Motoren per PWM angesteuert werden, wird dieses Messsignal auf dem Motorboard mit einem Kondensator geglättet, dennoch gibt es natürlich geringe Schwankungen entsprechend der PWM Frequenz. Man sollte daher bei der Auswertung mehrere Messungen durchführen und einen Mittelwert bilden.

Um aus dem Signal den Strom zu berechnen, sagt das Datenblatt der Motorchips aus das der Motorstrom 11370 mal höher ist als der Strom der über den internen Messwiderstand fließt. Umgerechnet bedeutet das, das die Messpannung an dem Wannenstecker mit dem Faktor 7,58 multipliziert wird um den Strom zu berechnen.

Beispiel

Wird an Pin 5 die Spannung von 1,03V gemessen, so rechnen wir:

1,03 x 7,58 = 7,8A

Also 7,8 Ampere fließen bei Motor 1. Genauso würde man mit Motor 2 Pin 7 verfahren.

Im Test hatte sich jedoch herausgestellt, das die Spannung doch in der Regel um einiges von dieser Datenblatt Formel abweicht. So ergaben sich hier folgende Werte:

Stromfluss am Motor (Mittelwert) Messwert am Wannenstecker
1,80 A 0,32 V
3,06 A 0,68 V
4,16 A 0,79 V
5,21 A 0,90 V
6,21 A 1,03 V
7,21 A 1,17 V
8,13 A 1,31 V
9,15 A 1,40 V
9,97 A 1,44 V


Legt man diese Tabelle zu Grunde so käme man mit einem Faktor von 6 im Schnitt zu einem genaueren Ergebnis.

1,03 x 6 = 6,18A

Die Berechnung ist auch abhängig von dem PWM-Signal und der Methode wie man Mittelwert bildet. Unter Umständen bietet es sich auch an die offenbar logarithmische Änderung der Messpannung mit in der Formel zu berücksichtigten. Je nach PWM-Frequenz und Messmethode sollte man also die Formel nochmals kontrollieren wenn es auf genaue Stromberechnungen ankommt. Eine grobe Berechnung kann jedoch zumindest bis ca. 10A mit oberen Faktoren sehr schnell vorgenommen werden, falls man es möchte..

Inbetriebnahme

Um das Board anzusteuern benötigt man ein beliebiges Controllerboard (z.B. RN-Control, RN-Mega 8 oder anderes). Wenn das Board noch keinen speziellen H-Bridge.Anschluss besitzt muss man sich beiden PWM-Ports sowie 4 weitere beliebige freie Ports heraussuchen und entsprechend der Skizze beschalten:

RN-VNH2DualmotorAnsteuerskizze.jpg


Bei RN-Control könnte man das Board auch direkt in einen Portstecker wie PB0 anschließen. Allerdings verfügt dieser über kein PWM Signal so das dort die Geschwindigkeit nur geregelt werden kann wenn per Software (Interrupt) ein PWM-Signal generiert wird. Besser ist daher wenn man sich ein Adapter baut und die richtigen PWM-Ports nutzt. Die Ansteuerung erfolgt dann ganz genauso wie der interne Motortreiber bei RN-Control. Man kann sogar das übliche RN-Control Testprogramm nutzen.

Dieses Beispiel demonstriert wie ein kleines Mega8 Board die Motorsteuerung nutzt. Das Board ist derzeit noch nicht verfügbar, jedoch läßt sich der Programmcode sehr leicht auf nahezu alle anderen AVR-Boards übertragen


Programmbeispiel

'###################################################
'rn_minicontrol_motor.bas
'Dieses Programm ist für das universelle und kompakte
'Controllerboard RN-MINICONTROL ab Version 1.0
'Boardbeschreibung Roboternetz.de oder robotikhardware.de
'Verwendeter Compiler Bascom V 1.11.7.9
'
'Aufgabe:
'Demonstriert wie man Motoren mit dem Board ansteuert
'Dazu muss an dem vorhandenen Motorstecker eine
'H-Brücke angeschlossen werden, alternativ kann man
'das Board auch einfach auf die H-Bridge RN-VNH2Dualmotor
'aufstecken,eine Kabelverbindung ist zu dieser Motorsteuerung
'In dem Beispiel werden beide Motoren langsam beschleunigt;
'Richtung umgekehrt und wieder beschleunigt
'
'
'Autor: Frank
'Weitere Beispiele und Beschreibung der Hardware
'unter http://www.Roboternetz.de bzw. robotikhardware.de
'###################################################


'Die üblichen Definitionen bei Standardprogrammen auf Miniboard
$regfile = "m8def.dat"
$crystal = 16000000                                         'Quarzfrequenz
$baud = 9600
$hwstack = 34
$framesize = 34
$swstack = 34


Config Pinb.1 = Output
Motor1_pwm Alias Portb.1

Config Pind.6 = Output
Motor1_in1 Alias Portd.6

Config Pind.7 = Output
Motor1_in2 Alias Portd.7


Config Pinb.2 = Output
Motor2_pwm Alias Portb.2

Config Pinb.0 = Output
Motor2_in1 Alias Portb.0

Config Pinb.5 = Output
Motor2_in2 Alias Portb.5


'PWM Frequenz Initialisieren
Tccr1a = &B10100010                                         '9 Bit PWM  Voller Takt
Tccr1b = &B10000010                                         'Teiler = 8 PWM = 1951 Hz bei 9 Bit

Dim I As Word



Wait 1
Print "RESET RN-MINICONTROL"
Print "robotikhardware.de" "



  Do
    Print " Richtung1"
    Motor1_in1 = 0                                          'Drehrichtung Motor 1
    Motor1_in2 = 1                                          'Drehrichtung Motor 1
    Motor2_in1 = 1                                          'Drehrichtung Motor 2
    Motor2_in2 = 0                                          'Drehrichtung Motor 2
    For I = 0 To 511
      Pwm1a = I
      Pwm1b = I
      Waitms 25
    Next I
    Wait 120

    'Bremsen
    Pwm1a = 0
    Pwm1b = 0
    Wait 2
    Motor1_in1 = 0                                          'Drehrichtung Motor 1
    Motor1_in2 = 0                                          'Drehrichtung Motor 1
    Motor2_in1 = 0                                          'Drehrichtung Motor 2
    Motor2_in2 = 0


    Print " Richtung2"
    Motor1_in1 = 1                                          'Drehrichtung Motor 1
    Motor1_in2 = 0                                          'Drehrichtung Motor 1
    Motor2_in1 = 0                                          'Drehrichtung Motor 2
    Motor2_in2 = 1                                          'Drehrichtung Motor 2
    For I = 0 To 511
      Pwm1a = I
      Pwm1b = I
      Waitms 25
    Next I
    Wait 120

        'Bremsen
    Pwm1a = 0
    Pwm1b = 0
    Wait 2
    Motor1_in1 = 0                                          'Drehrichtung Motor 1
    Motor1_in2 = 0                                          'Drehrichtung Motor 1
    Motor2_in1 = 0                                          'Drehrichtung Motor 2
    Motor2_in2 = 0
  Loop


End

Stückliste

Bestückungsliste und Bestückungsplan zu RN-VNH2Dualmotor (Angaben ohne Gewähr)

Folgende Teile müssen bestückt werden:

C2   100n         Keramik Kondensator                KERKO100N
C3   100n         Keramik Kondensator                KERKO100N
C4   100n         Keramik Kondensator                KERKO100N
CTRL             Wannenbuchse 10 pol                 WSL10G
IC1              VNH2SP30  (Platinenunterseite)      Robotikhardware.de
IC2              VNH2SP30  (Platinenunterseite)..... Robotikhardware.de
MOTOR1           Schraubklemme 2 polig               AKL 101-02
MOTOR2           Schraubklemme 2 polig               AKL 101-02
POWER            Schraublemme 4 polig                AKL 101-04
R1   1,5k        Metallschichtwiderstand 1,5k        Metall 1,5k
R2   2,7k        Metallschichtwiderstand 2,7k        METALL 2,7K
R3   10k         Metallschichtwiderstand 10k         METALL 10,0K
R4   3,9k        Metallschichtwiderstand 3,9k        METALL 3,9K
R5   10k         Metallschichtwiderstand 10k         METALL 10,0K
R6   1,5k        Metallschichtwiderstand 1,5k        Metall 5,1k
R7   1k          Metallschichtwiderstand 1k          Metall 1k
R8   NTC 100k    NTC Widerstand 100k                 NTC-0,2 100K
RN1  1k          Widerstandsnetzwerk 5 x 1k (10 Pin) SIL 10-5 1,0K
RN2              Widerstandsnetzwerk 5x3,3k (6 Pin)  SIL 6-5 3,3k
4 Stück          Abstandsbolzen 12mm
2 Stück          KFZ Sicherungen 10A
1 Stück          Platine                             robotikhardware.de

Folgende Teile müssen nicht bestückt werden:

F1               KFZ-Sicherungshalter                FKS-HALTER 3 
                 Unbestückt lassen und überbrücken wenn später Zusatzboard
                 aufgesteckt werden soll    
F2               KFZ-Sicherungshalter                 FKS-HALTER 3 
                 Unbestückt lassen und überbrücken wenn später Zusatzboard
                 aufgesteckt werden soll    
JP1              10 polige hohe Buchsenleiste o. unbestückt lassen 
                 BL 1X10G8 2,54
JP2              10 polige hohe Buchsenleiste o. unbestückt lassen 
                 BL 1X10G8 2,54
NOTAUS           2 polige Stiftleiste oder unbestückt lassen   LU 2,5 MS2
TEMPERATUR       2 polige Stiftleiste oder unbestückt lassen   LU 2,5 MS2
D1               Zehnerdiode 5.1V generell unbestückt lassen 
                 (nicht notwendig, wenn Motor unter 12A benötigt)
D2               Zehnerdiode 5.1V generell unbestückt lassen
                 (nicht notwendig, wenn Motor unter 12A benötigt)
C1                2200uF/25V  Gewöhnlich unbestückt lassen     
                  nur bei langen Leitungen notwendig 


Unbedingt vor dem Bestücken auch die Aufbauhinweise weiter vorne in der Anleitung beachten!

Projektbeispiel das RN-VNH2DualMotor nutzt

Allwetterbot.jpg


Siehe auch

Weblinks

Ausführliche Anleitung und Bauplan als PDF-Datei

Platinenservice.gif hier Bausatzservice.gif hier Fertigmodulservice.gif hier