CCS C Software and Maintenance Offers
FAQFAQ   FAQForum Help   FAQOfficial CCS Support   SearchSearch  RegisterRegister 

ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

CCS does not monitor this forum on a regular basis.

Please do not post bug reports on this forum. Send them to CCS Technical Support

Need help on stepper motor program
Goto page 1, 2  Next
 
Post new topic   Reply to topic    CCS Forum Index -> General CCS C Discussion
View previous topic :: View next topic  
Author Message
tong143



Joined: 09 May 2011
Posts: 14

View user's profile Send private message

PostPosted: Tue May 10, 2011 4:06 am     Reply with quote

Hi
I need a program to control the speed and direction of a stepper motor based on the feedback signals I receive from two proximity sensors. I have necessary hardware. I have a pic development board with PIC16F72 as micro-controller. Port B is connected to ULN2803 to drive the stepper motor. I need two countdown timers to control the stepper motor. While the stepper is rotating, based on the proximity sensor's output, the motor has to rest on the either sides for predetermined time(which is adjustable on every startup of the unit). One of the times should be in seconds and other is in minutes. I have two common anode seven segment displays and three push to on switches for serving this purpose. I have connected the stepper motor to pins B1,B2,B3,B4; two seven segment displays to C1,C2,C3,C4,C5,C6,C7; three push to on buttons to A0,A1,A2;feedback from proximity sensors to A3,A4; and two Vcc pins of the two seven segment displays to A5 and C0 and are given a pull up to +5V via 10K resistor. The circuit uses a 4MHz oscillator. Please help me.
asmboy



Joined: 20 Nov 2007
Posts: 2128
Location: albany ny

View user's profile Send private message AIM Address

PostPosted: Wed May 11, 2011 3:48 pm     Reply with quote

thats a start

got a schematic that shows how you have it all connected
especially to your MOTOR windings ?

do you at least have a code shell that outlines what you actually want to do
and the approach to driving the stepper as a response ?

i don't think you will find anyone who has the ability to do such a program who will write for you from scratch.

to get help you have to output some sign of real effort on your part FIRST
that demonstrates you understand the problem you have set for yourself
and have at least a CLUE about how to go about it.

from there - you can get help
tong143



Joined: 09 May 2011
Posts: 14

View user's profile Send private message

PostPosted: Thu May 12, 2011 1:29 am     Reply with quote

Hi
I am good at programming in c but not for microcontrollers. Following description gives a flow of how the circuit should operate.
After the circuit is switched on:
1. Able to set two countdown timers t1 and t2
a. Display t1 at the start up (t on the left 7-segment display(7SD) and 1 on the right 7-segment display(7SD) (here after referred to as 7SDL and 7SDLR respectively))
b. Then press enter push to on switch(here after referred to as PSE) connected to RA0 which allows us to change the time
c. Time is changed using increment and decrement push to on switches (here after PSI and PSD respectively))
d. Press PSE to set t1
e. t2 is displayed on the 7SDs(t on 7SDL and 2 on 7SDR)
f. Time is changed using increment and decrement push to on switches (here after PSI and PSD respectively))
g. Press PSE to set t2
2. Now Stepper Motor(SM here after) which is connected to port B ( B1,B2 to one coil (black and blue wires of the SM (green and red wires of SM in that order)) and B3, B4 to another coil (green and red wires of SM in that order)) starts rotating in one direction, say clock wise (CW) (which is same on each start-up of the circuit).
3. During rotation, a knob which is connected to the shaft of the SM now comes in proximity of the first proximity sensor (PS1) and corresponding output (OP1) is generated. This output is given at RA3. Now the SM halts at this position for t1 i.e., no output on B1-B4.
4. After t1 SM starts rotating in reverse direction i.e., anti clock wise (ACW)
5. During rotation knob comes in the proximity of the second proximity sensor (PS2) and corresponding output (OP2) is generated. This output is given at RA4. Now the SM halts at this position for t1 i.e., no output on B1-B4.
6. After t2 SM starts rotating CW again
7. Steps 3 through 6 repeat till the circuit is on.
Please help me with the programming. The micro controller I am using is PIC16F72.
arunb



Joined: 08 Sep 2003
Posts: 492
Location: India

View user's profile Send private message Send e-mail

RE:
PostPosted: Thu May 12, 2011 1:59 am     Reply with quote

Are you using PCM ??
Is the hardware ready ?? How do you intend to test it ??

The project that you have described is complicated for a beginner. You need to first learn the basics of setting up timers, handling push buttons, display segments and stepper motor etc.

I suggest you work on a simple projects first, like blinking a LED, using a push button to switch On and OFF a LED etc.

Then you can move on to more complicated ones like driving a stepper motor , controlling display segments etc.

thanks
a
tong143



Joined: 09 May 2011
Posts: 14

View user's profile Send private message

PostPosted: Thu May 12, 2011 3:17 am     Reply with quote

The hardware is ready. Previously I bought a stepper driver and timer separately. But when I combined them to operate it is not functional. So I am planning to do it on my own. Please give me some basic programs that you have suggested. I need to complete the programming by this weekend. I will be testing the code by directly dumping it into controller and using the hardware. I don't think I will use PCM. I think all the signals I use are digital. Do you think it will be necessary for my program. Please let me know.
Thank you in advance
temtronic



Joined: 01 Jul 2010
Posts: 9243
Location: Greensville,Ontario

View user's profile Send private message

PostPosted: Thu May 12, 2011 5:29 am     Reply with quote

FYI, PCM here, on this forum, means the version of the CCS C compiler not Pulse Code Modulation. CCS has many compilers (PCM, PCD, PCH, etc.)

There is an example of a stepper motor program in the examples folder, which is a good place to start. Actually look at all of the examples, most of what you want to do can be found there.

Just start off small,breaking the big program into smaller parts. Motor control, switch inputs, LED display tasks. That way you'll have working 'sub programs' that you can build on.

Be aware that if using MPLAB for development, that it defaults the build configuration to 'debug'. This must be changed to 'release' and then you must recompile(F10) , then download the program into your PIC. Failure to do so will not allow your PIC to run right. There is a 'patch' for MPLAB v.8.66 to change the default to 'release' permanently.
tong143



Joined: 09 May 2011
Posts: 14

View user's profile Send private message

PostPosted: Thu May 12, 2011 1:02 pm     Reply with quote

Please tell me whether the connections I have given are correct.
temtronic



Joined: 01 Jul 2010
Posts: 9243
Location: Greensville,Ontario

View user's profile Send private message

PostPosted: Thu May 12, 2011 6:25 pm     Reply with quote

You're the one designing the project, so it's up to you ...
..however..

I suggest you read/look at the examples that CCS gives.

EX_LED.C for LED wiring and testing...

EX_STEP.C for stepper motor control..

EX_PBUTT.C for push button/switch interface

In each program, you'll have to change the PIC pin assignments, but these programs are a GREAT starting point !!Once you've cut code for your project, report back with your test code and maybe others will help out.
asmboy



Joined: 20 Nov 2007
Posts: 2128
Location: albany ny

View user's profile Send private message AIM Address

PostPosted: Thu May 12, 2011 6:32 pm     Reply with quote

ONE CLEAR schematic beats hundreds of lines of circuit description....

honestly - it is just too much work for me to think about your problem
if you don't have a schematic or any code of your own to show that
you are serious and have enough innate skill and experince to
at least dig in and TRY to solve the code issues yourself

sorry
tong143



Joined: 09 May 2011
Posts: 14

View user's profile Send private message

Re: RE:
PostPosted: Fri May 13, 2011 7:49 am     Reply with quote

Are you from IISc?
arunb wrote:
Are you using PCM ??
Is the hardware ready ?? How do you intend to test it ??

The project that you have described is complicated for a beginner. You need to first learn the basics of setting up timers, handling push buttons, display segments and stepper motor etc.

I suggest you work on a simple projects first, like blinking a LED, using a push button to switch On and OFF a LED etc.

Then you can move on to more complicated ones like driving a stepper motor , controlling display segments etc.

thanks
a
tong143



Joined: 09 May 2011
Posts: 14

View user's profile Send private message

PostPosted: Fri May 13, 2011 3:35 pm     Reply with quote

Hi
I have MPLAB IDE v8.36, and PICKIT-2 programmer and debugger. I want to program PIC16F72 using that. Under 'select device' under 'configure' option, I have selected he PIC16F72. I am not able to select the programmer pickit-2 as it not highlighted. Please tell me what to do.
PCM programmer



Joined: 06 Sep 2003
Posts: 21708

View user's profile Send private message

PostPosted: Fri May 13, 2011 4:03 pm     Reply with quote

Download and install the latest version of MPLAB, vs. 8.66. It says the
16F72 is supported by Pickit 2 in that version:
http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en027813
temtronic



Joined: 01 Jul 2010
Posts: 9243
Location: Greensville,Ontario

View user's profile Send private message

PostPosted: Fri May 13, 2011 5:57 pm     Reply with quote

Also be aware that the MPLAB default for 'build configuration' is 'debug' and MUST be changed to 'release' then recompile(F10) in order to et correct code to be downloaded into your PIC.
There is a 'patch' to change this default to 'release'.
tong143



Joined: 09 May 2011
Posts: 14

View user's profile Send private message

PostPosted: Sun May 15, 2011 12:02 pm     Reply with quote

I have tried that but of no use. Shall you give me any other suggestion.

Thanks
Vikram

PCM programmer wrote:
Download and install the latest version of MPLAB, vs. 8.66. It says the
16F72 is supported by Pickit 2 in that version:
http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en027813
PCM programmer



Joined: 06 Sep 2003
Posts: 21708

View user's profile Send private message

PostPosted: Sun May 15, 2011 12:37 pm     Reply with quote

You're right. I think Microchip lied. The link that I posted says they
support the 16F72 with Pickit 2 in vs. 8.66. But then if I go to the Select
Device screen in MPLAB vs. 8.66, it says no support for Pickit 1 and
Pickit 2. Only Pickit 3 is supported.

My advice is to choose a different PIC. Use the Configure / Select Device
screen in MPLAB to see what devices are really supported for Pickit 2.
Then buy a PIC that is supported.
Display posts from previous:   
Post new topic   Reply to topic    CCS Forum Index -> General CCS C Discussion All times are GMT - 6 Hours
Goto page 1, 2  Next
Page 1 of 2

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group