<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>chopping driver | Student Projects</title>
	<atom:link href="https://studentprojects.in/tag/chopping-driver/feed/" rel="self" type="application/rss+xml" />
	<link>https://studentprojects.in</link>
	<description>Microcontroller projects, Circuit Diagrams, Project Ideas</description>
	<lastBuildDate>Thu, 01 Oct 2009 16:44:44 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.1.7</generator>
	<item>
		<title>Stepper Motor Chopping Driver</title>
		<link>https://studentprojects.in/electronics/microcontroller/8051-8951/stepper-motor-chopping-driver/</link>
					<comments>https://studentprojects.in/electronics/microcontroller/8051-8951/stepper-motor-chopping-driver/#comments</comments>
		
		<dc:creator><![CDATA[Editorial Team]]></dc:creator>
		<pubDate>Thu, 01 Oct 2009 16:33:35 +0000</pubDate>
				<category><![CDATA[8051/8951]]></category>
		<category><![CDATA[Stepper motor]]></category>
		<category><![CDATA[chopping driver]]></category>
		<category><![CDATA[circuits]]></category>
		<guid isPermaLink="false">http://studentprojects.in/?p=799</guid>

					<description><![CDATA[<p>Chopper drive circuits Chopper drive circuits are also referred to as constant current drives because they generate a somewhat constant current in each winding rather than applying a constant voltage. On each new step, a very high voltage is applied to the winding initially. This causes the current in the winding to rise quickly since</p>
<p>The post <a href="https://studentprojects.in/electronics/microcontroller/8051-8951/stepper-motor-chopping-driver/">Stepper Motor Chopping Driver</a> first appeared on <a href="https://studentprojects.in">Student Projects</a>.</p>]]></description>
										<content:encoded><![CDATA[<p><strong>Chopper drive circuits<br />
</strong></p>
<p>Chopper drive circuits are also referred to as constant current drives because they generate a somewhat constant current in each winding rather than applying a constant voltage. On each new step, a very high voltage is applied to the winding initially. This causes the current in the winding to rise quickly since dI/dt = V/L where V is very large.</p>
<p>When the current exceeds a specified current limit, the voltage is turned off or &#8220;chopped&#8221; and when the winding current drops below the specified limit, the voltage is turned on again. In this way, the current is held relatively constant for a particular step position.<br />
This allows driving stepper motors with higher torque and higher speed.</p>
<p><strong>Steps:</strong></p>
<ol>
<li> Measure Inductance and resistance of motor coil.</li>
<li> Get time constant.</li>
<li> Choose voltage value and desired calculation for program variables.</li>
<li> Write chopping program.</li>
</ol>
<p><img decoding="async" loading="lazy" class="size-full wp-image-800" title="Stepper Motor Chopping Driver" src="https://studentprojects.in/wp-content/uploads/2009/10/Stepper_Motor_Chopping_Driver.jpg" alt=" " width="500" height="259" /></p>
<p>Can be done using oscilloscope and step response equation on LR circuit or from stepper motor datasheet:<br />
<img decoding="async" loading="lazy" class="aligncenter size-full wp-image-801" title="Step response equation" src="https://studentprojects.in/wp-content/uploads/2009/10/Step_response_equation.jpg" alt="Step response equation" width="268" height="71" />Put I= maximum coil current from stepper datasheet (different from Imax)<br />
R=Rc = internal resistance of the stepper coil from stepper datasheet<br />
L =Lc = inductance of stepper coil from stepper datasheet<br />
Time constant ( T ) = L/R.<br />
Put t which is the desired time to reach the step level (start of chopping)</p>
<p>From above we can get   Imax  then by multiplying  it with Rc we can get the desired Applied voltage Vs to reach the maximum current in time t.<br />
<strong><br />
Case Study:<br />
</strong><br />
Stepper motor has the following specifications<br />
Max current per phase = 1A, voltage = 5.7V, Resistance per phase = 5.7<br />
Inductance = 6.5 mH/phase</p>
<p>So its time constant = 1.14 msec<br />
We put desired t=.5 msec to reach its max current instead of taking 1.14 msec It will give us Imax = 2.8164 and Vs=16 V so we will need to apply a 16 V to reach our max current per Phase in .5 msec.</p>
<p><strong>Program for Chopping driver </strong></p>
<pre lang="c">#include &lt;16f628.h&gt;
#use delay ( clock=4M )

// GLOBAL VARIABLES /////////////
int steps[] = {1,2,4,8}; // motor steps
int step_ptr = 0;
int step = 0;
int desiredt = 500; // desired time to reach max current at start of every step 0.5 msec
int choppingt = 50; // chopping time = 0.1 desired time = 50 usec

// FUNCTIONS ////////////////////

// INTERRUPTS ///////////////////

#INT_TIMER0
void change_step ()
{
if ((++step_ptr) &gt; 3)  step_ptr=0;
step = steps[step_ptr];
output_b(step);
delay_us(desiredt);
output_b(0);
delay_us(choppingt);
}

// MAIN /////////////////////////
void main()
{
// Motor terminals are connected to Port B (Unipolar Stepper Motor)
// setup interrupt timer0 to desired stepping speed let motor change step every 2msec
// if step angle = 1.8 degree, steps per revolution = 360/1.8 = 200 steps
// time per revolution = 200 * 2 msec = 0.4 sec
// rpm = 60/0.4 = 150 rpm

setup_timer_0(RTCC_INTERNAL | RTCC_DIV_16);

// put first step//
step = steps[step_ptr];
output_b(step);
delay_us(desiredt);
output_b(0);
delay_us(choppingt);

// enable interrupt/////
enable_interrupts(GLOBAL);
enable_interrupts(INT_TIMER0);

// chopping loop//

while (1)
{
// put step (apply voltage) //
output_b(step);
// wait chopping time //
delay_us(choppingt);
// clear step ////
output_b(0);
// wait chopping time//
delay_us(choppingt);
}
}</pre>
<p>References:</p>
<p>&#8211;    Wikipedia.org<br />
&#8211;    Microchip Co. application notes.</p>
<p>Article by &#8211; Amr Ayoub</p><p>The post <a href="https://studentprojects.in/electronics/microcontroller/8051-8951/stepper-motor-chopping-driver/">Stepper Motor Chopping Driver</a> first appeared on <a href="https://studentprojects.in">Student Projects</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://studentprojects.in/electronics/microcontroller/8051-8951/stepper-motor-chopping-driver/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
	</channel>
</rss>
