<?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>Stepper Archives - Esperimenti con logiche programmabili</title>
	<atom:link href="https://logicaprogrammabile.it/tag/stepper/feed/" rel="self" type="application/rss+xml" />
	<link>https://logicaprogrammabile.it/tag/stepper/</link>
	<description>Tutorial in italiano per imparare a programmare usando Arduino, Raspberry PI, Netduino</description>
	<lastBuildDate>Tue, 18 Apr 2017 10:04:39 +0000</lastBuildDate>
	<language>it-IT</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.8.2</generator>

<image>
	<url>https://logicaprogrammabile.it/wp-content/uploads/2017/11/cropped-logicaprogrammabile-logo-02-32x32.png</url>
	<title>Stepper Archives - Esperimenti con logiche programmabili</title>
	<link>https://logicaprogrammabile.it/tag/stepper/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>L298N pilotare motore passo passo bipolare</title>
		<link>https://logicaprogrammabile.it/pilotare-motore-passo-passo-bipolare-driver-l298n/</link>
					<comments>https://logicaprogrammabile.it/pilotare-motore-passo-passo-bipolare-driver-l298n/#comments</comments>
		
		<dc:creator><![CDATA[Marco Lai]]></dc:creator>
		<pubDate>Tue, 28 May 2013 09:32:02 +0000</pubDate>
				<category><![CDATA[Elettronica]]></category>
		<category><![CDATA[Tutorial Arduino]]></category>
		<category><![CDATA[Motore DC]]></category>
		<category><![CDATA[Stepper]]></category>
		<guid isPermaLink="false">https://logicaprogrammabile.it/?p=3634</guid>

					<description><![CDATA[<p>Come pilotare un motore passo passo usando l&#8217;integrato L298N Quando osservo i robot industriali assemblare, saldare, fresare o posizionare oggetti con una precisione sconcertante rimango affascinato dalla capacità umana di poter costruire queste macchine. Anche nelle nostre abitazioni sono presenti oggetti dotati di parti meccaniche,...</p>
<p>The post <a href="https://logicaprogrammabile.it/pilotare-motore-passo-passo-bipolare-driver-l298n/">L298N pilotare motore passo passo bipolare</a> appeared first on <a href="https://logicaprogrammabile.it">Esperimenti con logiche programmabili</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h1>Come pilotare un motore passo passo usando l&#8217;integrato L298N</h1>
<p>Quando osservo i robot industriali assemblare, saldare, fresare o posizionare oggetti con una precisione sconcertante rimango affascinato dalla capacità umana di poter costruire queste macchine.<br />
Anche nelle nostre abitazioni sono presenti oggetti dotati di parti meccaniche, che compiono movimenti molto precisi, come ad esempio le stampanti, i plotter e gli scanner.<br />
Questi dispositivi hanno in comune tra loro un particolare dispositivo chiamato motore passo passo (<strong>stepper motor</strong>).<br />
E&#8217; un <strong>trasduttore elettromeccanico</strong> che converte degli impulsi elettrici in un movimento fisico. Ad ogni <strong>impulso elettrico</strong> corrisponde un <strong>movimento del rotore</strong>; questo spostamento viene chiamato <strong>step</strong>.<br />
A differenza del motore in corrente continua i motori passo passo possono mantenere la propria velocità di <strong>rotazione costante</strong>, anche con carico applicato, senza usare sistemi di controreazione (tachimetriche o encoder).<br />
Il motore eroga una <strong>coppia elevata</strong>, anche con bassi numeri di giri, possiede <strong>accelerazioni e frenate repentine</strong> ed è capace di mantenere il carico applicato fermo in posizione, senza vibrazioni.</p>
<p>Naturalmente esistono anche degli <strong>svantaggi</strong>, tra cui la necessità di utilizzare un <strong>circuito elettrico di pilotaggio</strong>, un <strong>rendimento energetico basso</strong>, una <strong>velocità di rotazione ridotta</strong> ed un <strong>costo di acquisto elevato</strong>.</p>
<p><span id="more-3634"></span></p>
<p>La figura seguente mostra, in maniera semplificata, il principio di costruzione di un motore passo passo.</p>
<p><a href="https://logicaprogrammabile.it/wp-content/uploads/2013/05/Motore_PassoPasso.png"><img fetchpriority="high" decoding="async" class="aligncenter size-full wp-image-3640" src="https://logicaprogrammabile.it/wp-content/uploads/2013/05/Motore_PassoPasso.png" alt="Motore Passo Passo" width="484" height="373" srcset="https://logicaprogrammabile.it/wp-content/uploads/2013/05/Motore_PassoPasso.png 484w, https://logicaprogrammabile.it/wp-content/uploads/2013/05/Motore_PassoPasso-300x231.png 300w" sizes="(max-width: 484px) 100vw, 484px" /></a></p>
<p>Il movimento del rotore avviene alimentando le bobine in modo consecutivo. Eccitando solo la<strong> bobina A1</strong> il rotore si posiziona verso <strong>NORD</strong>, eccitando solo la<strong> bobina B1</strong> il rotore si posiziona in direzione <strong>EST</strong>, eccitando solo la<strong> bobina A2</strong> il rotore si posiziona in direzione <strong>SUD</strong> ed infine eccitando solo la <strong>bobina B2</strong> il rotore si posiziona in direzione <strong>OVEST</strong>.<br />
La tabella seguente riassumere la sequenza.</p>
<div align="center">
<table>
<tbody>
<tr>
<td style="text-align: center;" colspan="5"><span style="font-size: large;">Fasi di Alimentazione</span></td>
</tr>
<tr>
<td style="text-align: center;"></td>
<td style="text-align: center;"><span style="font-size: large;">A1</span></td>
<td style="text-align: center;"><span style="font-size: large;">A2</span></td>
<td style="text-align: center;"><span style="font-size: large;">B1 </span></td>
<td style="text-align: center;"><span style="font-size: large;">B2 </span></td>
</tr>
<tr>
<td style="text-align: center;"><span style="font-size: large;">Fase 1</span></td>
<td style="text-align: center;" bgcolor="#FF0000"><span style="font-size: large;">+</span></td>
<td style="text-align: center; background-color: #04c4fa;"><span style="font-size: large;">&#8211;</span></td>
<td style="text-align: center; background-color: #04c4fa;"><span style="font-size: large;">&#8211;</span></td>
<td style="text-align: center; background-color: #04c4fa;"><span style="font-size: large;">&#8211;</span></td>
</tr>
<tr>
<td style="text-align: center;"><span style="font-size: large;">Fase 2</span></td>
<td style="text-align: center; background-color: #04c4fa;"><span style="font-size: large;">&#8211;</span></td>
<td style="text-align: center; background-color: #04c4fa;"><span style="font-size: large;">&#8211;</span></td>
<td style="text-align: center;" bgcolor="#FF0000"><span style="font-size: large;">+</span></td>
<td style="text-align: center; background-color: #04c4fa;"><span style="font-size: large;">&#8211;</span></td>
</tr>
<tr>
<td style="text-align: center;"><span style="font-size: large;">Fase 3</span></td>
<td style="text-align: center; background-color: #04c4fa;"><span style="font-size: large;">&#8211;</span></td>
<td style="text-align: center;" bgcolor="#FF0000"><span style="font-size: large;">+</span></td>
<td style="text-align: center; background-color: #04c4fa;"><span style="font-size: large;">&#8211;</span></td>
<td style="text-align: center; background-color: #04c4fa;"><span style="font-size: large;">&#8211;</span></td>
</tr>
<tr>
<td style="text-align: center;"><span style="font-size: large;">Fase 4</span></td>
<td style="text-align: center; background-color: #04c4fa;"><span style="font-size: large;">&#8211;</span></td>
<td style="text-align: center; background-color: #04c4fa;"><span style="font-size: large;">&#8211;</span></td>
<td style="text-align: center; background-color: #04c4fa;"><span style="font-size: large;">&#8211;</span></td>
<td style="text-align: center;" bgcolor="#FF0000"><span style="font-size: large;">+</span></td>
</tr>
</tbody>
</table>
</div>
<p>Seguendo le <strong>fasi di alimentazioni A1-B1-A2-B2</strong> il rotore si sposterà in senso <strong>orario</strong>, invertendo la sequenza <strong>B2-A2-B1-A1</strong> il rotore si sposterà in senso <strong>antiorario</strong>. E&#8217; importante alimentare le bobine in modo sequenziale perché il rotore deve seguire in maniera lineare il campo elettromagnetico generato dalle bobine.</p>
<p>Naturalmente nei <strong>motori passo passo</strong> reali la sequenza delle 4 fasi fa girare l&#8217;albero di un solo passo (step). Il numero dei passi è una caratteristica costruttiva del motore, solitamente ha un valore di <strong>200 step/giro</strong>, ma ne esistono anche da <strong>20, 24, 48 e 400 step/giro</strong>. Il numero di step può essere espresso in gradi sessagesimali, ad esempio un motore da 7.5° equivale ad uno con 48 step/giro (360°/7.5°=48).<br />
Le 4 fasi di alimentazione delle bobine (considerando un ipotetico motore da <strong>1 step/giro</strong>), viene rappresentata dalla figura seguente:</p>
<p><a href="https://logicaprogrammabile.it/wp-content/uploads/2013/05/FasiAlimentazione.png"><img decoding="async" class="aligncenter size-full wp-image-3652" src="https://logicaprogrammabile.it/wp-content/uploads/2013/05/FasiAlimentazione.png" alt="Fasi di alimentazione motore passo passo" width="710" height="231" srcset="https://logicaprogrammabile.it/wp-content/uploads/2013/05/FasiAlimentazione.png 710w, https://logicaprogrammabile.it/wp-content/uploads/2013/05/FasiAlimentazione-300x97.png 300w" sizes="(max-width: 710px) 100vw, 710px" /></a></p>
<p>La sequenza di alimentazione è solitamente gestita da un integrato a logica programmabile mentre il compito di fornire l&#8217;energia è demandato ad un <strong>ponte ad H</strong>. Abbiamo affrontato l&#8217;utilizzo del ponte H in questo <a href="https://logicaprogrammabile.it/pilotare-motore-dc-tramite-ponte-h/">precedente articolo</a>. Per essere più precisi, avendo 4 fili, dobbiamo usare <strong>due ponti H</strong> uno che alimenta le <strong>bobine A1 e A2</strong> e l&#8217;altro che alimenta le <strong>bobine B1 e B2</strong>.</p>
<p>In questo tutorial ho usato come microcontrollore la <strong>Arduino Leonardo</strong> e come doppio ponte H il driver L298N prodotto da <a href="http://www.st.com/web/catalog/sense_power/FM142/CL851/SC1790/SS1555/PF63147" target="_blank">ST Microelectronics</a>. Il motore è un 48 passi/giro operante a 12Vdc, smontato da una vecchia stampante non più funzionante.</p>
<h4>Collegamento dei componenti</h4>
<p>Il <strong>circuito elettrico</strong> che permette di pilotare il motore è rappresentato nella figura seguente:</p>
<p><img decoding="async" class="aligncenter size-full wp-image-5496" src="https://logicaprogrammabile.it/wp-content/uploads/2013/05/Schema_Motore_l298.png" alt="Motore passo passo l298" width="599" height="406" srcset="https://logicaprogrammabile.it/wp-content/uploads/2013/05/Schema_Motore_l298.png 599w, https://logicaprogrammabile.it/wp-content/uploads/2013/05/Schema_Motore_l298-300x203.png 300w" sizes="(max-width: 599px) 100vw, 599px" /></p>
<p>riassumo i collegamenti tramite la tabella seguente</p>
<table style="width: 57px; height: 23px;">
<tbody>
<tr>
<td style="text-align: center;" nowrap="nowrap"><span style="font-size: small;"><strong>Motore Passo Passo</strong></span></td>
<td style="text-align: center;" nowrap="nowrap"><span style="font-size: small;"><strong>Integrato L298N</strong></span></td>
<td style="text-align: center;" nowrap="nowrap"><span style="font-size: small;"><strong>Arduino Leonardo</strong></span></td>
</tr>
<tr>
<td style="text-align: center;"><span style="font-size: small;"> </span></td>
<td style="text-align: center;"><span style="font-size: small;">1-8-15</span></td>
<td style="text-align: center;"><span style="font-size: small;">GND</span></td>
</tr>
<tr>
<td style="text-align: center;"><span style="font-size: small;"> </span></td>
<td style="text-align: center;"><span style="font-size: small;">6-9-11</span></td>
<td style="text-align: center;"><span style="font-size: small;">VCC 5Vdc</span></td>
</tr>
<tr>
<td style="text-align: center;"><span style="font-size: small;"> </span></td>
<td style="text-align: center;"><span style="font-size: small;">5</span></td>
<td style="text-align: center;"><span style="font-size: small;">5<br />
</span></td>
</tr>
<tr>
<td style="text-align: center;"><span style="font-size: small;"> </span></td>
<td style="text-align: center;"><span style="font-size: small;">7</span></td>
<td style="text-align: center;"><span style="font-size: small;">4<br />
</span></td>
</tr>
<tr>
<td style="text-align: center;"><span style="font-size: small;"> </span></td>
<td style="text-align: center;"><span style="font-size: small;">10</span></td>
<td style="text-align: center;"><span style="font-size: small;">3<br />
</span></td>
</tr>
<tr>
<td style="text-align: center;"><span style="font-size: small;"> </span></td>
<td style="text-align: center;"><span style="font-size: small;">12</span></td>
<td style="text-align: center;"><span style="font-size: small;">2<br />
</span></td>
</tr>
<tr>
<td style="text-align: center;"><span style="font-size: small;"> A1</span></td>
<td style="text-align: center;"><span style="font-size: small;">14</span></td>
<td style="text-align: center;"><span style="font-size: small;"> </span></td>
</tr>
<tr>
<td style="text-align: center;"><span style="font-size: small;"> A2</span></td>
<td style="text-align: center;"><span style="font-size: small;">13</span></td>
<td style="text-align: center;"><span style="font-size: small;"> </span></td>
</tr>
<tr>
<td style="text-align: center;"><span style="font-size: small;"> B1</span></td>
<td style="text-align: center;"><span style="font-size: small;">3</span></td>
<td style="text-align: center;"><span style="font-size: small;"> </span></td>
</tr>
<tr>
<td style="text-align: center;"><span style="font-size: small;"> B2</span></td>
<td style="text-align: center;"><span style="font-size: small;">2</span></td>
<td style="text-align: center;"><span style="font-size: small;"> </span></td>
</tr>
<tr>
<td style="text-align: center;"><span style="font-size: small;">Alimentazione Motore 12Vdc</span></td>
<td style="text-align: center;"><span style="font-size: small;">4</span></td>
<td style="text-align: center;"><span style="font-size: small;"> </span></td>
</tr>
</tbody>
</table>
<p>i <strong>diodi in contro fase</strong> servono per <strong>proteggere</strong> le uscite dell&#8217;integrato <strong>L298N</strong> da eventuali <strong>sovratensioni</strong> generate durante l&#8217;alimentazione delle bobine.</p>
<p>Il codice necessario per pilotare il motore rispecchia quanto detto precedentemente. In pratica è necessario alimentare in modo consecutivo le bobine rispettando le quatto fasi.</p>
<pre class="">void setup()
{
  //i pin 2-3-4-5 sono
  //configurati come uscite
  pinMode(2, OUTPUT);
  pinMode(3, OUTPUT);
  pinMode(4, OUTPUT);
  pinMode(5, OUTPUT);

  //forzo le uscite a livello logico basso
  digitalWrite(2, LOW);
  digitalWrite(3, LOW);
  digitalWrite(4, LOW);
  digitalWrite(5, LOW);
}

void loop()
{
  //FASE 1
  //Alimento solo la prima bobina
  digitalWrite(2, HIGH);
  digitalWrite(3, LOW);
  digitalWrite(4, LOW);
  digitalWrite(5, LOW);
  delay(10);

  //FASE 2
  //Alimento solo la seconda bobina
  digitalWrite(2, LOW);
  digitalWrite(3, HIGH);
  digitalWrite(4, LOW);
  digitalWrite(5, LOW);
  delay(10);

  //FASE 3
  //Alimento solo la terza bobina
  digitalWrite(2, LOW);
  digitalWrite(3, LOW);
  digitalWrite(4, HIGH);
  digitalWrite(5, LOW);
  delay(10);

  //fase 4
  //Alimento solo la quarta bobina
  digitalWrite(2, LOW);
  digitalWrite(3, LOW);
  digitalWrite(4, LOW);
  digitalWrite(5, HIGH);
  delay(10);

}
</pre>
<p>Una volta caricato lo sketch, l&#8217;albero del motore inizierà a girare in senso orario. Per invertire la rotazione è sufficiente alimentare le bobine dalla fase 4 alla fase 1.</p>
<p>Cambiando il valore del<strong> delay()</strong> otterremmo una variazione di <strong>velocità nella rotazione</strong> del rotore.</p>
<p>Se avete delle stampanti vecchie potete subito passare alla pratica realizzando piccoli meccanismi e semplici robot. Volendo si possono collegare alla Leonardo 2 driver <strong>L298N</strong> per pilotare altrettanti motori passo passo, questo vi permette di poter controllare i due motori simultaneamente creando sistemi meccanici più complessi.</p>
<p>The post <a href="https://logicaprogrammabile.it/pilotare-motore-passo-passo-bipolare-driver-l298n/">L298N pilotare motore passo passo bipolare</a> appeared first on <a href="https://logicaprogrammabile.it">Esperimenti con logiche programmabili</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://logicaprogrammabile.it/pilotare-motore-passo-passo-bipolare-driver-l298n/feed/</wfw:commentRss>
			<slash:comments>8</slash:comments>
		
		
			</item>
	</channel>
</rss>
