PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : servo rn-control



aphex-world
11.04.2008, 22:29
hi,
ihr werdet jetzt denken, der schon wieder*g:D was ich auch voll verstehen kann.
Ich hab einen graupner modellbauservo am Porta.0(orangene kabel) die anderen 2 am gnd und +5V für externe hardware(die 2 pins neben porta).
leider bekomm ich den servo nicht bewegt, ich glaub es liegt auch keine spannung an sonst würd ich ihn ja nich drehen können.


Config Servos = 1 , Servo1 = Porta.0 , Reload = 10

Config Portb = Output

Enable Interrupts

Servo(1) = 100
waitms 1000

das lad ich aufs board, wobei aber nichts passiert.
muss ich die externe spannungsversorgung irgendwie " freischalten"?

vielen dank im vorraus:P

Dirk
11.04.2008, 23:27
Hallo aphex-world,

wenn du einen Pin von PortA für das Servo nimmst, must du den (oder den ganzen Port) auch als Ausgang definieren:
Config Porta = Output

Gruß Dirk

aphex-world
11.04.2008, 23:38
abend dirk
,erst mal danke
auch mit:

$regfile = "m32def.dat"
$framesize = 32
$swstack = 32
$hwstack = 32
$crystal = 16000000
$baud = 9600


Config Servos = 1 , Servo1 = Porta.0 , Reload = 10

Config Porta = Output

Enable Interrupts

Servo(1) = 100

Waitms 1000

dreht sich nichts, inzwichen weiß ich aber das strom am servo ankommt, beim einstecken zuckt er;)
übrigens erkennt bascom die ganze erste code zeile als fehler?:

Config Servos = 1 , Servo1 = Porta.0 , Reload = 10

ich bekomm den "code" auch gar nich mehr aufs board wenn die reset chip anweisung kommt und ich resete kommt "com1 can not beopend" und bascom stürzt ab
"Bascom AVR 1.11.8.7"

Dirk
12.04.2008, 07:13
Hallo aphex-world,

wenn du den Code nicht geflasht bekommst und Bascom abstürzt, ist das ein anderes Problem.

Die Config Servos Zeile ist ok.
Ich gehe davon aus, dass das nicht dein ganzer Code ist. Wenn du nur Servo(1) = 100 schreibst, bewegt sich ja da auch nichts, sondern das Servo wird nur auf diese Position gestellt. Das ist ja dann kein sinnvoller Test, außerdem fehlt dann noch ein End oder Do-Loop.

Nimm zum Testen das Beispiel aus der Hilfe zu Config Servos.

Gruß Dirk

aphex-world
12.04.2008, 12:09
das is doch aus der hilfe.. und warum soll es so nicht gehen? wenn ich den servo drehe und resete muss er doch auf die position "100" fahren?

währ echt super wenn jemand den code berichtigt und vollendet so das sich was tuht.. denn jedes andere Programm bekomm ich rüber..

vielen dank im vorraus:)

Dirk
12.04.2008, 14:54
Hallo

gibt es irgend einen Grund, warum du nicht erst einmal das Beispiel aus der Hilfe nimmst??? [-(


$regfile = "m32def.dat"
$framesize = 32
$swstack = 32
$hwstack = 32
$crystal = 16000000


Config Servos = 1 , Servo1 = Porta.0 , Reload = 10

Config Porta = Output

Enable Interrupts


Dim I As Byte

Do

For I = 0 To 100

Servo(1) = I

Waitms 200

Next

For I = 100 To 0 Step -1

Servo(1) = I

Waitms 200

Next

End

Wenn es damit auch noch Übertragungsprobleme geben sollte, dann müßtest du 'mal in die Doku zu deinem Board gucken. Ist evtl. Porta noch für andere Zwecke genutzt? Z.B. für die RS232-Kommunikation? Dann müßtest du dir einen anderen Pin für das Servo suchen oder zumindest nicht den ganzen Porta zum Ausgang machen.

Gruß Dirk

aphex-world
12.04.2008, 17:08
hey dirk,
es klappt an keinem der8 ports ich versteh das einfach nicht... jedesa andere programm bekomm ich aufs board nur das obige nicht..
hat sonst jemand ähnliche programme mit seinem rn-control1.4?

aphex-world
12.04.2008, 20:34
mir ist gerade noch ein einfall gekommen, kann es daran liegen das ich mit rs232 das programm rüber lade?

Dirk
13.04.2008, 10:20
Probier 'mal, die Zeile ...:
Config Porta = Output
... zu ersetzen durch ...:
Config Pina.0 = Output

Gruß Dirk

aphex-world
13.04.2008, 10:42
morgen dirk,

hab die zeile ersetzt und bekomm immer noch COM1 can not be opened und dann später division by zero.... ...
ist zum verzweifeln.

Dirk
13.04.2008, 12:00
Nächster Versuch:

1. Ist dein Netzteil stark genaug? So ein Servo zieht ganz schön Strom und kann zu Spannungseinbrüchen am rn-control führen.

2. Probier 'mal, das flashen des Progs erst OHNE das angeschlossene Servo zu machen. Klappt das dann?

3. Evtl. nimm die 5V für's Servo aus einer anderen Spannungsquelle.

Gruß Dirk

aphex-world
13.04.2008, 12:22
1/3. Auch mit einer externen SPanntungsquelle geht es nicht, hab natürlich auch den gnd mim board verbunden.

2. Ohne angeschlossenen servo bekomm ich auch noch die fehlermeldung und bascom stürzt ab.


so wie ich das sehe liegt es am bootloader, hab leider auch kein isp kabel um es mal damit zu versuchen.vielleicht kann jemand der das board hat mal versuchen ob es mit rs232 bei ihm geht.

ps:
wenn ich die zeile
Config Servos = 1 , Servo1 = Porta.0 , Reload = 10
aus meinem code entferne stürzt bascom nicht ab.

Dirk
13.04.2008, 13:19
Vielleicht hilft eine etwas neuere Bascom-Demo-Version?
http://www.mcselec.com/index.php?option=com_content&task=view&id=14&Itemid=41

Gruß Dirk

aphex-world
13.04.2008, 17:31
so hab gerade die neue version getestet damit geht es auch nicht, bekomm zwar keine lästigen fehlermeldungen und das programm stürzt nicht mehr ab.

Ich bin hier wirklich am verzweifeln das muss doch klappen!

aphex-world
13.04.2008, 21:03
yeahh;)

hab gerade noch mal google angeschmissen und in nem anderen forum folgenedes programm gefunden


$regfile = "m32def.dat"
$framesize = 42
$swstack = 32
$hwstack = 32

$crystal = 8000000
$baud = 19200

Dim Sw As Byte

Config Pina.2 = Output
Enable Interrupts

Config Servos = 1 , Servo1 = Porta.2 , Reload = 10
Servo(1) = 100

For Sw = 40 To 140
Servo(1) = Sw
Waitms 100
Next Sw

For Sw = 140 To 40 Step -1
Servo(1) = Sw
Waitms 100
Next Sw


End

hiermit geht alles tadellos werd mir die kommandos jetz anpassen,trotzdem vielen vielen dank:) also wenn jemand mal probleme hat oben ist die lösung

Dirk
13.04.2008, 21:47
... hiermit geht alles tadellos ...

Das ist doch fast identisch mit meinem geposteten Programm!

Bis auf 8 MHz Takt und die Baud-Zeile, und Pina.2 als Anschluß für das Servo...

Was soll da denn plötzlich so anders sein? Hast du 8 oder 16 MHz Quarz? Brauchst du 9600 oder 19200 Baud?

Ich blicke nicht durch. Kanst du erklären, warum das jetzt funktioniert???

Gruß Dirk

aphex-world
13.04.2008, 21:57
versteh ich auch nicht so ganz hab n 160000 quarz und normal 9600baud
hab aus schlusseligkeit, einfach das programm mit falschen anweisungen überspielt und es ging hab gar nix geändert außer den servo an port 2 geklemmt.