PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Anfänger,was übersehe ich?



agnus
23.05.2014, 22:28
Hallo,als heimlicher Mitleser und Anfänger bin ich schon eine Weile mit dabei doch nun steige ich grade nicht durch.Habe ein RnControl1.4 und ein rnvn2Dualmotor geschenkt bekommen doch ich bekomme die beiden nicht zum laufen.Mein Code sieht so aus:

$regfile "m32def.dat"
$crystal = 16000000
'systemtakt 16MHz = 16000000Hz
$hwstack = 128
$framesize = 128

Config Pind.5 = Output 'linker Motor PWM
Config Pinb.1 = Output 'linker Motor Kanal 1
Config Pinb.2 = Output 'linker Motor Kanal 2

Config Pind.6 = Output 'rechter Motor PWM
Config Pinc.7 = Output 'rechter Motor Kanal 1
Config Pinc.8 = Output 'rechter Motor Kanal 2
'************************************************* *********************************

Do
Config Pind.5 = 1 'PWM an/aus
Config Pinb.1 = 1 'linker Motor1/1
Config Pinb.2 = 0 'linker Motor1/2

Config Pind.6 = 1 'PWM an/aus
Config Pinc.7 = 1 'rechter Motor2/1
Config Pinc.8 = 0 'rechter Motor2/2
Loop

Die Pinbelegung habe ich aus der pdf-Datei des RnControl1.4.
Vom RnVn2Dualmotortreiber aus habe ich den Pin1 an Pinb1,Pin2 an Pinb2,Pin3 an Pinc6,Pin4 an Pinc7,Pin6 an Pind6 und den Pin8 an Pind4 ans RnControl1.4 gestecht.Die Pinbelegung habe ich aus der pdf-Datei des Vn2Dualmotortreibers.
Nun zu meinen Proplem(en)-die Motoren laufen nicht an. Den Motorchip vom RnControl ist raus.Wenn ich das Lauflichtprogramm lade,leuchten die Dioden wie sie sollen aber das tun die ja auch ohne angestechten Dualmotortreiber.Ich komme nicht weiter ohne Hilfe,in der SuFu habe ich nichts gefunden
Danke.

Geistesblitz
23.05.2014, 22:35
Du machst ja auch nix außer Pins zu konfigurieren. Damit etwas passiert, musst du auch Werte übergeben ;)
Config Pind.5 = 1
macht dasselbe wie
Config Pind.5 = Output

Um einen Ausgang zu schalten, musst du schreiben
Pind.5 = 1
bzw.
Pind.5 = 0

Ich vermute mal, du hast erst noch vor eine PWM einzubauen, den Begriff aber schonmal in die Kommentare eingebaut? Denn von einer PWM sehe ich nix.

malthy
23.05.2014, 23:23
Abgesehen von dem was Geistesblitz schon erklärt hat glaube ich nicht dass der Compiler "Config Pinc.8 = Output" versteht. Bei einem m32 hat PortC die Pins 0-7. Hast Du das fehlerfrei compilieren können?

P.S. verwende für Code die Funktion "Code einfügen", verbirgt sich hinter dem Doppelkreuz im Menü. Liest sich besser :-).

agnus
24.05.2014, 19:58
Danke für die Antworten.Ich habe das Testprogramm von der CD mal aufgespielt doch da ist auch einiges im argen mit meinen Motoren.Sie laufen zwar und ich kann sie über PWM einzeln beschleunigen doch nur in eine Richtung.Das Proplem glaube ich liegt im Anschluß vom RN2Dualmotortreiber zum RNControl,obwohl ich mich genau an die dazugehörenden pdf-Dateien gehalten habe.Mein Anschluss sieht so aus:Vom RnVn2Dualmotortreiber aus habe ich den
Pin1 an Pinb1,
Pin2 an Pinb2,
Pin3 an Pinc6,
Pin4 an Pinc7,
Pin6 an Pind6 und den Pin8 an Pind4 ans RnControl1.4 gesteckt.
(habe mich an http://www.shop.robotikhardware.de/shop/catalog/product_info.php?cPath=64&products_id=10 und http://www.shop.robotikhardware.de/shop/catalog/product_info.php?cPath=65&products_id=112 pdf gehalten)

-malthy,es gab keine Propleme beim compilieren

agnus
25.05.2014, 22:17
So,das komplette WE damit verbracht die Motoren zum Laufen zu bekommen.Leider mit keinen besonderen Erfolg.Ich kann zwar die Motorgeschwindigkeit über PWM einstellen doch sie drehen nur in eine Richtung.Zur Zeit ist vom Dual2Motor Pin10 an PinC6,Pin2 an PinD10 und Pin6 an PinD6 des RN-Control V1.4.Seltsamerweise läuft das auch ohne ein Port oder Pin zuzuweisen.Da ich das Board sowie das Dual2 Motor-Board schon abgeschrieben habe nehme ich auch keine Rücksicht mehr.Wenn ich wieder Zeit habe,probiere ich weiter.Sollte sich nicht alles in Rauch auflösen und ich weiter kommen,schreibe ich hier,damit zukünftige Anfänger eine Hilfe haben.Ziel ist eine simpe Fahrt geradeaus,bei einen Kontakt z.B.vorne soll der Roboter abdrehen und weiterfahren bis wieder ein Hindernis kommt und die Rutine von neuen beginnt.

Geistesblitz
26.05.2014, 11:21
Wie hast du denn die Drehrichtungsänderung programmiert?

Edit: was willst du eigentlich mit der Pinbelegung bezwecken? Es gibt übrigens keinen PinD.10, die Zahlen gehen nur von 0-7
Außerdem ist Pin10 vom DualMotor die Versorgungsspannung, wenn ich das richtig sehe, wäre nicht so gut, den auf einen Output zu legen. Hast du dir die Datenblätter richtig angeguckt oder nur geraten?

Du müsstest halt die richtigen Pins als Ausgang festlegen und entsprechend ansteuern.
Am besten wäre es wohl, mit nur einem Port zu arbeiten, dann könntest du einen 10-Pol-Flachkabel nehmen zur Verbindung, allerdings müsstest du dann auf Soft-PWM ausweichen.

agnus
26.05.2014, 22:27
Danke für dein Intresse Geistesblitz.Die Drehrichtungsänderung habe ich nicht hinbekommen nur das die Motoren in eine Richtung schnell oder langsam laufen,mit
'''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''''''''''''''''''''''''''''
Config Timer1 = Pwm , Pwm = 10 , Compare A Pwm = Clear Up , Compare B Pwm = Clear Up
Pwm1a = 750 'max.1023 linker Motor
Pwm1b = 750 'max.1023 rechter Motor

'''''''''''''''''''''''''''''''''''''''''''''''''' '''''''''''''''''''''''''''''''''''''''''''''
Wenn ich das richtig verstehe ist auf den Rn-Control laut pdf-Datei
Pin 1/PB0 wird vom Motortreiber für Motor 2 Kanal 1 genutzt,
Pin 2/PB1 wird vom Motortreiber für Motor 2 Kanal 2 genutzt,
Pin 7/PC6 wird vom Motortreiber für Motor 1 Kanal 1 genutzt,
Pin 8/PC7 wird vom Motortreiber für Motor 1 Kanal 2 genutzt,
Pin 5/PD4 wird für PWM Motor 1 benutzt,
Pin 6/PD5 wird für PWM Motor 2 benutzt.
Beim Dual2Motor ist die Belegung
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 6 Motor1 ein (PWM),
Pin 8 Motor2 ein (PWM),
Pin 9 GND
Pin 10 5V. Also muß doch PB0 an Pin3,PB1 an Pin4,PC6 an Pin1 ec. und halt GND an Pin9 und 5V an pin10!?Liegt hier mein Fehler?

Geistesblitz
27.05.2014, 07:51
Das machts doch unnötig kompliziert...die Reihenfolge der Pins scheint ja schon auf das DualMotor abgestimmt zu sein. Um die Richtung zu bestimmen, musst du jeweils auf IN 1 und IN 2 verschiedene Signale geben, wenn du auf IN1 ein High gibst und auf IN2 ein Low, dreht er sich in die eine Richtung, bei IN1 Low und IN2 High in die andere. Haben beide dasselbe Signal, bremst der Motor.

oberallgeier
27.05.2014, 09:24
... Es gibt übrigens keinen PinD.10, die Zahlen gehen nur von 0-7
Außerdem ist Pin10 vom DualMotor die Versorgungsspannung ...Ja - das Dilemma kenne ich. Der Controller auf der RNC ontrol - mega32 oder Verwandte - hat vier komplett belegte Ports, A bis D. B, C und D sind komplett auf Wannenstecker rausgeführt, PortA auf ne Klemm-Klaviatur. Abgesehen davon sind alle Ports komplett auf Buchsenleisten erreichbar. Die Wannenstecker werden in der Bedienungsanleitung zur RNC ontrol leider etwas unglücklich als Port A bis Port D benannt. Und das brachte mich anfangs auch total durcheinander, weil z.B. der Pin0 von PortD auf den Wannenstecker Pin1 von "Port D" geht.

Naheliegend wäre also z.B. einen kompletten Port vom Wannenstecker 1:1 an die VN2 DualMotor anzupassen. Bei Port D ist das unpraktisch, da verbrät man Rx/Tx - andere Ports haben andere Unpässlichkeiten - - leider.

Ich benutze die RN-VN2 DualMotor im Huckepack mit der RN-MotorControl mit nem m328. Aber der Wannenstecker auf der RN-VN2 DualMotor kann natürlich an beliebige andere Controller bzw. Board angepasst werden. Mit nem Codebeispiel (läuft bei mir gerade mit zwei Motoren je ca. max 60W) könnte ich dienen, das ist aber eben für nen mega328 und in C.

oderlachs
27.05.2014, 11:37
Ja ich kenne solche irreführende Bezeichnungen noch vom Pollinboard und dessen Erweiterungen...da tappte ich auch oft im Dunklen... ;)

Ich verstehe nicht, dass man da nicht sinnvolle und logisch richtige Namen wählen kann..das eben PIN 0 auch PIN 0 bleibt und nicht wo als PIN 1 geführt wird...aber eines hat es dabei positiv...,mann muss sich praktisch mit der Schaltung/Anwendung befassen und das übt ungemein..

Gerhard

agnus
28.05.2014, 22:53
Danke für eure Hilfe.Heute habe ich mir mal wieder etwas Zeit genommen und alles doppelt geprüft.Es hat sich nichts geändert,nur der linke Motor läuft und lässt sich nur in eine Richtung drehen.Was ich noch rausbekommen habe,wenn das RNControl und der RN-VN2 DualMotor 12V/GND bekommen läuft nur der linke Motor,unterbreche ich GND vom RNControl stopt der linke Motor und der rechte Motor läuft an.Morgen wird alles wieder zerlegt,nach defekten gesucht,wieder zusammengebaut und weiter versucht.

agnus
01.06.2014, 13:13
Bevor ich mir überlege ob es Sinn macht (nach den schlechten Start)ein neues RN Control zu kaufen , möchte ich nochmal meinen Code posten und das Proplem dazu,vieleicht liegt der Fehler ja im Code.
Angeschlossen ist alles richtig(rncontrol zum vn2dualmotor).Es läuft nur ein Motor in eine Richtung und er lässt sich auch nicht anhalten mit PWM = 0.


$regfile "m32def.dat"
$crystal = 16000000
'systemtakt 16MHz = 16000000Hz
$hwstack = 128
$framesize = 128

Config Pind.4 = Output 'linker Motor PWM
Config Pinb.0 = Output 'linker Motor Kanal 1
Config Pinb.1 = Output 'linker Motor Kanal 2

Config Pind.5 = Output 'rechter Motor PWM
Config Pinc.6 = Output 'rechter Motor Kanal 1
Config Pinc.7 = Output 'rechter Motor Kanal 2
'************************************************* *********************************
Config Timer1 = Pwm , Pwm = 10 , Compare A Pwm = Clear Up , Compare B Pwm = Clear Up
Pwm1a = 550 'max.1023 linker Motor
Pwm1b = 550 'max.1023 rechter Motor
Tccr1b = Tccr1b Or &H02
'************************************************* **********************************

Do
Portd.4 = 1 'PWM an/aus
Portb.0 = 0 'linker Motor1/1
Portb.1 = 1 'linker Motor1/2

Portd.5 = 1 'PWM an/aus
Portc.6 = 0 'rechter Motor2/1
Portc.7 = 1 'rechter Motor2/2
Loop

Um ein defekt des vn2dualmotor auszuschließen,habe ich den Motortreiberchip eingesteckt bei abgezogenen Stecker vom vn2Dualmotor.Es kommt auchnur eine Spannung auf einen der zwei Motorenausgänge an.Ich komme nicht weiter.