PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Anfänger benötigt Hilfe :D



CANDA
14.02.2010, 19:30
Hallo Alle zusammen es geht um folgendes. Ich habe mir das RN Control 1.4 bestellt ... Es läuft auch wunderbar aber ich habe ehrlich gesagt nicht so viel erfahrung mit basecom und stehe jetzt vor dem Problem, dass ich die Motoren nicht richtig nasteuern kann.. Ich versuche die ganze zeit es hinzubekommen das sie kurz beschleunigen und dann nach ca.2sek wieder langsam abbremsen (wie in dem Demo Programm) aber ich weiß nicht wie bis jetzt habe ich es so versucht :
Do

Config Timer1 = Pwm , Pwm = 10 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down

Pwm1a = 300

Waitms 20000

Timer1 = 1


Loop

Aber es funtioniert nicht richtig entweder der Motor dreht garnicht oder andauernt Danke im voraus für die Hilfe

Jaecko
14.02.2010, 19:52
Punkt 1 ist schon mal: Config wird nur 1x gemacht. Also vor das Do.
Punkt 2: Waitms 20000 sind keine 2 Sekunden.
Punkt 3: Zum Abbremsen der Motoren müsstest du PWM1A schrittweise zum jeweiligen Wert rauf/runterzählen (je nach dem, ob die Motoren bei 0 oder 65535 stehen bleiben).
Also ne Zählschleife, da ne Variable runterzählen und die dann auf PWM1A zuweisen.

Was hast du dann da noch mit Timer1 = 1 vor?

CANDA
14.02.2010, 20:05
ich dachte das er dadurch den timer aktiviert weiel wenn ich das nicht mahce meint bascom variable not dimensioned oder soo ??! :D ich sag doch ich hab noch kein erfahrung darum frag ich ja hir .. Trotzdem müsste es ja gehn auch wenn 20000 ms keine 2sec. sund oder ???

CANDA
14.02.2010, 20:45
[quote="CANDA"]ich dachte das er dadurch den timer aktiviert weiel wenn ich das nicht mahce meint bascom variable not dimensioned oder soo ??! :D ich sag doch ich hab noch kein erfahrung darum frag ich ja hir .. Trotzdem müsste es ja gehn auch wenn 20000 ms keine 2sec. sund oder ??? Nette antwort aber wie soll ich das machen mit derr variable und denn daén pwm darauf zuweisenh (ANFÄNGER) :D

Jaecko
14.02.2010, 20:46
Timer Einschalten ist "Enable".
Bei 20000 statt 2000 fährt er halt 10x so lange.

Zum Gasgeben wär z.B. sowas hier brauchbar; Timer-Configs & Co müssen noch rein.
(Kann sein, dass der Code so nicht kompilierbar ist bzw. noch ein paar Syntaxfehler drin sind; Bascom ist schon länger her)



DIM Speed as Word

...

Do
For Speed = 0 To 10000
PWM1A = Speed
Waitms 1
Next

Wait 10

For Speed = 0 To 10000
PWM1A = 10000 - Speed
Waitms 1
Next

Wait 5

Loop



Hier sollte der Motor (sofern er bei 0 ganz steht) innerhalb von 10 Sekunden hochdrehen, dann 10 Sekunden da bleiben und dann wieder 10 sek. lang runterdrehen, wo er dann 5 Sekunden stehenbleibt.

CANDA
14.02.2010, 21:04
Danke aber er dreht die ganze zeit voll egal an welche schraubklemme ich ihn anschließe .. Hast du ne ahnung warum ???

Jaecko
14.02.2010, 21:23
Glaub im Programm fehlt noch, dass der jeweilige PWM-Pin (PWM1A bzw. OCR1A) auf Output gesetzt wird.
Config PortX.Y = Output (X und Y entsprechend anpassen)

CANDA
14.02.2010, 21:25
jaa ich hab es jetz so gemacht aber jetzt passiert garnix mehr nur auf einem port läuft er dauerhaft :
Config Pind.5 = Output wird für PWM Motor 1 benutzt
Config Pinc.6 = Output wird vom Motortreiber für Motor 1 Kanal 1...
Config Pinc.7 = Output wird vom Motortreiber für Motor 1 Kanal 2...
Portc.6 = 1 richtung von Motor 1 Kanal 1
Portc.7 = 0 richtung von Motor 1 Kanal 2

DIM Speed as Word


Do
For Speed = 0 To 10000
PWM1A = Speed
Waitms 1
Next

Wait 10

For Speed = 0 To 10000
PWM1A = 10000 - Speed
Waitms 1
Next

Wait 5

Loop

CANDA
15.02.2010, 15:20
Moin nur mal ne frage nebenbei hast du ne ahnung warum das prog. nicht geht hab ich ausm internet :
'################################################# ##
'# servo.bas #
'################################################# ##
'#Dieses Programm demonstriert die Verwendung #
'#eines Servos mit dem Controllerboard RN-CONTROL #
'################################################# ##

$regfile = "m16def.dat" ' Bestimmung des Prozessors
$crystal = 16000000 ' Quarzfrequenz
$baud = 9600 ' RS232-Uebertragungsrate
$hwstack = 32
$framesize = 32
$swstack = 32

Print "**** Servo mit RN-CONTROL *****"

Config Servos = 1 , Servo1 = Porta.6 , Reload = 10
' Der Servo wird am Port A Pin 6 angeschlossen
Config Pina.6 = Output
Dim I As Integer

Enable Interrupts
Do
Servo(1) = 0
waitms 1000
Servo(1) = 200
waitms 1000
Servo(1) = 100
waitms 1000
Loop

Ich weis passt nicht zum tehma aber wollte kein neues aufmachen ;)

CANDA
16.02.2010, 23:38
Okee ich habs raus mit dem PWm danke noch mal ... ich hab aber ein ganz anderes problem wie soll ich die motoren rückwerts laufen lassen in der beschreibung steht nur:
Erste Richtung:
PC6=0
PC7=1
Zweite Richtung
PC6=1
PC7=0
Ber das bestimmt ja nur aus welchem Port Plus kommt und wechselt nich die Polarität also wenn ich das eine kabel an masse habe wie beschreiben und das andere im Port denn klappts nicht ... Habt ihr ne ahnung wie das gehen soll ???