Chief Delphi

Chief Delphi (http://www.chiefdelphi.com/forums/index.php)
-   Programming (http://www.chiefdelphi.com/forums/forumdisplay.php?f=51)
-   -   switch speed control (http://www.chiefdelphi.com/forums/showthread.php?t=22116)

wayne 05 30-09-2003 22:27

switch speed control
 
How can i program a joystick trigger to scale down the speed of a motor:confused:

djcapelis 30-09-2003 22:28

That would be difficult, it's either on or off... so you could turn the motor on or off...

unless you want to try funky pattern timing...

Cory 30-09-2003 22:30

perhaps he meant scale the speed.

Ex: if you have a really fast robot, maybe you want to scale the speed down to 3/4 of full speed for more control. I think he is talking about using the trigger to do something like this. I know we did this for some odd reason at Cal Games, but I dont know jack about programming, so I cant help you.

Cory

EricS-Team180 30-09-2003 22:51

You could key off of the trigger to indicate the addition or subtraction of a fixed value (1,5,10) to a pwm output.

Initialize to a pwm output of neutral (127). Then, you'll need a direction bit (fwd/rev) so you know whether to add or subtract, and a trigger latch bit so you don't loop through the code a bunch of times, changing the pwm, before you let go of the trigger. You'll also want to min and max (1, 254) so you don't roll over.

djcapelis 30-09-2003 23:37

Or set a static entry if you just want to tone it down to 3/4 or total or whatnot... Then just hit trigger and get 3/4 speed ahead, interesting actually... hmmm.

Jnadke 01-10-2003 00:53

Yeah, you could have it that every x amount of loops it adds 5 to the PWM input. About 30-40 program loops is a second.

Just use PWM = PWM + 5 MAX 250 so you don't wrap around.

The other option is to have it turn on or off. This is more limited, but easier to deal with.

Neal Turett 01-10-2003 09:35

I'm interperting your request as if you have a joystick, and you want to be able to press a button on it to slow down the robot, in order to make it more controllable.

If this is what you're looking for insert this write after the code block where you tie the p1_y and p1_x (or whatever vars you use) to the pwms:

if (p1_top = 1) then
if pwm1 > 127 then pwm1 = (pwm1-127) / 2 + 127
if pwm1 < 127 then pwm1 = (127 - (127-pwm1) / 2)
endif

Do the same for pwm2. This will reduce the speed of the robot by a factor of 2 when p1_top is pressed.


All times are GMT -5. The time now is 13:27.

Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi