<?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>Robotica microcontroladores y sensores</title>
	<atom:link href="https://www.electrontools.com/Home/WP/robotica/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.electrontools.com/Home/WP/robotica/</link>
	<description>Explicaciones teóricas y ejercicios prácticos resueltos de Matemáticas &#124; Física &#124; Electrónica de nivel secundario y universitario.</description>
	<lastBuildDate>Fri, 14 Jan 2022 14:52:09 +0000</lastBuildDate>
	<language>es</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	

<image>
	<url>https://www.electrontools.com/Home/WP/wp-content/uploads/2019/04/cropped-favicon-32x32.png</url>
	<title>Robotica microcontroladores y sensores</title>
	<link>https://www.electrontools.com/Home/WP/robotica/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>AMPLIFICADOR OPERACIONAL COMO COMPARADOR</title>
		<link>https://www.electrontools.com/Home/WP/amplificador-operacional-como-comparador/</link>
					<comments>https://www.electrontools.com/Home/WP/amplificador-operacional-como-comparador/#respond</comments>
		
		<dc:creator><![CDATA[Cristian Veloso]]></dc:creator>
		<pubDate>Tue, 04 Apr 2017 18:13:38 +0000</pubDate>
				<category><![CDATA[Electronica]]></category>
		<category><![CDATA[Robotica]]></category>
		<category><![CDATA[Amplificador]]></category>
		<guid isPermaLink="false">http://www.electrontools.com/Home/WP/?p=2209</guid>

					<description><![CDATA[<div><img width="631" height="631" src="https://www.electrontools.com/Home/WP/wp-content/uploads/2017/04/Amplificador-Operacional2.png" class="attachment-large size-large wp-post-image" alt="" decoding="async" fetchpriority="high" srcset="https://www.electrontools.com/Home/WP/wp-content/uploads/2017/04/Amplificador-Operacional2.png 631w, https://www.electrontools.com/Home/WP/wp-content/uploads/2017/04/Amplificador-Operacional2-150x150.png 150w, https://www.electrontools.com/Home/WP/wp-content/uploads/2017/04/Amplificador-Operacional2-300x300.png 300w, https://www.electrontools.com/Home/WP/wp-content/uploads/2017/04/Amplificador-Operacional2-250x250.png 250w, https://www.electrontools.com/Home/WP/wp-content/uploads/2017/04/Amplificador-Operacional2-174x174.png 174w" sizes="(max-width: 631px) 100vw, 631px" /></div><p>GANANCIA EN LAZO ABIERTO - AMPLIFICADOR COMO COMPARADOR Un Amplificador operacional es&#8230;</p>
<p>The post <a href="https://www.electrontools.com/Home/WP/amplificador-operacional-como-comparador/">AMPLIFICADOR OPERACIONAL COMO COMPARADOR</a> appeared first on <a href="https://www.electrontools.com/Home/WP">Tutoriales de Electrónica | Matemática y Física</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div><img width="631" height="631" src="https://www.electrontools.com/Home/WP/wp-content/uploads/2017/04/Amplificador-Operacional2.png" class="attachment-large size-large wp-post-image" alt="" decoding="async" srcset="https://www.electrontools.com/Home/WP/wp-content/uploads/2017/04/Amplificador-Operacional2.png 631w, https://www.electrontools.com/Home/WP/wp-content/uploads/2017/04/Amplificador-Operacional2-150x150.png 150w, https://www.electrontools.com/Home/WP/wp-content/uploads/2017/04/Amplificador-Operacional2-300x300.png 300w, https://www.electrontools.com/Home/WP/wp-content/uploads/2017/04/Amplificador-Operacional2-250x250.png 250w, https://www.electrontools.com/Home/WP/wp-content/uploads/2017/04/Amplificador-Operacional2-174x174.png 174w" sizes="(max-width: 631px) 100vw, 631px" /></div><h2>GANANCIA EN LAZO ABIERTO - AMPLIFICADOR COMO COMPARADOR</h2>
<p>Un <strong>Amplificador operacional</strong> es un dispositivo electrónico muy utilizado para diversas funciones, entre una de las mas destacadas es utilizarlo <strong>comparador</strong>.</p>
<p>Podemos utilizar un <strong>amplificador operacional</strong> para determinar cual de las dos señales de entrada es mayor. Con que una de las dos señales sea ligeramente superior para que se produzca la salida máxima en el amplificador, sea positiva <strong>(+Vsat)</strong> o negativa <strong>(-Vsat)</strong>.</p>
<p>Al utilizar el <strong>amplificador operacional</strong> en lazo abierto, la ganancia en la salida sera siempre muy grande, aproximadamente del orden de 100.000 veces o mas, una pequeña variación en las tensiones de entrada <strong>Vs+</strong> y <strong>Vs-</strong> produce que a la salida del <strong>amplificador</strong> tengamos un valor cercano a la tensión de alimentación.</p>
<p>La siguiente imagen, muestra la conexión de un <strong>amplificador operacional</strong> en modo de lazo abierto, para ser utilizado como <strong>comparador</strong>.</p>
<p><img decoding="async" loading="lazy" class="size-full wp-image-2217 aligncenter" src="https://www.electrontools.com/Home/WP/wp-content/uploads/2017/04/Amplificador-Operacional.png" alt="Amplificador Operacional" width="631" height="378" srcset="https://www.electrontools.com/Home/WP/wp-content/uploads/2017/04/Amplificador-Operacional.png 631w, https://www.electrontools.com/Home/WP/wp-content/uploads/2017/04/Amplificador-Operacional-300x180.png 300w" sizes="auto, (max-width: 631px) 100vw, 631px" /></p>
<ul>
<li>Si <strong>V1</strong> es mayor que <strong>V2</strong>, la tensión a la salida del comparador sera la alimentación positiva de la fuente <strong>Vs+.</strong></li>
</ul>
<ul>
<li>Si <strong>V2</strong> es mayor que <strong>V1</strong>, la tensión a la salida del comparador sera la alimentación negativa de la fuente <strong>Vs-.</strong></li>
</ul>
<p>Un <strong>amplificador operacional</strong>, trabajando como <strong>comparador</strong>, puede ser configurado en modo inversor o no inversor, dependiendo a que entrada se aplique la señal a detectar y la señal de referencia.</p>
<h2>AMPLIFICADOR COMPARADOR NO INVERSOR</h2>
<p>En este tipo de <strong>comparador</strong>, la tensión de referencia es aplicada a la entrada inversora y la señal a detectar se aplica a la entrada no inversora, vale la pena comentar que la tensión de referencia puede ser tanto positiva como negativa.</p>
<ul>
<li>En el caso de que la señal que tenemos que detectar, sea superior a la señal de referencia, a la salida vamos a tener una señal igual a <strong>Vs+</strong>.</li>
</ul>
<ul>
<li>Si la tensión de referencia es mayor a la señal a detectar, en el terminal de salida tendremos como resultado una tensión igual a <strong>Vs-</strong>.</li>
</ul>
<h2>AMPLIFICADOR COMPARADOR INVERSOR</h2>
<p>En este tipo de <strong>comparador</strong>, la tensión de referencia es aplicada a la entrada no inversora y la señal a detectar se aplica a la entrada inversora, al igual que dijimos antes tanto tensión de referencia puede ser tanto positiva como negativa.</p>
<ul>
<li>En el caso de que la señal que tenemos que detectar, sea superior a la señal de referencia, a la salida vamos a tener una señal igual a <strong>Vs-</strong>.</li>
<li>Si la tensión de referencia es mayor a la señal a detectar, en el terminal de salida tendremos como resultado una tensión igual a <strong>Vs+</strong>.</li>
</ul>
<h2>AMPLIFICADOR 741</h2>
<p>Es uno de los amplificadores encapsulados mas populares, es muy apreciado por multitud de diseñadores por sus maravillosas prestaciones en su época, pero vale la pena comentar que hoy en día existen muchos otros de mejor calidad.</p>
<p>Sin embargo, el <strong>amplificador operacional LM741</strong> sigue siendo el preferido de los estudiantes y aficionados dado que es el ejemplo mas común en los salones de clases y libros teóricos.</p>
<p>En el siguiente enlace, dejo el set de datos de dicho <strong>amplificador </strong> <a href="https://www.electrontools.com/Home/WP/wp-content/uploads/2017/04/data-set-lm741.pdf">Amplificador operacional LM741</a></p>
<p><script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script><br />
<!-- A Nivel de Pagina --><br />
<ins class="adsbygoogle" style="display: block;" data-ad-client="ca-pub-9571830503688100" data-ad-slot="2044463678" data-ad-format="auto"></ins><br />
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script></p>
<p>The post <a href="https://www.electrontools.com/Home/WP/amplificador-operacional-como-comparador/">AMPLIFICADOR OPERACIONAL COMO COMPARADOR</a> appeared first on <a href="https://www.electrontools.com/Home/WP">Tutoriales de Electrónica | Matemática y Física</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.electrontools.com/Home/WP/amplificador-operacional-como-comparador/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>QUE ES EL DUTY CYCLE O CICLO DE TRABAJO</title>
		<link>https://www.electrontools.com/Home/WP/que-es-el-duty-cycle-o-ciclo-de-trabajo/</link>
					<comments>https://www.electrontools.com/Home/WP/que-es-el-duty-cycle-o-ciclo-de-trabajo/#comments</comments>
		
		<dc:creator><![CDATA[Cristian Veloso]]></dc:creator>
		<pubDate>Mon, 29 Aug 2016 15:57:46 +0000</pubDate>
				<category><![CDATA[Robotica]]></category>
		<category><![CDATA[PWM]]></category>
		<guid isPermaLink="false">http://www.electrontools.com/Home/WP/?p=1271</guid>

					<description><![CDATA[<div><img width="446" height="446" src="https://www.electrontools.com/Home/WP/wp-content/uploads/2016/08/Que-es-el-duty-cycle.jpg" class="attachment-large size-large wp-post-image" alt="" decoding="async" srcset="https://www.electrontools.com/Home/WP/wp-content/uploads/2016/08/Que-es-el-duty-cycle.jpg 446w, https://www.electrontools.com/Home/WP/wp-content/uploads/2016/08/Que-es-el-duty-cycle-150x150.jpg 150w, https://www.electrontools.com/Home/WP/wp-content/uploads/2016/08/Que-es-el-duty-cycle-300x300.jpg 300w, https://www.electrontools.com/Home/WP/wp-content/uploads/2016/08/Que-es-el-duty-cycle-250x250.jpg 250w, https://www.electrontools.com/Home/WP/wp-content/uploads/2016/08/Que-es-el-duty-cycle-174x174.jpg 174w" sizes="(max-width: 446px) 100vw, 446px" /></div><p>En términos eléctricos, el ciclo de trabajo o Duty Cycle es la&#8230;</p>
<p>The post <a href="https://www.electrontools.com/Home/WP/que-es-el-duty-cycle-o-ciclo-de-trabajo/">QUE ES EL DUTY CYCLE O CICLO DE TRABAJO</a> appeared first on <a href="https://www.electrontools.com/Home/WP">Tutoriales de Electrónica | Matemática y Física</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div><img width="446" height="446" src="https://www.electrontools.com/Home/WP/wp-content/uploads/2016/08/Que-es-el-duty-cycle.jpg" class="attachment-large size-large wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://www.electrontools.com/Home/WP/wp-content/uploads/2016/08/Que-es-el-duty-cycle.jpg 446w, https://www.electrontools.com/Home/WP/wp-content/uploads/2016/08/Que-es-el-duty-cycle-150x150.jpg 150w, https://www.electrontools.com/Home/WP/wp-content/uploads/2016/08/Que-es-el-duty-cycle-300x300.jpg 300w, https://www.electrontools.com/Home/WP/wp-content/uploads/2016/08/Que-es-el-duty-cycle-250x250.jpg 250w, https://www.electrontools.com/Home/WP/wp-content/uploads/2016/08/Que-es-el-duty-cycle-174x174.jpg 174w" sizes="auto, (max-width: 446px) 100vw, 446px" /></div><p>En términos eléctricos, el ciclo de trabajo o <strong>Duty Cycle</strong> es la relación existente entre el tiempo en que una señal se encuentra en estado activo con el periodo de dicha señal, normalmente este termino es aplicado para señales cuadradas, donde se intenta emular una señal analogica mediante la variabilidad del estado alto y bajo de una señal digital.</p>
<p><img decoding="async" loading="lazy" class="size-full wp-image-1274 aligncenter" src="https://www.electrontools.com/Home/WP/wp-content/uploads/2016/08/Duty-Cycle.png" alt="Ciclo de trabajo" width="659" height="228" srcset="https://www.electrontools.com/Home/WP/wp-content/uploads/2016/08/Duty-Cycle.png 659w, https://www.electrontools.com/Home/WP/wp-content/uploads/2016/08/Duty-Cycle-300x104.png 300w" sizes="auto, (max-width: 659px) 100vw, 659px" /></p>
<p>Por ejemplo en la imagen que se muestra arriba, <strong>TH</strong> es el tiempo en estado activo y <strong>TW</strong> es el periodo de la señal, para calcular el <strong>Duty Cycle</strong> tenemos que hacer lo siguiente.</p>
<p><img decoding="async" loading="lazy" class="size-full wp-image-1276 aligncenter" src="https://www.electrontools.com/Home/WP/wp-content/uploads/2016/08/formula-del-Ducty-Cycle.png" alt="formula del Ducty Cycle" width="166" height="80" /></p>
<p>El 100 es solamente para expresarlo en porcentajes, existen algunos casos particulares que se pueden dar al trabajar este tipo de señales que es bueno comentar.</p>
<ul>
<li><strong>0% Duty</strong>: Cuando el <strong>Duty Cycle</strong> es igual cero significa que en ningún momento la señal se encuentra en estado alto, significa que la señal no entrega potencia.</li>
</ul>
<ul>
<li><strong>50% Duty</strong>: Al colocar el <strong>Duty Cycle</strong> en <strong>50%</strong>, significa que la mitad del periodo la señal se encuentra en estado alto, lo que significa que si utilizamos esta señal para alimentar un motor o prender un led, lo estaríamos haciendo con la mitad de la potencia que tenemos disponible, para el caso del led se notaria que la luz se enciende con menor intensidad y en el caso del motor se movería mas rápido.</li>
</ul>
<ul>
<li><strong>75% Duty</strong>: Este caso significa que estamos entregando una potencia de salida del 75% de la máxima posible.</li>
</ul>
<ul>
<li><strong>100% Duty</strong>: Estamos entregando la totalidad de la potencia posible, lo que significa que la señal nunca se encuentra en estado bajo.</li>
</ul>
<p>Como se puede ver, lo interesante es que controlando el tiempo en que la señal esta en alto, podemos controlar la potencia que le aplicamos a la señal, de esta manera como dije antes podemos controlar la velocidad de un motor, la intensidad de un led, o cualquier otra cosa mas.</p>
<p>Todo lo que vimos hasta ahora forma parte de lo que se conoce como <a href="https://www.electrontools.com/Home/WP/2016/03/09/pwm-modulacion-por-ancho-de-pulsos/" target="_blank"><strong>Modulación</strong> por ancho de pulsos o <strong>PWM</strong></a>, esta técnica se basa en modificar el tiempo en ON de una señal cuadrada para controlar la potencia que se le suministrara a un dispositivo electrónico.</p>
<h2>APLICACIONES PWM (MODULACIÓN POR ANCHO DE PULSOS)</h2>
<ul>
<li><strong>Motores:</strong> Como dijimos antes, podemos controlar la potencia del motor, lo que significa que podemos regular la velocidad del motor</li>
</ul>
<ul>
<li><strong>Regulador de intensidad de luz: </strong>Al controlar la potencia que se le suministra a una lampar podemos controlar su luminosidad, cuanto menor sea el <strong>Duty Cycle</strong> menor sera la iluminacion de la lampara.</li>
</ul>
<ul>
<li><strong>Conversor Analógico a digitales</strong>: Es una técnica utilizada en los sistemas de conversión de señales analogica a digital, forma parte del circuito de conversión.</li>
</ul>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>The post <a href="https://www.electrontools.com/Home/WP/que-es-el-duty-cycle-o-ciclo-de-trabajo/">QUE ES EL DUTY CYCLE O CICLO DE TRABAJO</a> appeared first on <a href="https://www.electrontools.com/Home/WP">Tutoriales de Electrónica | Matemática y Física</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.electrontools.com/Home/WP/que-es-el-duty-cycle-o-ciclo-de-trabajo/feed/</wfw:commentRss>
			<slash:comments>7</slash:comments>
		
		
			</item>
		<item>
		<title>Puente H con driver L298</title>
		<link>https://www.electrontools.com/Home/WP/puente-h-con-driver-l298/</link>
					<comments>https://www.electrontools.com/Home/WP/puente-h-con-driver-l298/#comments</comments>
		
		<dc:creator><![CDATA[Cristian Veloso]]></dc:creator>
		<pubDate>Fri, 06 May 2016 19:37:33 +0000</pubDate>
				<category><![CDATA[Arduino]]></category>
		<category><![CDATA[Robotica]]></category>
		<category><![CDATA[L298]]></category>
		<guid isPermaLink="false">http://www.electrontools.com/Home/WP/?p=772</guid>

					<description><![CDATA[<div><img width="500" height="445" src="https://www.electrontools.com/Home/WP/wp-content/uploads/2016/05/Driver-l298.jpg" class="attachment-large size-large wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://www.electrontools.com/Home/WP/wp-content/uploads/2016/05/Driver-l298.jpg 500w, https://www.electrontools.com/Home/WP/wp-content/uploads/2016/05/Driver-l298-300x267.jpg 300w" sizes="auto, (max-width: 500px) 100vw, 500px" /></div><p>En otra entrada explicamos que es y como funciona un puente H ,&#8230;</p>
<p>The post <a href="https://www.electrontools.com/Home/WP/puente-h-con-driver-l298/">Puente H con driver L298</a> appeared first on <a href="https://www.electrontools.com/Home/WP">Tutoriales de Electrónica | Matemática y Física</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div><img width="500" height="445" src="https://www.electrontools.com/Home/WP/wp-content/uploads/2016/05/Driver-l298.jpg" class="attachment-large size-large wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://www.electrontools.com/Home/WP/wp-content/uploads/2016/05/Driver-l298.jpg 500w, https://www.electrontools.com/Home/WP/wp-content/uploads/2016/05/Driver-l298-300x267.jpg 300w" sizes="auto, (max-width: 500px) 100vw, 500px" /></div><p>En otra entrada explicamos que es y como funciona un <a href="https://www.electrontools.com/Home/WP/2016/03/09/como-funciona-el-puente-h-l293b/">puente H </a>, vimos que es una configuración circuital de diodos que nos permite controlar el giro de un motor, básicamente los diodos actúan como controladores de la polaridad que se le aplica al motor.</p>
<p>Existen varios driver que ya tienen toda la electrónica resulta, ya hablamos en otra oportunidad del <a href="https://www.electrontools.com/Home/WP/2016/03/09/como-funciona-el-puente-h-l293b/">L293</a> ahora es el turno del <strong>driver L298</strong>.</p>
<h2>Driver L298</h2>
<p>Este driver permite controlar dos motores de corriente continua y motores paso a paso de no mas de 2 amperes, existen algunos módulos disponibles para la compra que ya vienen con el driver soldado y algunos pines para controlar las entradas y las salidas.</p>
<p>como se puede ver en la imagen el modulo ya cuenta con lo siguiente</p>
<ul>
<li>Regulador de voltaje <strong><a href="https://www.electrontools.com/Home/WP/2016/03/09/regulador-de-voltaje-7805/">LM7805</a></strong></li>
<li>Conectores <strong>Output A</strong> y <strong>Output B</strong> que son las salidas de los motores</li>
<li>Control inputs, son los <strong>terminales de control</strong>, dos de ellos son los pines de habilitación de cada motor</li>
<li>Jumper para decidir si voy a utilizar el regulador <a href="https://www.electrontools.com/Home/WP/2016/03/09/regulador-de-voltaje-7805/"><strong>LM7805</strong> </a>o no lo voy a utilizar.</li>
</ul>
<p><img decoding="async" loading="lazy" class="size-full wp-image-778 aligncenter" src="https://www.electrontools.com/Home/WP/wp-content/uploads/2016/05/Driver-l298.jpg" alt="Driver l298" width="500" height="445" srcset="https://www.electrontools.com/Home/WP/wp-content/uploads/2016/05/Driver-l298.jpg 500w, https://www.electrontools.com/Home/WP/wp-content/uploads/2016/05/Driver-l298-300x267.jpg 300w" sizes="auto, (max-width: 500px) 100vw, 500px" /></p>
<p>Hay que tener presente el voltaje con el cual lo vamos a alimentar, si bien el modulo tiene un regulador de tensión y es capaz de soportar tensiones de hasta 36V, también tiene un Jumper que nos permite decidir si lo usamos o no.</p>
<p>Si vamos a alimentar el modulo con la misma tensión que alimentamos el microcontrolador o la placa <a href="https://www.electrontools.com/Home/WP/category/arduino/">arduino</a>, no es necesario utilizar el regulador, ya que el <strong>driver l298</strong> tolera tensiones de entre 6 y 12 volt, los mismos niveles que se usan para alimentar el <a href="https://www.electrontools.com/Home/WP/category/arduino/">arduino</a>.</p>
<p>En el caso que alimentemos el modulo con tensiones superiores a 12V si o si tenemos que conectar el jumper para que utilice el regulador, de lo contrario podemos quemarlo en cuestión de segundos.</p>
<h2>Control motor de corriente continua</h2>
<p>Vamos a mostrar como controlar un motor de corriente continua con el <strong>driver L298</strong> utilizando la placa <a href="https://www.electrontools.com/Home/WP/category/arduino/">arduino </a>uno R3. Como se ve en la imagen para controlar el motor solo utilizamos dos pines de nuestro <a href="https://www.electrontools.com/Home/WP/category/arduino/">arduino</a>, dependerá si enviamos un uno o un cero el sentido de giro del motor</p>
<p><img decoding="async" loading="lazy" class="size-full wp-image-786 aligncenter" src="https://www.electrontools.com/Home/WP/wp-content/uploads/2016/05/Tutoriales-de-como-usar-arduino-con-el-driver-l298.jpg" alt="Tutoriales de como usar arduino con el driver l298" width="525" height="420" srcset="https://www.electrontools.com/Home/WP/wp-content/uploads/2016/05/Tutoriales-de-como-usar-arduino-con-el-driver-l298.jpg 525w, https://www.electrontools.com/Home/WP/wp-content/uploads/2016/05/Tutoriales-de-como-usar-arduino-con-el-driver-l298-300x240.jpg 300w" sizes="auto, (max-width: 525px) 100vw, 525px" /></p>
<h2>Codigo Arduino</h2>
<p>El siguiente código es un ejemplo simple del funcionamiento, se hace girar el motor en una dirección durante 5 segundos luego frena un segundo y vuelve a girar otros cinco segundos en dirección contraria.</p>
<p>Es un ejemplo simple pero es muy útil para ilustrar el funcionamiento del <strong>driver l298</strong>  y el modulo</p>
<p>&nbsp;</p>
<pre style="stmargin-left: 15px; background-color: #eeeeee; border: 1px solid #cccccc; box-sizing: border-box; color: #006699; font-family: monospace, monospace; font-size: 13px; overflow: auto; padding: 10px;">int IN3 = 5; 
int IN4 = 4;

void setup()
{
  pinMode (IN4, OUTPUT);    // entrada 4
  pinMode (IN3, OUTPUT);    // entrada 3
}
void loop()
{
  // Motor gira en un sentido
  digitalWrite (IN4, HIGH);
  digitalWrite (IN3, LOW); 
  delay(5000);
  // Motor no gira
  digitalWrite (IN4, LOW); 
  delay(1000);
  // Motor gira en sentido inverso
  digitalWrite (IN3, HIGH);
  delay(5000);
  // Motor no gira
  digitalWrite (IN3, LOW); 
  delay(1000);
}
</pre>
<h2>COMPRAR DRIVER L298</h2>
<p>[amazon_link asins='B016GMTDT4,B077NY9RY6,B01MYS3D1F,B077LV4W5Z,B01N9Q5WPQ,B077LYY1Z9,B06X96MNQC' template='ProductCarousel' store='electrontoo01-21' marketplace='ES' link_id='8ed76d6a-9a64-11e8-a0a5-c71a944e89bf']</p>
<p>The post <a href="https://www.electrontools.com/Home/WP/puente-h-con-driver-l298/">Puente H con driver L298</a> appeared first on <a href="https://www.electrontools.com/Home/WP">Tutoriales de Electrónica | Matemática y Física</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.electrontools.com/Home/WP/puente-h-con-driver-l298/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>Como leer un pulsador con arduino</title>
		<link>https://www.electrontools.com/Home/WP/como-leer-un-pulsador-con-arduino/</link>
					<comments>https://www.electrontools.com/Home/WP/como-leer-un-pulsador-con-arduino/#respond</comments>
		
		<dc:creator><![CDATA[Cristian Veloso]]></dc:creator>
		<pubDate>Tue, 26 Apr 2016 12:59:20 +0000</pubDate>
				<category><![CDATA[Arduino]]></category>
		<category><![CDATA[Robotica]]></category>
		<category><![CDATA[que es arduino]]></category>
		<guid isPermaLink="false">http://www.electrontools.com/Home/WP/?p=694</guid>

					<description><![CDATA[<div><img width="486" height="460" src="https://www.electrontools.com/Home/WP/wp-content/uploads/2016/04/Arduino-Boton-1.png" class="attachment-large size-large wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://www.electrontools.com/Home/WP/wp-content/uploads/2016/04/Arduino-Boton-1.png 486w, https://www.electrontools.com/Home/WP/wp-content/uploads/2016/04/Arduino-Boton-1-300x284.png 300w" sizes="auto, (max-width: 486px) 100vw, 486px" /></div><p>Leer un pulsador con arduino se podría resumir en poder diferenciar entre&#8230;</p>
<p>The post <a href="https://www.electrontools.com/Home/WP/como-leer-un-pulsador-con-arduino/">Como leer un pulsador con arduino</a> appeared first on <a href="https://www.electrontools.com/Home/WP">Tutoriales de Electrónica | Matemática y Física</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div><img width="486" height="460" src="https://www.electrontools.com/Home/WP/wp-content/uploads/2016/04/Arduino-Boton-1.png" class="attachment-large size-large wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://www.electrontools.com/Home/WP/wp-content/uploads/2016/04/Arduino-Boton-1.png 486w, https://www.electrontools.com/Home/WP/wp-content/uploads/2016/04/Arduino-Boton-1-300x284.png 300w" sizes="auto, (max-width: 486px) 100vw, 486px" /></div><p>Leer un pulsador con arduino se podría resumir en poder diferenciar entre un cero o un uno a la entrada de un pin digital de nuestro microprocesador, casi cualquier proyecto de electrónica requiere de la utilización de un botón o pulsador para realizar una acción determinada. veamos como se hace.</p>
<p><img decoding="async" loading="lazy" class="size-full wp-image-711 aligncenter" src="https://www.electrontools.com/Home/WP/wp-content/uploads/2016/04/Arduino-Boton.png" alt="Leer pulsador con arduino" width="488" height="323" srcset="https://www.electrontools.com/Home/WP/wp-content/uploads/2016/04/Arduino-Boton.png 488w, https://www.electrontools.com/Home/WP/wp-content/uploads/2016/04/Arduino-Boton-300x199.png 300w" sizes="auto, (max-width: 488px) 100vw, 488px" /></p>
<p>El éxito va a depender de realizar correctamente la configuración circuital a la entrada del pin, existen dos conceptos denominados <strong>resistencia de pull down</strong> y <strong>resistencia de pull up</strong>, son dos configuraciones muy similares, la diferencia radica en si al presionar el pulsador queremos leer un HIGH o un LOW.</p>
<p>Pero olvidemos estos dos conceptos y veamos que pasa si no los consideramos, podríamos estar ocasionando un daño irreparable al pin que estemos utilizando sin darnos cuenta.</p>
<p>Si prestamos atención a las figuras de abajo, vemos dos configuraciones posible, la primera con el pulsador conectado a GND y a la entrada del pin y la segunda directamente a 5V y a la entrada del pin. Podemos llegar a pensar que esto no tiene ningun problema pero no es asi, pensemos lo siguiente.</p>
<p>Para ambos casos, cuando el pulsador se encuentre cerrado, el circuito se cierra y no tendríamos ningún problema, pero cuando el pulsador esta abierto tenemos al pin digital en alta impedancia, el problema de esto es que esto no significa que el pin este en un cero logico, si no que se encuentra en un estado indeterminado, pudiendo conservar el valor ultimo leído, obviamente esto no esta bien ya que puede ocasionar errores grabes de interpretación. En resumen si elegimos esta opción tenemos un problema grabe de <strong>indeterminación de estados lógicos.</strong></p>
<p><img decoding="async" loading="lazy" class="size-full wp-image-696 aligncenter" src="https://www.electrontools.com/Home/WP/wp-content/uploads/2016/04/Pines.png" alt="como puedo leer un pulsador con arduino" width="835" height="271" srcset="https://www.electrontools.com/Home/WP/wp-content/uploads/2016/04/Pines.png 835w, https://www.electrontools.com/Home/WP/wp-content/uploads/2016/04/Pines-300x97.png 300w, https://www.electrontools.com/Home/WP/wp-content/uploads/2016/04/Pines-768x249.png 768w" sizes="auto, (max-width: 835px) 100vw, 835px" /></p>
<p>Existen formas de mejorar y solucionar este problema, como se muestra en la imagen de abajo podemos conectar el pin a dos referencias, una fija y la otra se activara al accionar el pulsador.</p>
<p>Pareciera que esta configuración no tiene ninguna problemática pero no es así, si bien solucionamos el problema de indeterminación , nos ganamos otro.</p>
<p>Al accionar el pulsador estamos cerrando el circuito entre GND y 5V, si prestamos atención el pin digital esta conectado de tal manera que ese nodo estaría en cortocircuito y de esta manera una intensidad de corriente elevada estaría circulando por el, como consecuencia podemos romper el pin de entrada por <strong>alta intensidad de corriente de los transitorios</strong>, esto significa que antes del tiempo de establecimiento circulara una gran corriente por el pin pudiendo ocasionar calentamientos y roturas en el material.</p>
<p><img decoding="async" loading="lazy" class="size-full wp-image-698 aligncenter" src="https://www.electrontools.com/Home/WP/wp-content/uploads/2016/04/Pines-1.png" alt="Leer un pulsador con arduino" width="719" height="394" srcset="https://www.electrontools.com/Home/WP/wp-content/uploads/2016/04/Pines-1.png 719w, https://www.electrontools.com/Home/WP/wp-content/uploads/2016/04/Pines-1-300x164.png 300w" sizes="auto, (max-width: 719px) 100vw, 719px" /></p>
<p>Pero entonces ¿cual es la solución definitiva? ¿podemos conectar un pulsador a un pin sin cometer daños y ocasionar riesgos innecesarios?.</p>
<p>La respuesta a esas preguntas es solo agregar un detalle a la configuración anterior, y es lo que anteriormente denominamos <strong>resistencia de pull up</strong> y <strong>resistencia de pull down.</strong></p>
<p>Como se ve en la imagen a la configuración anterior solo le agregamos un resistencia que luego veremos de que valor tenemos que colocar, esto nos soluciona el <strong>problema de de indeterminación</strong> y  el de <strong>alta intensidad de corriente en </strong><b>transitorios</b>, en el caso del <strong>Pull Up</strong> cuando el pulsador esta abierto el pin esta recibiendo un uno logico y una intensidad de corriente controlada por la resistencia que incluimos, en este caso hablamos de una intensidad de corriente en el orden de los 1mA, que es una corriente muy menor a la máxima permitida por el pin.</p>
<p>Cuando el pulsador esta cerrado ya no se produce un cortocircuito, por que existe una caída de tensión en la resistencia que agregamos, de esta manera la corriente que le llega al pin es mucho menor que si no ponemos el resistor.</p>
<p>En el caso de la configuración de <strong>Pull Down</strong> el concepto funciona de la misma manera, solo que cuando el pulsador esta abierto estamos leyendo un cero y cuando el pulsador esta cerrado estamos leyendo un uno lógico.</p>
<p><img decoding="async" loading="lazy" class="size-full wp-image-701 aligncenter" src="https://www.electrontools.com/Home/WP/wp-content/uploads/2016/04/Resistencia-pull.png" alt="Como ller un pulsador con arduino resistencia pull down" width="719" height="418" srcset="https://www.electrontools.com/Home/WP/wp-content/uploads/2016/04/Resistencia-pull.png 719w, https://www.electrontools.com/Home/WP/wp-content/uploads/2016/04/Resistencia-pull-300x174.png 300w" sizes="auto, (max-width: 719px) 100vw, 719px" /></p>
<p>Siempre que conectemos un pulsador a un pin tenemos que hacerlo de esta manera, es la forma correcta de hacerlo y así nos evitamos muchos dolores de cabeza.</p>
<h2>Que valor de resistencia poner</h2>
<p>Bueno, solo falta entender cual es el valor de la resistencia que tenemos que colocar como Pull Up o Pull Down, esto va a depender de la corriente máxima que el pin pueda soportar, los pines digitales de arduino soportan una corriente máxima de hasta 40mA, pero cuanto menor sea la corriente que le hagamos circular menos calor generaremos y mas tiempo nos durara nuestro arduino, basándonos en la ley de Ohm yo elegí una resistencia que en función de la tensión de entrada me garantice una corriente de no mas de 1mA, pero podemos elegir otra mas pequeña para permitir que circule mas corriente, queda a criterio del diseñador, pero desde mi punto de vista lo optimo es una resistencia de 4K7 como la que colocamos.</p>
<h2>Código arduino</h2>
<p>Es un ejemplo básico de leer el estado de un pin y mostrarlo en pantalla, útil para resumir todo lo que estuvimos viendo.</p>
<pre style="margin-left: 15px; background-color: #eeeeee; border: 1px solid #cccccc; box-sizing: border-box; color: #006699; font-family: monospace, monospace; font-size: 13px; overflow: auto; padding: 10px;">const <span style="color: #cc6600;">int</span> inputPin = 2;
 
<span style="color: #cc6600;">int</span> value = 0;
 
<span style="color: #cc6600;">void</span> <span style="color: #cc6600;"><b>setup</b></span>() {
  <span style="color: #cc6600;"><b>Serial</b></span>.<span style="color: #cc6600;">begin</span>(9600);
  <span style="color: #cc6600;">pinMode</span>(inputPin, <span style="color: #006699;">INPUT</span>);
}
 
<span style="color: #cc6600;">void</span> <span style="color: #cc6600;"><b>loop</b></span>(){
  value = <span style="color: #cc6600;">digitalRead</span>(inputPin);  <span style="color: #7e7e7e;">//lectura digital de pin</span>
 
  <span style="color: #7e7e7e;">//Envio al puerto serie el estado del pin</span>
  <span style="color: #cc6600;">if</span> (value == <span style="color: #006699;">HIGH</span>) {
      <span style="color: #cc6600;"><b>Serial</b></span>.<span style="color: #cc6600;">println</span>(<span style="color: #006699;">"Encendido"</span>);
  }
  <span style="color: #cc6600;">else</span> {
      <span style="color: #cc6600;"><b>Serial</b></span>.<span style="color: #cc6600;">println</span>(<span style="color: #006699;">"Apagado"</span>);
  }
  <span style="color: #cc6600;">delay</span>(1000);
}

</pre>
<p>Como se puede ver en el código cuando hacemos el <strong>digitalRead(inputPin)</strong> obtenemos el estado actual del pin, si esta encendido o apagado al pulsarlo dependera del tipo de configuración utilizada <strong>Pull Up</strong> o <strong>Pull Down.</strong></p>
<p>Pero lo importante de todo esto es que ya identificamos el estado del pulsador, en el ejemplo yo solo lo muestro en pantalla pero podríamos realizar cualquier otra acción como encender un Led, prender un motor etc.</p>
<h2>A tener en cuenta</h2>
<ul>
<li>Siempre utilizar resistencias de pull up o pull down en la entrada de un pin.</li>
<li>Tener presente la corriente máxima que el pin puede soportar para de esta manera decidir que resistencia colocar.</li>
</ul>
<h2>Agradecimientos y bibliográfia</h2>
<p><a href="https://www.luisllamas.es/2014/09/leer-un-pulsador-con-arduino/" target="_blank" rel="nofollow">Luis Lamas</a></p>
<p>&nbsp;</p>
<p>The post <a href="https://www.electrontools.com/Home/WP/como-leer-un-pulsador-con-arduino/">Como leer un pulsador con arduino</a> appeared first on <a href="https://www.electrontools.com/Home/WP">Tutoriales de Electrónica | Matemática y Física</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.electrontools.com/Home/WP/como-leer-un-pulsador-con-arduino/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Proyectos con microcontroladores atmel</title>
		<link>https://www.electrontools.com/Home/WP/proyectos-con-microcontroladores-atmel/</link>
					<comments>https://www.electrontools.com/Home/WP/proyectos-con-microcontroladores-atmel/#comments</comments>
		
		<dc:creator><![CDATA[Cristian Veloso]]></dc:creator>
		<pubDate>Tue, 05 Apr 2016 13:07:03 +0000</pubDate>
				<category><![CDATA[Robotica]]></category>
		<category><![CDATA[Atmel]]></category>
		<guid isPermaLink="false">http://www.electrontools.com/Home/WP/?p=373</guid>

					<description><![CDATA[<div><img width="1024" height="768" src="https://www.electrontools.com/Home/WP/wp-content/uploads/2016/04/1-1024x768.png" class="attachment-large size-large wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://www.electrontools.com/Home/WP/wp-content/uploads/2016/04/1-1024x768.png 1024w, https://www.electrontools.com/Home/WP/wp-content/uploads/2016/04/1-300x225.png 300w, https://www.electrontools.com/Home/WP/wp-content/uploads/2016/04/1-768x576.png 768w, https://www.electrontools.com/Home/WP/wp-content/uploads/2016/04/1-285x214.png 285w, https://www.electrontools.com/Home/WP/wp-content/uploads/2016/04/1.png 1600w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></div><p>A la hora de encarar proyectos con microcontroladores atmel, lo primero que&#8230;</p>
<p>The post <a href="https://www.electrontools.com/Home/WP/proyectos-con-microcontroladores-atmel/">Proyectos con microcontroladores atmel</a> appeared first on <a href="https://www.electrontools.com/Home/WP">Tutoriales de Electrónica | Matemática y Física</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div><img width="1024" height="768" src="https://www.electrontools.com/Home/WP/wp-content/uploads/2016/04/1-1024x768.png" class="attachment-large size-large wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://www.electrontools.com/Home/WP/wp-content/uploads/2016/04/1-1024x768.png 1024w, https://www.electrontools.com/Home/WP/wp-content/uploads/2016/04/1-300x225.png 300w, https://www.electrontools.com/Home/WP/wp-content/uploads/2016/04/1-768x576.png 768w, https://www.electrontools.com/Home/WP/wp-content/uploads/2016/04/1-285x214.png 285w, https://www.electrontools.com/Home/WP/wp-content/uploads/2016/04/1.png 1600w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></div><p>A la hora de encarar proyectos con microcontroladores atmel, lo primero que pensamos es en usar arduino, donde el corazón de dicha plataforma es un atmega32, pero supongamos que por algún motivo tenemos que utilizar otro microcontrolador y nos vemos obligados a descartar la utilización de arduino.</p>
<p>En ese caso deberíamos ir a las hojas de datos del fabricante del microprocesador que vamos a utilizar y armarnos nuestra propia placa programadora. Para este proyecto utilizamos el atmega16 de atmel.</p>
<h2>Robot buscador de salida</h2>
<p>Este proyecto  fue presentado en la cátedra de técnicas digitales 3 en la universidad de la matanza, en la cursada nos enseñaron a programar los microcontroladores atmel en c++ y tuvimos vía libre para desarrollar cualquier proyecto que tengamos ganas de hacer, al final de la cursada resulto esto.</p>
<h2>Especificación técnica</h2>
<p>Sin tomar en cuenta el microprocesador, el robot consiste en tres bloques funcionales, cada uno de estos cumple una función específica</p>
<ul>
<li>Chasis</li>
<li>Sensor ultrasonido</li>
<li>Mini Servo</li>
<li>Puente H</li>
</ul>
<p>El robot se encuentra en estado de <strong>“Free Running”</strong><em>(estado de avance, ambos motores girando hacia adelante), </em>hasta que el sensor de ultrasonido detecte un obstáculo en frente (25 cm), una vez que se detecte un obstáculo por delante, los motores de detendrán.</p>
<p>Luego de detenidos los motores entrara en juego el Servo, que tiene adherido un sensor de ultra sonido US-100 de manera que al girar este también lo haga el sensor de ultrasonido.</p>
<p>De esta manea al detectar un obstáculo y luego de frenar los motores, el servo girar hacia los laterales el US (primero izquierda luego derecha), luego de terminado este proceso, el micro controlador evaluara que dirección es la más conveniente para el escape, considerando como más conveniente la dirección en la cual tenga un obstáculo más lejano.</p>
<p>En el caso de no detectar “Libertad” en ninguno de los laterales, el robot procederá el escape marcha atrás.<a name="_Toc373930500"></a></p>
<h2>Control Sensor ultrasonido us-100</h2>
<p>En el siguiente link (<a href="https://www.electrontools.com/Home/WP/2016/03/09/sensor-ultrasonido-us-100/" target="_blank">ver us-100</a>) explicamos en detalle como funciona este sensor, igualmente para no ir y venir de un articulo a otro comentamos un resumen de su funcionamiento.</p>
<p>Este sensor cuenta con 4 pines.</p>
<ul>
<li>Vcc <em>(5 volt)</em></li>
<li>Trigger</li>
<li>Echo</li>
<li>Gnd <em>(0 volt)</em></li>
</ul>
<p>Para iniciar la medición se de<img decoding="async" loading="lazy" class=" wp-image-100 alignleft" src="https://www.electrontools.com/Home/WP/wp-content/uploads/2016/03/US.jpg" alt="US" width="253" height="253" srcset="https://www.electrontools.com/Home/WP/wp-content/uploads/2016/03/US.jpg 384w, https://www.electrontools.com/Home/WP/wp-content/uploads/2016/03/US-150x150.jpg 150w, https://www.electrontools.com/Home/WP/wp-content/uploads/2016/03/US-300x300.jpg 300w, https://www.electrontools.com/Home/WP/wp-content/uploads/2016/03/US-250x250.jpg 250w, https://www.electrontools.com/Home/WP/wp-content/uploads/2016/03/US-174x174.jpg 174w" sizes="auto, (max-width: 253px) 100vw, 253px" />be activar el sensor enviando un pulso de 10ms al pin2 <strong><em>(Trigger)</em></strong><strong>,</strong> luego de finalizado este tiempo, por el pin3<strong>(echo)</strong> se enviara un estado alto al micro controlador que significa que la medición ha comenzado, la medición terminara cuando el mismo Pin ingrese un nivel bajo.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Al inicio de la medición disparamos el Timer/Counter configurando el Prescaler en $01(0b0000001)</p>
<p>fbus = fclock/1</p>
<p><img decoding="async" loading="lazy" class="size-full wp-image-380" src="https://www.electrontools.com/Home/WP/wp-content/uploads/2016/04/Sin-título.png" alt="Grafico sensor de ultrasonido US-100" width="689" height="167" srcset="https://www.electrontools.com/Home/WP/wp-content/uploads/2016/04/Sin-título.png 689w, https://www.electrontools.com/Home/WP/wp-content/uploads/2016/04/Sin-título-300x73.png 300w" sizes="auto, (max-width: 689px) 100vw, 689px" /></p>
<p><img decoding="async" loading="lazy" class="size-full wp-image-384" src="https://www.electrontools.com/Home/WP/wp-content/uploads/2016/04/pp.png" alt="Registro TCCR1B del microcontrolador ATMEGA16" width="606" height="397" srcset="https://www.electrontools.com/Home/WP/wp-content/uploads/2016/04/pp.png 606w, https://www.electrontools.com/Home/WP/wp-content/uploads/2016/04/pp-300x197.png 300w" sizes="auto, (max-width: 606px) 100vw, 606px" /></p>
<h2>¿Cómo calculo la distancia al objeto con el ultrasonido?</h2>
<p>La velocidad del sonido es 34300cm/s, la frecuencia de clock utilizada es de 1Mhz lo que es equivalente a un periodo T de 0,976ms, el tiempo que tarda el sonido en recorrer 2cm (1cm de ida y 1cm de vuelta) será 2cm/34300cms = 0,0583ms.</p>
<p>Por lo tanto si el contador del timer cuenta 58,3(redondeamos en 58) la distancia medida corresponde a 1cm, de esta manera llegamos a la conclusión que el cálculo de la distancia medida será la calculada a partir de la siguiente formula.</p>
<p><strong>Distancia = 1/(58*Fclock)</strong></p>
<h2>Control Movimiento del Servomotor</h2>
<p>El servo cuenta con tres cables</p>
<ul>
<li>Rojo – Vcc</li>
<li>Negro – Gnd</li>
<li>Blanco – Datos</li>
</ul>
<p>El control de posición angular del servo se realiza mediante modulación por ancho de pulso(PWM), la frecuencia de trabajo del servo utilizado en el proyecto es de 50Hz.</p>
<p>El periodo de la señal que debemos enviar al servo debe ser de 20ms, la hoja de datos del mismo nos suministra la siguiente información.</p>
<h3>Señal para posicionamiento a 180 grados (izquierda)</h3>
<p><img decoding="async" loading="lazy" class="wp-image-391 alignleft" src="https://www.electrontools.com/Home/WP/wp-content/uploads/2016/04/Izquierda.png" alt="Modulacion PWM para servomotor giro 180" width="212" height="106" /></p>
<p><strong>Ton</strong> = tiempo en alto de la señal<br />
<strong>Toff</strong> =  tiempo en bajo de la señal<br />
<strong>Periodo</strong> = Ton+Toff = 20ms</p>
<p>&nbsp;</p>
<p>Para lograr un posicionamiento a 180 grados debemos enviar una señal con un <strong>ton = 0.3ms</strong> y un <strong>toff=19.7ms</strong>.<br />
Una vez que el servo alcanzo la posición deseada dejamos de enviar la señal.</p>
<h3>Señal para posicionamiento a 0 grados (derecha)</h3>
<p><img decoding="async" loading="lazy" class="size-full wp-image-395 alignleft" src="https://www.electrontools.com/Home/WP/wp-content/uploads/2016/04/Derecha.png" alt="Servo posicionamiento a cero grados" width="238" height="123" /></p>
<p><strong>Ton</strong> = tiempo en alto de la señal<br />
<strong>Toff</strong> =  tiempo en bajo de la señal<br />
<strong>Periodo</strong> = Ton+Toff = 20ms</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Para lograr un posicionamiento a 180 grados debemos enviar una señal con un <strong>ton = 2.3ms</strong> y un <strong>toff=17.7ms</strong>.<br />
Cualquier señal que enviemos con un Ton comprendido entre estos dos valores nos posicionar en un angulo equivalente.</p>
<h2>Control de los motores con el l293b</h2>
<p>Este solo integrado nos permite controlar dos motores en simultaneo. los terminales del Motor <strong>M1</strong> conectados a los Pines 3 y 6 y los terminales del motor <strong>M2</strong> a los terminales 11 y 14, como se ilustra en la figura.<br />
El pin 16 corresponde a la alimentación propia del integrado, 5V, el Pin 16 deberá estar conectado a  la tensión que alimentara los motores, puede variar en el rango de (5 a 36) V. (<a href="https://www.electrontools.com/Home/WP/2016/03/09/como-funciona-el-puente-h-l293b/" target="_blank">ver mas</a>)</p>
<p><img decoding="async" loading="lazy" class="size-full wp-image-399 aligncenter" src="https://www.electrontools.com/Home/WP/wp-content/uploads/2016/04/Servomotor.png" alt="Servomotor l293b tabla de verdad" width="434" height="235" srcset="https://www.electrontools.com/Home/WP/wp-content/uploads/2016/04/Servomotor.png 434w, https://www.electrontools.com/Home/WP/wp-content/uploads/2016/04/Servomotor-300x162.png 300w" sizes="auto, (max-width: 434px) 100vw, 434px" /></p>
<p>Los terminales 2 y 7 del puente H están conectados a los pines 6 y 7 del puerto D del microprocesador, los terminales 10 y 15 están conectados a los pines 5 y 4 del ATMEL, de esta manera podemos controlar el giro de cada uno de los motores modificando los pines 4,5,6,7.</p>
<p style="text-align: justify;"><img decoding="async" loading="lazy" class="size-full wp-image-400 aligncenter" src="https://www.electrontools.com/Home/WP/wp-content/uploads/2016/04/tabla-de-verdad.png" alt="Tabla de verdad control de motores L293B" width="639" height="132" srcset="https://www.electrontools.com/Home/WP/wp-content/uploads/2016/04/tabla-de-verdad.png 639w, https://www.electrontools.com/Home/WP/wp-content/uploads/2016/04/tabla-de-verdad-300x62.png 300w" sizes="auto, (max-width: 639px) 100vw, 639px" /></p>
<h2>Diagrama en bloque</h2>
<p>Presentamos el diagrama en bloque, como tienen que estar conectados cada uno de sus componentes para que luego al cargar el software funcione como tiene que funcionar.</p>
<p><img decoding="async" loading="lazy" class="size-full wp-image-402 aligncenter" src="https://www.electrontools.com/Home/WP/wp-content/uploads/2016/04/Diagrama-en-Bloque.png" alt="Diagrama en Bloque" width="847" height="355" srcset="https://www.electrontools.com/Home/WP/wp-content/uploads/2016/04/Diagrama-en-Bloque.png 847w, https://www.electrontools.com/Home/WP/wp-content/uploads/2016/04/Diagrama-en-Bloque-300x126.png 300w, https://www.electrontools.com/Home/WP/wp-content/uploads/2016/04/Diagrama-en-Bloque-768x322.png 768w" sizes="auto, (max-width: 847px) 100vw, 847px" /></p>
<h2>Software</h2>
<p>Compartimos las lineas de código con las que programamos el micro, utilizamos el programador de AVR para flashear la memoria pero se puede utilizar cualquier programador.</p>
<pre style="margin-left: 15px; background-color: #eeeeee; border: 1px solid #cccccc; box-sizing: border-box; color: #006699; font-family: monospace, monospace; font-size: 13px; overflow: auto; padding: 10px;">#define F_CPU 1000000UL// 1 MHz
#include &lt;avr/io.h&gt;
#include &lt;avr/interrupt.h&gt;
#include "C:\WinAVR-20100110\avr\include\util\delay.h"


//Definiciones
#define FOSC 1000000     // Clock Speed
#define BAUD 9600
#define MYUBRR FOSC/16/BAUD-1
#define BIT0		0x01
#define BIT1		0x02
#define BIT2		0x04
#define BIT3		0x08
#define BIT4		0x10
#define BIT5		0x20
#define BIT6		0x40
#define BIT7		0x80
#define START_CLK   0x0A    //Inicializar el reloj con 1:8 de preescalador / Modo CTC
#define START_CLK_N 0x01    //Inicializar el reloj con 1:8 de preescalador
#define STOP_CLK    0x08    //Parar el timer


//Variables globales
long int Obstaculo;
long int LecturaUS1;
long int LecturaUS2;
long int LecturaUS3;
long int DistanciaDeteccion = 25;

int PosServo=0;  //Posicion del servo(Ojos)


//----------------------------DECLARACION DE FUNCIONES-------------------------
//Configuracion de puertos
void setup_Puertos(void)
{
	 DDRA =  0b00001110;
	 PORTA = 0b00000100;
	 DDRD =  0b11111111;
	 PORTD = 0b00000000;
 }
//(US)Funcion para inicializar el timer
void TIMER_init(void){               
	TCCR1A = 0x00;        //Activar modo CTC
	TCCR1B = 0x08;        //Limpiar el dato de OC1A/OC1B
}
//(US)Funcion para mandar el pulso al trigger del ultrasonico
void US_trigger(void){  
	PORTA = (0b00000010);
	_delay_us(10);
	PORTA = (0b00000000);
}

 

//(US)Funcion para leer el dato del ultrasonico
unsigned int US_echo(void){
	unsigned int iLecturaUS; 
	while(!(PINA&amp;0x01));        //Esperar a que en el PB0 entre un nivel alto (inicio de medicion)
	TCNT1 = 0x00;               //Limpiar el timer, dejarlo en cero
	TCCR1B = START_CLK_N;       //Inicializar el reloj con 1:8 de preescalador
	while((PINA&amp;0x01));         //Esperar a que en el PB0 entre un nivel bajo (final de medicion)
	TCCR1B = STOP_CLK;          //Parar el timer
	iLecturaUS = TCNT1/58;      //Leer el valor del registro y dividirlo entre 58 para obtener
	return(iLecturaUS);         //la medicion en cm.            
}
//(US)Funcion Para poner en ON en US
int US_Read()
{
	int iLecturaUS;
	US_trigger();            //Mandar el pulso al trigger para que el ultrasonico se active
	iLecturaUS = US_echo();  //Leer el valor medido por el ultrasonico, segun el ancho del pulso
	return iLecturaUS;
}

int US_ExisteObstaculo()
{
	int LecturaUS1 = (int)US_Read(); //Leo distancias 1
	int LecturaUS2 = (int)US_Read(); //Leo distancias 2
	int LecturaUS3 = (int)US_Read(); //Leo distancias 3
	int Obstaculo = 0;
	//Si las tres lecturas dan positivas estoy seguro que tengo un obstaculo en frente, asi evito lecturas basura			
	if(LecturaUS1 15 &amp;&amp; DistanciaDerecha &gt; 15) //Distancia minima que me permite el giro
				{
					if(DistanciaIzquierda&gt;DistanciaDerecha)
					{
						PORTD = 0b01000000;//Giro a la Izquierda
						_delay_ms(500);
					}
					else
					{
						PORTD = 0b00100000;//Giro a la Derecha
					    _delay_ms(500);				
					}						
				}
				else //alguna distancia lateral es menor a 15
				{
					if(DistanciaIzquierda &gt; 15 &amp;&amp; (DistanciaDerecha &gt; 10 &amp;&amp; DistanciaDerecha &lt; 15)) //Escapo a la izquierda { PORTD = 0b01000000;//Giro a la Izquierda _delay_ms(500); } else { if((DistanciaIzquierda &gt; 10 &amp;&amp; DistanciaIzquierda &lt; 15) &amp;&amp; DistanciaDerecha &gt; 15) //Escapo a la derecha
						{
							PORTD = 0b00100000;//Giro a la Derecha
					    	_delay_ms(500);	
						}
						else
						{
							
							if(DistanciaIzquierda&lt;5)
							{
								PORTD = 0b10000000;//Giro la rueda derecha para atras
								_delay_ms(500);
							}
							else
							{
								if(DistanciaDerecha&lt;5)
								{
									PORTD = 0b00010000;//Giro la rueda izquierda para atras
									_delay_ms(500);
								}
								else
								{
									MOTORES_ReverseRunning();//Escapo marcha atras
									_delay_ms(1000);								
								}							
							}	
						}
					}	
				}	

			}
			else
			{
				//Antes de correr libremente vuelvo a validar la existencia de un obstaculos
				if(US_ExisteObstaculo() == 0)
				{
					PosServo = 0;
					MOTORES_FreeRunning();
				}
			}
			
			
    }

}


</pre>
<h2>Posibles mejoras</h2>
<p>Dentro de las posibles mejoras resaltamos dos como más importantes.</p>
<p>1-El robot debe tener la posibilidad de escanear una mayor cantidad de posiciones angulares, actualmente escanea solo tres ángulos 0°,90°,180°, para la toma de una decisión más acertada debería poder escanear como mínimo intervalos de 45°, de esta manera se duplicaría la información del contexto que rodea al robot.</p>
<p>2-El robot debe tener la posibilidad de memorizar un camino recorrido, y un escape para dicho camino, de esta manera al detectar que <u>está</u> recorriendo un camino que concuerda con un camino anteriormente recorrido en el cual nunca encontró salida, pueda tomar la decisión de abandonar el trayecto ya que existe una gran posibilidad quedar encerrado.</p>
<p>3-Agregar un sensor de US adicional en la parte trasera para no perder visión al momento de realizar una marcha atrás</p>
<p>&nbsp;</p>
<h2>Conclusión</h2>
<p>Hemos podido realizar el proyecto, utilizando los conocimientos adquiridos en las clases, pudiendo de esta manera interactuar y resolver los problemas presentados de manera autodidacta, logramos controlar eficientemente los dispositivos necesarios en el proyecto <strong>(Sensores de Ultrasonido, Servomotores, Puente H). </strong>El Robot fue capaz de evadir cualquier obstáculo encontrado escaneando hacia los laterales y tomando la decisión que más le conviene.</p>
<p>Compartimos algunas fotos del resultado final</p>
<p><img decoding="async" loading="lazy" class=" wp-image-408 aligncenter" src="https://www.electrontools.com/Home/WP/wp-content/uploads/2016/04/1.png" alt="Robot buscador de salida " width="540" height="405" srcset="https://www.electrontools.com/Home/WP/wp-content/uploads/2016/04/1.png 1600w, https://www.electrontools.com/Home/WP/wp-content/uploads/2016/04/1-300x225.png 300w, https://www.electrontools.com/Home/WP/wp-content/uploads/2016/04/1-768x576.png 768w, https://www.electrontools.com/Home/WP/wp-content/uploads/2016/04/1-1024x768.png 1024w, https://www.electrontools.com/Home/WP/wp-content/uploads/2016/04/1-285x214.png 285w" sizes="auto, (max-width: 540px) 100vw, 540px" /></p>
<p>va otra de frente<img decoding="async" loading="lazy" class=" wp-image-409 aligncenter" src="https://www.electrontools.com/Home/WP/wp-content/uploads/2016/04/2.png" alt="Robot buscador de salida" width="534" height="400" srcset="https://www.electrontools.com/Home/WP/wp-content/uploads/2016/04/2.png 1600w, https://www.electrontools.com/Home/WP/wp-content/uploads/2016/04/2-300x225.png 300w, https://www.electrontools.com/Home/WP/wp-content/uploads/2016/04/2-768x576.png 768w, https://www.electrontools.com/Home/WP/wp-content/uploads/2016/04/2-1024x768.png 1024w, https://www.electrontools.com/Home/WP/wp-content/uploads/2016/04/2-285x214.png 285w" sizes="auto, (max-width: 534px) 100vw, 534px" /></p>
<p>&nbsp;</p>
<p>Espero que les sea de utilidad.</p>
<p>The post <a href="https://www.electrontools.com/Home/WP/proyectos-con-microcontroladores-atmel/">Proyectos con microcontroladores atmel</a> appeared first on <a href="https://www.electrontools.com/Home/WP">Tutoriales de Electrónica | Matemática y Física</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.electrontools.com/Home/WP/proyectos-con-microcontroladores-atmel/feed/</wfw:commentRss>
			<slash:comments>8</slash:comments>
		
		
			</item>
		<item>
		<title>MODULACIÓN POR ANCHO DE PULSO DE SEÑALES ANALÓGICAS</title>
		<link>https://www.electrontools.com/Home/WP/pwm-modulacion-por-ancho-de-pulsos/</link>
					<comments>https://www.electrontools.com/Home/WP/pwm-modulacion-por-ancho-de-pulsos/#comments</comments>
		
		<dc:creator><![CDATA[Cristian Veloso]]></dc:creator>
		<pubDate>Wed, 09 Mar 2016 20:03:29 +0000</pubDate>
				<category><![CDATA[Robotica]]></category>
		<guid isPermaLink="false">http://sd-1114400-h00023.ferozo.net/Home/WP/?p=70</guid>

					<description><![CDATA[<div><img width="1024" height="1024" src="https://www.electrontools.com/Home/WP/wp-content/uploads/2016/03/PWM-1024x1024.png" class="attachment-large size-large wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://www.electrontools.com/Home/WP/wp-content/uploads/2016/03/PWM-1024x1024.png 1024w, https://www.electrontools.com/Home/WP/wp-content/uploads/2016/03/PWM-150x150.png 150w, https://www.electrontools.com/Home/WP/wp-content/uploads/2016/03/PWM-300x300.png 300w, https://www.electrontools.com/Home/WP/wp-content/uploads/2016/03/PWM-768x768.png 768w, https://www.electrontools.com/Home/WP/wp-content/uploads/2016/03/PWM-250x250.png 250w, https://www.electrontools.com/Home/WP/wp-content/uploads/2016/03/PWM-174x174.png 174w, https://www.electrontools.com/Home/WP/wp-content/uploads/2016/03/PWM.png 1357w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></div><p>MODULACIÓN POR ANCHO DE PULSO DE SEÑALES ANALÓGICAS El concepto de Modulación&#8230;</p>
<p>The post <a href="https://www.electrontools.com/Home/WP/pwm-modulacion-por-ancho-de-pulsos/">MODULACIÓN POR ANCHO DE PULSO DE SEÑALES ANALÓGICAS</a> appeared first on <a href="https://www.electrontools.com/Home/WP">Tutoriales de Electrónica | Matemática y Física</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div><img width="1024" height="1024" src="https://www.electrontools.com/Home/WP/wp-content/uploads/2016/03/PWM-1024x1024.png" class="attachment-large size-large wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://www.electrontools.com/Home/WP/wp-content/uploads/2016/03/PWM-1024x1024.png 1024w, https://www.electrontools.com/Home/WP/wp-content/uploads/2016/03/PWM-150x150.png 150w, https://www.electrontools.com/Home/WP/wp-content/uploads/2016/03/PWM-300x300.png 300w, https://www.electrontools.com/Home/WP/wp-content/uploads/2016/03/PWM-768x768.png 768w, https://www.electrontools.com/Home/WP/wp-content/uploads/2016/03/PWM-250x250.png 250w, https://www.electrontools.com/Home/WP/wp-content/uploads/2016/03/PWM-174x174.png 174w, https://www.electrontools.com/Home/WP/wp-content/uploads/2016/03/PWM.png 1357w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></div><h2>MODULACIÓN POR ANCHO DE PULSO DE SEÑALES ANALÓGICAS</h2>
<p>El concepto de<strong> Modulación por ancho de pulso de señales analógicas</strong> o digitales conocida como <strong>PWM</strong> es una técnica utilizada para diversas aplicaciones en el campo de la robotica, un ejemplo puede ser controlar la velocidad de los motores, básicamente lo que se hace es variar el ciclo de trabajo del motor encendiendo y apagando muy rápidamente.<br />
Si analizamos la velocidad de giro de un motor podemos ver que depende de la potencia, cuyo valor a su ves es dependiente del voltaje y de la corriente que se le aplique (<b>P = V.I), </b> si queremos reducir la velocidad de giro tendríamos que reducir la potencia media otorgada por el motor, para eso nos vemos obligados a controlar algunas de las dos variables involucradas <b>(V o I) </b>(<i>V = Voltaje I = Corriente</i>).</p>
<p>La corriente no la podemos modificar, ya que esta es en función de la carga aplicada, por lo tanto si queremos controlar la velocidad tenemos que centrarnos en el control del voltaje aplicado <b>V</b>.</p>
<h2>EJEMPLO</h2>
<p>Supongamos que alimentamos el motor con una señal de tensión continua.</p>
<p>&nbsp;</p>
<div class="separator" style="clear: both; text-align: center;"><a style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;" href="https://2.bp.blogspot.com/-ctsphir7pn0/UnfaJCHp0kI/AAAAAAAABLY/sDBn1XSqF8Y/s1600/Sin+t%C3%ADtulo.png"><img decoding="async" loading="lazy" class="alignleft" src="https://2.bp.blogspot.com/-ctsphir7pn0/UnfaJCHp0kI/AAAAAAAABLY/sDBn1XSqF8Y/s400/Sin+t%C3%ADtulo.png" alt="" width="400" height="118" border="0" /></a></div>
<p>Analizamos el caso suponiendo un intervalo de tiempo de un segundo con una corriente nominal I de diez mili amperes.<br />
Para este caso la potencia suministrada seria P = 12V*10mA*1s = <strong>0.12w</strong><br />
<u><b><br />
</b></u><br />
<u><b><br />
</b></u></p>
<p>Ahora supongamos que queremos lograr, la mitad de la velocidad (<strong>Mitad de potencia</strong><i>).</i></p>
<div class="separator" style="clear: both; text-align: center;"><a style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;" href="https://2.bp.blogspot.com/-VTOFc3pob48/UnfcooIzHyI/AAAAAAAABLk/z0erAuA9l9k/s1600/Sin+t%C3%ADtulo.png"><img decoding="async" loading="lazy" src="https://2.bp.blogspot.com/-VTOFc3pob48/UnfcooIzHyI/AAAAAAAABLk/z0erAuA9l9k/s400/Sin+t%C3%ADtulo.png" alt="" width="400" height="118" border="0" /></a></div>
<p>Enviamos una señal cuadrada de la siguiente forma,de 0 a 0.5 segundos enviamos un nivel alto de tensión (12V) y de 0.5 a 1 Segundo enviamos un nivel bajo de tensión (0V), por lo tanto la potencia media responderá a la siguiente ecuación<br />
P = V*I*T</p>
<p>&nbsp;</p>
<p><strong>POTENCIA DE 0 0,5 SEGUNDOS</strong><br />
P = 12V*10mA*0.5s = <b><u>0.06w</u></b></p>
<p><strong>POTENCIA DE 0,5 A 1 SEGUNDO</strong><br />
P = 0V*10mA*0.5s = <strong>0w</strong><br />
<b><u><br />
</u></b>Por lo tanto la potencia total sera <b><u>Pt= 0.06w.</u></b></p>
<p>De esta manera podemos controlar la velocidad de un motor de forma muy precisa y muy simple.</p>
<p>La técnica de Modulación por ancho de pulsos (PWM) es muy utilizada en rebotica para diferentes aplicaciones, como dijimos antes nos permite controlar motores de todo tipo.</p>
<p>The post <a href="https://www.electrontools.com/Home/WP/pwm-modulacion-por-ancho-de-pulsos/">MODULACIÓN POR ANCHO DE PULSO DE SEÑALES ANALÓGICAS</a> appeared first on <a href="https://www.electrontools.com/Home/WP">Tutoriales de Electrónica | Matemática y Física</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.electrontools.com/Home/WP/pwm-modulacion-por-ancho-de-pulsos/feed/</wfw:commentRss>
			<slash:comments>4</slash:comments>
		
		
			</item>
		<item>
		<title>Sensor Ultrasonido US-100</title>
		<link>https://www.electrontools.com/Home/WP/sensor-ultrasonido-us-100/</link>
					<comments>https://www.electrontools.com/Home/WP/sensor-ultrasonido-us-100/#comments</comments>
		
		<dc:creator><![CDATA[Cristian Veloso]]></dc:creator>
		<pubDate>Wed, 09 Mar 2016 20:02:21 +0000</pubDate>
				<category><![CDATA[Arduino]]></category>
		<category><![CDATA[Robotica]]></category>
		<category><![CDATA[Sensores]]></category>
		<guid isPermaLink="false">http://sd-1114400-h00023.ferozo.net/Home/WP/?p=68</guid>

					<description><![CDATA[<div><img width="384" height="384" src="https://www.electrontools.com/Home/WP/wp-content/uploads/2016/03/US.jpg" class="attachment-large size-large wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://www.electrontools.com/Home/WP/wp-content/uploads/2016/03/US.jpg 384w, https://www.electrontools.com/Home/WP/wp-content/uploads/2016/03/US-150x150.jpg 150w, https://www.electrontools.com/Home/WP/wp-content/uploads/2016/03/US-300x300.jpg 300w, https://www.electrontools.com/Home/WP/wp-content/uploads/2016/03/US-250x250.jpg 250w, https://www.electrontools.com/Home/WP/wp-content/uploads/2016/03/US-174x174.jpg 174w" sizes="auto, (max-width: 384px) 100vw, 384px" /></div><p>¿Para que sirve un sensor de ultrasonido o ultrasónico? La gran utilidad&#8230;</p>
<p>The post <a href="https://www.electrontools.com/Home/WP/sensor-ultrasonido-us-100/">Sensor Ultrasonido US-100</a> appeared first on <a href="https://www.electrontools.com/Home/WP">Tutoriales de Electrónica | Matemática y Física</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div><img width="384" height="384" src="https://www.electrontools.com/Home/WP/wp-content/uploads/2016/03/US.jpg" class="attachment-large size-large wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://www.electrontools.com/Home/WP/wp-content/uploads/2016/03/US.jpg 384w, https://www.electrontools.com/Home/WP/wp-content/uploads/2016/03/US-150x150.jpg 150w, https://www.electrontools.com/Home/WP/wp-content/uploads/2016/03/US-300x300.jpg 300w, https://www.electrontools.com/Home/WP/wp-content/uploads/2016/03/US-250x250.jpg 250w, https://www.electrontools.com/Home/WP/wp-content/uploads/2016/03/US-174x174.jpg 174w" sizes="auto, (max-width: 384px) 100vw, 384px" /></div><h2 class="TituloEntrada">¿Para que sirve un sensor de ultrasonido o ultrasónico?</h2>
<p>La gran utilidad de este tipo de sensores de ultrasonido es que nos permite medir distancias sin realizar contacto físico, este tipo de dispositivo nos permite realizar una medición desde 2cm hasta 200cm aproximadamente.<br />
En robótica es muy útil para realizar la detección de obstáculos y poder tomar una decisión luego de ser detectado.</p>
<div class="ImagenEntrada">
<figure style="width: 305px" class="wp-caption aligncenter"><img decoding="async" loading="lazy" class="" src="https://lh3.googleusercontent.com/-wnLQ8lIU3Aw/VZILsOI8JbI/AAAAAAAABwU/X0En3Cq54QI/w280-h280-p/US-100-Ultrasonic-Distance-Sensor-Module-228x228.jpg Title = " alt="" width="305" height="305" /><figcaption class="wp-caption-text">Sensor de ultrasonido US-100</figcaption></figure>
</div>
<h1 class="TituloEntrada">¿Cómo realiza la medición el sensor?</h1>
<p>La forma en que el sensor de ultrasonido realizar el cálculo es bastante simple, se basa en la velocidad en la que viaja el sonido en el aire (aproximadamente 34300cm/s).</p>
<p class="TextoEntrada"><strong>Podemos simplificar su funcionamiento en los siguientes pasos</strong></p>
<p>1 - Emite una ráfaga ultrasónica por el emisor y al mismo tiempo uno de sus pines que se conecta a una entrada de nuestro micro controlador se pone en 1<br />
2 - Espera en el receptor la llegada del eco de la señal emitida y cuando el eco llega pone en 0 el pin que se conecta a la entrada de nuestro micro controlador.<br />
3 - En nuestro micro controlador cuando detectamos un 1 en nuestro pin de entrada comenzamos un conteo de tiempo, que será proporcional a la frecuencia de Clock de nuestro procesador, cuando detectamos el 0, detenemos el conteo, luego mediante simples cálculos matemáticos obtenemos la distancia del objeto</p>
<p>&nbsp;</p>
<h2 class="SubTituloEntrada">Por ejemplo</h2>
<p class="SubTextoEntrada">Si la velocidad del sonido es 34300cm/s, significa que el tiempo que demora la señal sonara en recorrer 2cm (1cm de ida y 1cm de vuelta) será 2cm/34300cms = 0,0583ms.<br />
Ahora supongamos que tenemos un Micro Procesador de una frecuencia de Clock de 1MHZ lo que es lo mismo que un periodo T de 1us.<br />
Al momento de detectar el estado alto en el pin de entrada del micro procesador, se dispara el conteo de contador del timer (program counter), el contador crece en 1 cada 1us, que es el periodo del micro procesor, por lo tanto para que transcurra 0,058ms el contador debe llegar a 58.<br />
De esta manera podemos resumir que la formula para calcular la distancia será la siguiente</p>
<p>Distancia = 1/(58*FrecuenciaClock)</p>
<div class="ImagenEntrada"><img decoding="async" loading="lazy" class="aligncenter" src="https://lh3.googleusercontent.com/-foXtRbvcQec/VZIMp41O0qI/AAAAAAAABwg/ygitN85Iqgo/w560-h244-p/Sensor%2Brafaga.jpg" alt="" /></div>
<p>&nbsp;</p>
<h2 class="TituloEntrada">Detalles técnicos del US – 100</h2>
<p class="TextoEntrada">Este sensor cuenta con 4 pines<br />
1-Vcc (5 volt)<br />
2-Trigger<br />
3-Echo<br />
4-Gnd (0 volt)</p>
<p>Para iniciar la medición se debe activar el sensor enviando un pulso de 10ms al pin2(Trigger), luego de finalizado este tiempo, por el pin3(echo) se enviara un estado alto al micro controlador que significa que la medición ha comenzado, la medición terminara cuando el mismo Pin ingrese un nivel bajo.</p>
<p>La grafica siguiente ejemplifica lo dicho.</p>
<div class="ImagenEntrada"><img decoding="async" loading="lazy" title="sensor us-100" src="https://4.bp.blogspot.com/-qzB-DCiDyE0/UoZZytamP6I/AAAAAAAABMA/ZoS4uQYoVH4/s640/Grafica+Sensor+US-100.png" alt="sensor us-100" /></div>
<p>&nbsp;</p>
<h2 class="TituloEntrada">Programa para arduino</h2>
<p class="TextoEntrada">Este software hace prender los led conectados al pin 13 del arduino cuando el sensor de ultrasonido us-100 detecta un objeto a una distancia menor o igual a 5cm.</p>
<pre style="margin-left: 15px; background-color: #eeeeee; border: 1px solid #cccccc; box-sizing: border-box; color: #006699; font-family: monospace, monospace; font-size: 13px; overflow: auto; padding: 10px;"><span style="color: #00979c;">const</span> <span style="color: #00979c;">int</span> <span style="color: #000000;">trigger</span><span style="color: #434f54;">=</span><span style="color: #000000;">10</span><span style="color: #000000;">;</span>
<span style="color: #00979c;">const</span> <span style="color: #00979c;">int</span> <span style="color: #000000;">echo</span><span style="color: #434f54;">=</span><span style="color: #000000;">12</span><span style="color: #000000;">;</span>
 
<span style="color: #00979c;">float</span> <span style="color: #000000;">primeraMedicion</span><span style="color: #000000;">;</span>
<span style="color: #00979c;">float</span> <span style="color: #000000;">segundaMedicion</span><span style="color: #000000;">;</span>
<span style="color: #00979c;">float</span> <span style="color: #000000;">terceraMedicion</span><span style="color: #000000;">;</span>
<span style="color: #00979c;">float</span> <span style="color: #000000;">distancia</span><span style="color: #000000;">;</span>
 
<span style="color: #00979c;">void</span> <span style="color: #5e6d03;">setup</span><span style="color: #000000;">(</span><span style="color: #000000;">)</span><span style="color: #000000;">{</span>
 <b><span style="color: #d35400;">Serial</span></b><span style="color: #434f54;">.</span><span style="color: #d35400;">begin</span><span style="color: #000000;">(</span><span style="color: #000000;">9600</span><span style="color: #000000;">)</span><span style="color: #000000;">;</span>
 <span style="color: #d35400;">pinMode</span><span style="color: #000000;">(</span><span style="color: #000000;">trigger</span><span style="color: #434f54;">,</span><span style="color: #00979c;">OUTPUT</span><span style="color: #000000;">)</span><span style="color: #000000;">;</span>
 <span style="color: #d35400;">pinMode</span><span style="color: #000000;">(</span><span style="color: #000000;">echo</span><span style="color: #434f54;">,</span><span style="color: #00979c;">INPUT</span><span style="color: #000000;">)</span><span style="color: #000000;">;</span>
 <span style="color: #d35400;">pinMode</span><span style="color: #000000;">(</span><span style="color: #000000;">13</span><span style="color: #434f54;">,</span><span style="color: #00979c;">OUTPUT</span><span style="color: #000000;">)</span><span style="color: #000000;">;</span>
<span style="color: #000000;">}</span>
 
<span style="color: #00979c;">void</span> <span style="color: #5e6d03;">loop</span><span style="color: #000000;">(</span><span style="color: #000000;">)</span><span style="color: #000000;">{</span>
 <span style="color: #000000;">primeraMedicion</span><span style="color: #434f54;">=</span><span style="color: #000000;">medicionUS100</span><span style="color: #000000;">(</span><span style="color: #000000;">)</span><span style="color: #000000;">;</span>
 <span style="color: #d35400;">delay</span><span style="color: #000000;">(</span><span style="color: #000000;">10</span><span style="color: #000000;">)</span><span style="color: #000000;">;</span>
 <span style="color: #000000;">segundaMedicion</span><span style="color: #434f54;">=</span><span style="color: #000000;">medicionUS100</span><span style="color: #000000;">(</span><span style="color: #000000;">)</span><span style="color: #000000;">;</span>
 <span style="color: #d35400;">delay</span><span style="color: #000000;">(</span><span style="color: #000000;">10</span><span style="color: #000000;">)</span><span style="color: #000000;">;</span>
 <span style="color: #000000;">terceraMedicion</span><span style="color: #434f54;">=</span><span style="color: #000000;">medicionUS100</span><span style="color: #000000;">(</span><span style="color: #000000;">)</span><span style="color: #000000;">;</span>
 <span style="color: #000000;">distancia</span> <span style="color: #434f54;">=</span> <span style="color: #000000;">(</span><span style="color: #000000;">primeraMedicion</span> <span style="color: #434f54;">+</span> <span style="color: #000000;">segundaMedicion</span> <span style="color: #434f54;">+</span> <span style="color: #000000;">terceraMedicion</span><span style="color: #000000;">)</span><span style="color: #434f54;">/</span><span style="color: #000000;">3</span><span style="color: #000000;">;</span>
 
<span style="color: #5e6d03;">if</span><span style="color: #000000;">(</span><span style="color: #000000;">distancia</span><span style="color: #434f54;">&lt;</span><span style="color: #434f54;">=</span><span style="color: #000000;">5</span><span style="color: #000000;">)</span>
<span style="color: #000000;">{</span>
  <span style="color: #d35400;">digitalWrite</span><span style="color: #000000;">(</span><span style="color: #000000;">13</span><span style="color: #434f54;">,</span><span style="color: #00979c;">HIGH</span><span style="color: #000000;">)</span><span style="color: #000000;">;</span>
<span style="color: #000000;">}</span><span style="color: #5e6d03;">else</span><span style="color: #000000;">{</span><span style="color: #d35400;">digitalWrite</span><span style="color: #000000;">(</span><span style="color: #000000;">13</span><span style="color: #434f54;">,</span><span style="color: #00979c;">LOW</span><span style="color: #000000;">)</span><span style="color: #000000;">;</span><span style="color: #000000;">}</span>

<b><span style="color: #d35400;">Serial</span></b><span style="color: #434f54;">.</span><span style="color: #d35400;">println</span><span style="color: #000000;">(</span><span style="color: #000000;">distancia</span><span style="color: #000000;">)</span><span style="color: #000000;">;</span>
<span style="color: #d35400;">delay</span><span style="color: #000000;">(</span><span style="color: #000000;">150</span><span style="color: #000000;">)</span><span style="color: #000000;">;</span>
<span style="color: #000000;">}</span>


<span style="color: #00979c;">float</span> <span style="color: #000000;">medicionUS100</span><span style="color: #000000;">(</span><span style="color: #000000;">)</span>
<span style="color: #000000;">{</span>
 <span style="color: #d35400;">digitalWrite</span><span style="color: #000000;">(</span><span style="color: #000000;">trigger</span><span style="color: #434f54;">,</span><span style="color: #00979c;">LOW</span><span style="color: #000000;">)</span><span style="color: #000000;">;</span> <span style="color: #434f54;">//Inicializo el sensor </span>
 <span style="color: #d35400;">delayMicroseconds</span><span style="color: #000000;">(</span><span style="color: #000000;">5</span><span style="color: #000000;">)</span><span style="color: #000000;">;</span>
<span style="color: #434f54;">// Comienzo con la medicion</span>
<span style="color: #434f54;">// Enviamos una señal activando la salida trigger durante 10 microsegundos</span>
 <span style="color: #d35400;">digitalWrite</span><span style="color: #000000;">(</span><span style="color: #000000;">trigger</span><span style="color: #434f54;">,</span><span style="color: #00979c;">HIGH</span><span style="color: #000000;">)</span><span style="color: #000000;">;</span>
 <span style="color: #d35400;">delayMicroseconds</span><span style="color: #000000;">(</span><span style="color: #000000;">10</span><span style="color: #000000;">)</span><span style="color: #000000;">;</span>
 <span style="color: #d35400;">digitalWrite</span><span style="color: #000000;">(</span><span style="color: #000000;">trigger</span><span style="color: #434f54;">,</span><span style="color: #00979c;">LOW</span><span style="color: #000000;">)</span><span style="color: #000000;">;</span>
<span style="color: #434f54;">// Adquirimos los datos y convertimos la medida a centimetros</span>
 <span style="color: #5e6d03;">return</span> <span style="color: #d35400;">pulseIn</span><span style="color: #000000;">(</span><span style="color: #000000;">echo</span><span style="color: #434f54;">,</span><span style="color: #00979c;">HIGH</span><span style="color: #000000;">)</span><span style="color: #434f54;">*</span><span style="color: #000000;">0.01657</span><span style="color: #000000;">;</span> <span style="color: #434f54;">// Medimos el ancho del pulso</span>
<span style="color: #000000;">}</span>

</pre>
<h2 class="TituloEntrada">Video del resultado final</h2>
<div class="ImagenEntrada"><iframe loading="lazy" src="https://www.youtube.com/embed/tee0_-dc6r4" width="504" height="378" frameborder="0" allowfullscreen="allowfullscreen"></iframe></div>
<p>The post <a href="https://www.electrontools.com/Home/WP/sensor-ultrasonido-us-100/">Sensor Ultrasonido US-100</a> appeared first on <a href="https://www.electrontools.com/Home/WP">Tutoriales de Electrónica | Matemática y Física</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.electrontools.com/Home/WP/sensor-ultrasonido-us-100/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>PUENTE H L293b ⇨ ¿QUE ES? ¿COMO FUNCIONA?</title>
		<link>https://www.electrontools.com/Home/WP/como-funciona-el-puente-h-l293b/</link>
					<comments>https://www.electrontools.com/Home/WP/como-funciona-el-puente-h-l293b/#comments</comments>
		
		<dc:creator><![CDATA[Cristian Veloso]]></dc:creator>
		<pubDate>Wed, 09 Mar 2016 20:01:23 +0000</pubDate>
				<category><![CDATA[Componentes utiles]]></category>
		<category><![CDATA[Robotica]]></category>
		<category><![CDATA[L293B]]></category>
		<guid isPermaLink="false">http://sd-1114400-h00023.ferozo.net/Home/WP/?p=66</guid>

					<description><![CDATA[<div><img width="320" height="320" src="https://www.electrontools.com/Home/WP/wp-content/uploads/2016/03/Giro-de-motor.png" class="attachment-large size-large wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://www.electrontools.com/Home/WP/wp-content/uploads/2016/03/Giro-de-motor.png 320w, https://www.electrontools.com/Home/WP/wp-content/uploads/2016/03/Giro-de-motor-150x150.png 150w, https://www.electrontools.com/Home/WP/wp-content/uploads/2016/03/Giro-de-motor-300x300.png 300w, https://www.electrontools.com/Home/WP/wp-content/uploads/2016/03/Giro-de-motor-250x250.png 250w, https://www.electrontools.com/Home/WP/wp-content/uploads/2016/03/Giro-de-motor-174x174.png 174w" sizes="auto, (max-width: 320px) 100vw, 320px" /></div><p>Que es y para que sirve el Puente H L293B En las&#8230;</p>
<p>The post <a href="https://www.electrontools.com/Home/WP/como-funciona-el-puente-h-l293b/">PUENTE H L293b ⇨ ¿QUE ES? ¿COMO FUNCIONA?</a> appeared first on <a href="https://www.electrontools.com/Home/WP">Tutoriales de Electrónica | Matemática y Física</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div><img width="320" height="320" src="https://www.electrontools.com/Home/WP/wp-content/uploads/2016/03/Giro-de-motor.png" class="attachment-large size-large wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://www.electrontools.com/Home/WP/wp-content/uploads/2016/03/Giro-de-motor.png 320w, https://www.electrontools.com/Home/WP/wp-content/uploads/2016/03/Giro-de-motor-150x150.png 150w, https://www.electrontools.com/Home/WP/wp-content/uploads/2016/03/Giro-de-motor-300x300.png 300w, https://www.electrontools.com/Home/WP/wp-content/uploads/2016/03/Giro-de-motor-250x250.png 250w, https://www.electrontools.com/Home/WP/wp-content/uploads/2016/03/Giro-de-motor-174x174.png 174w" sizes="auto, (max-width: 320px) 100vw, 320px" /></div><h2>Que es y para que sirve el Puente H L293B</h2>
<p>En las mayoría de las aplicaciones electrónicas orientadas a Reboticas nos vemos en la necesidad de controlar y generar movimientos. Según la naturaleza del requerimiento recurrimos a <strong>Servo Motores</strong> o <b>Motores de continua</b>.</p>
<p>Me interesa mostrarles la forma adecuada de controlar un motor de continua, para esto necesitamos controlar dos variables <b>(Dirección y Velocidad)</b>.</p>
<h2>Control de dirección de giro mediante el Puente H L293B</h2>
<p>Un motor de continua determina su dirección de giro en función de la tensión entre sus terminales, es decir si conectamos el termina <b>1</b> del motor al <b>Positivo</b> de la pila y el terminal <b>2</b> del motor al <b>Negativo</b> de la pila, obtendremos un sentido de giro determinado, si lo conectamos en forma opuesta obtendremos el sentido de giro contrario.</p>
<p>Para lograr este cambio controlado de polaridad nos apoyamos en un circuito integrado conocido como <b>Puente H</b>(<em>es una disposición circuital de transistores y diodos que nos permite controlar la polaridad de dos terminales de salida en función de unas entradas lógicas</em>), como caso particular hablare del <b>Puente H L293B</b>.</p>
<h2><img decoding="async" loading="lazy" class="aligncenter" title="Control dirección giro de motor con l293" src="https://2.bp.blogspot.com/-c80eBF6qiR0/UnP9aqKhUyI/AAAAAAAABKo/GTh4v0m3rTc/s1600/Giro+de+motor.png" alt="Como funciona el Puente H L293B" width="320" height="186" /><br />Diagrama de conexión del puente H L293B</h2>
<p>Este solo integrado nos permite controlar dos motores en simultaneo. los terminales del Motor M1 conectados a los Pines 3 y 6 y los terminales del motor M2 a los terminales 11 y 14, como se ilustra en la figura.</p>
<p>El pin 16 corresponde a la alimentación propia del integrado, 5V, el Pin 16 deberá estar conectado a la tensión que alimentara los motores, puede variar en el rango de (5 a 36) V.</p>
<p>Es importante tener en cuenta que este integrado se alimenta con dos niveles de tensión diferente, uno corresponde a la alimentación propia de integrado, que no debe ser superior a 7V(<b>VSS</b>) y otra es la tensión con la que alimentaremos los motores, pudiendo en este ultimo hacerlo con hasta 36V(<b>VC</b>).</p>
<p> </p>
<p><img decoding="async" loading="lazy" class="aligncenter" title="Diagrama de conexión L293B" src="https://3.bp.blogspot.com/-F4a69Fh-fKE/UnP_Vwun1bI/AAAAAAAABK0/_wdtZIFSeuI/s320/figura_2.gif" alt="Como funciona el Puente H L293B" width="320" height="173" /></p>
<p> </p>
<h3><strong>Como controlar el giro del Motor</strong></h3>
<p>Fácil, el movimiento de giro corresponderá a la siguiente tabla de verdad<br />Colocando Niveles Altos y bajos en los Pines 2 y 7 Logramos controlar la tensión de salida de los terminales 3 y 6.</p>
<p><img decoding="async" loading="lazy" class="aligncenter" title="Tabla de verdad L293B" src="https://4.bp.blogspot.com/-mOsQt01ZLgA/UnQDXwtEVXI/AAAAAAAABLI/sPViYxgsEA4/s320/Sin+t%C3%ADtulo.png" alt="Como funciona el Puente H L293B Tabla de verdad" width="320" height="95" /></p>
<h3><strong>Como controlo la velocidad de un motor de continua</strong></h3>
<p>Para controlar la velocidad del motor nos basamos en la técnica <a style="text-decoration: unterline; color: black;" href="https://www.electrontools.com/2013/11/pwm-modulacion-por-ancho-de-pulsos.html"><b>PWM (Modulacion por ancho de pulso)</b></a>, que basicaménte consiste en "apagar" y "encender" la señal de entrada de manera de reducir la potencia suministrada al motor.</p>
<p>Para mas detalle leer el apartado siguiente <a style="text-decoration: unterline; color: black;" href="https://www.electrontools.com/2013/11/pwm-modulacion-por-ancho-de-pulsos.html"><b>Modulación por ancho de pulsos PWM</b></a></p>
<p>[anuncio_b30 id=3][anuncio_b30 id=4]</p>
<h2>Diagrama para controlar el puente H l293B con arduino</h2>
<p>En el siguiente diagrama se conectan dos motores al puente H L293B que sera controlado por la placa arduino.</p>
<p><img decoding="async" loading="lazy" class="aligncenter" title="Diagrama de conexión puente H l293b Arduino" src="https://lh3.googleusercontent.com/-ltl_Trdl6O8/VbjaZihKepI/AAAAAAAADcc/fQOTY_avSYU/h480/Puente%2BH.png" alt="Diagrama de conexión puente H l293b Arduino" width="651" height="449" /></p>
<h2>Codigo para implementar con arduino</h2>
<pre style="margin-left: 15px; background-color: #eeeeee; border: 1px solid #cccccc; box-sizing: border-box; color: #006699; font-family: monospace, monospace; font-size: 13px; overflow: auto; padding: 10px;">//Programa para controlar 2 motores con control de velocidad y giro con un L293
int switchPin = 7;    // switch para cambiar el sentido de giro de los motores
int motor1Pin1 = 3;   // Motor 1 adelante
int motor1Pin2 = 4;   // Motor 1 atras
int speedPin1 = 9;    // Motor 1 aceleracion (PWM) Pin enable del L293
int potPin = 0;       // Potenciometro para controlar velocidad motor 1
 
int ledPin = 13;      // LED 
 
//int switchPin2 = 8;   // No implementado
int motor2Pin1 = 5;   // Motor 2 adelante
int motor2Pin2 = 6;   // Motor 2 atras
int speedPin2 = 10;   // Motor 2 aceleracion (PWM) Pin Enable del L293
int potPin2 = 1;      // Potenciometro para controlar velocidad motor 2
int speedpin = 0;     // tasa de velocidad a la que Arduino envia los datos
 
void setup() {
   
Serial.begin (9600);
 
//configuracion de pines
pinMode(switchPin, INPUT);
//pinMode(switchPin2, INPUT); //no usado
 
// Control Motor 1
pinMode(motor1Pin1, OUTPUT); 
pinMode(motor1Pin2, OUTPUT); 
pinMode(speedPin1, OUTPUT);
 
//Control Motor 2
pinMode(motor2Pin1, OUTPUT); 
pinMode(motor2Pin2, OUTPUT); 
pinMode(speedPin2, OUTPUT);
 
pinMode(ledPin, OUTPUT);
 
// Establece speedPinX en modo High para poder controlar la velocidad
digitalWrite(speedPin1, HIGH);
digitalWrite(speedPin2, HIGH);
 
// comprobacion de reseteo, si el led parpadea solo 3 veces, todo esta bien
// si vuelve a parpadear, significa que ha hecho un reset, revisar conexiones
// por si hubiera un corto
blink(ledPin, 3, 100);
}
 
void loop() {
 
  //Si el switch no esta pulsado, gira en una direccion, si no en la contraria
  if (digitalRead(switchPin) &gt;0) {
     
    digitalWrite(motor1Pin1, LOW);      // Establece el sentido de giro del motor 1
    digitalWrite(motor1Pin2, HIGH);     // 
     
    speedpin = analogRead(potPin);      // Lectura del valor del potenciometro
    speedpin = 800 + (speedpin/6);      // Para establecer la velocidad de giro
    analogWrite (speedPin1, speedpin);  //
    Serial.print("motor 1 = ");         //
    Serial.println(speedpin);           //
    delay (50);                         //
     
     
    digitalWrite(motor2Pin1, LOW);      // Establece el sentido de giro del motor 2
    digitalWrite(motor2Pin2, HIGH);     // 
     
    speedpin = analogRead(potPin2);     // Lectura del valor del potenciometro
    speedpin = 800 + (speedpin/6);      // Para establecer la velocidad de giro
    analogWrite (speedPin2, speedpin);  //
    Serial.print("motor 2 = ");         //
    Serial.println(speedpin);           //
    delay(50);                          //
  }  
  else {
    digitalWrite(motor1Pin1, HIGH);     // Establece el sentido de giro del motor 1
    digitalWrite(motor1Pin2, LOW);      // 
     
    speedpin = analogRead(potPin);      // Lectura del valor del potenciometro
    speedpin = 800 + (speedpin/6);      // Para establecer la velocidad de giro
    analogWrite (speedPin1, speedpin);  //
    Serial.print("motor 1 = ");         //
    Serial.println(speedpin);           //
    delay (50);                         //
     
     
    digitalWrite(motor2Pin1, HIGH);     // Establece el sentido de giro del motor 2
    digitalWrite(motor2Pin2, LOW);      // 
     
    speedpin = analogRead(potPin2);     // Lectura del valor del potenciometro
    speedpin = 800 + (speedpin/6);      // Para establecer la velocidad de giro
    analogWrite (speedPin2, speedpin);  //
    Serial.print("motor 2 = ");         //
    Serial.println(speedpin);           //
    delay(50);                          //
  }
}
 
/*
Parpadeo del led, Significa que ha ejecutado la funcion setup()
si todo va bien, solo parpadea tres veces, si hay algun error que resetee el arduino,
volvera a verse el parpadeo del led
*/
void blink(int whatPin, int howManyTimes, int milliSecs) {
  int i = 0;
  for ( i = 0; i &lt; howManyTimes; i++) {
    digitalWrite(whatPin, HIGH);
    delay(milliSecs/2);
    digitalWrite(whatPin, LOW);
    delay(milliSecs/2);
  }
}
</pre>
<p>Mi idea sobre este articulo fue juntar en un solo lugar la información que se puede encontrar desparramada por internet, para tener todo lo que considero útil en la misma pagina.<br />Espero que sea de utilidad.</p>
<h2>COMPRA TU DRIVER PUENTE H L293B</h2>
<p>Es recomendable comprarlo en tiendas oficiales, desde mi punto de vista la mejor opción en las tiendas <strong>Amazon</strong>, son profesionales y puedo garantizar que sus productos son de alta calidad.</p>
<p> </p>


<iframe loading="lazy" style="width:120px;height:240px;" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" src="https://rcm-eu.amazon-adsystem.com/e/cm?ref=tf_til&t=electrontoo01-21&m=amazon&o=30&p=8&l=as1&IS2=1&npa=1&asins=B07GFGS6BN&linkId=7492091b87bc8128ffc49f514995dc4b&bc1=000000&amp;lt1=_blank&fc1=333333&lc1=0066c0&bg1=ffffff&f=ifr">
    </iframe>
<iframe loading="lazy" style="width:120px;height:240px;" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" src="https://rcm-eu.amazon-adsystem.com/e/cm?ref=tf_til&t=electrontoo01-21&m=amazon&o=30&p=8&l=as1&IS2=1&npa=1&asins=B06X9KQ84B&linkId=8e1de667aad7eeff1ce556d7d5067d46&bc1=000000&amp;lt1=_blank&fc1=333333&lc1=0066c0&bg1=ffffff&f=ifr">
    </iframe>
<p>The post <a href="https://www.electrontools.com/Home/WP/como-funciona-el-puente-h-l293b/">PUENTE H L293b ⇨ ¿QUE ES? ¿COMO FUNCIONA?</a> appeared first on <a href="https://www.electrontools.com/Home/WP">Tutoriales de Electrónica | Matemática y Física</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.electrontools.com/Home/WP/como-funciona-el-puente-h-l293b/feed/</wfw:commentRss>
			<slash:comments>5</slash:comments>
		
		
			</item>
		<item>
		<title>Controlar un servomotor con arduino</title>
		<link>https://www.electrontools.com/Home/WP/servo-motor-arduino/</link>
					<comments>https://www.electrontools.com/Home/WP/servo-motor-arduino/#respond</comments>
		
		<dc:creator><![CDATA[Cristian Veloso]]></dc:creator>
		<pubDate>Wed, 09 Mar 2016 20:00:11 +0000</pubDate>
				<category><![CDATA[Arduino]]></category>
		<category><![CDATA[Robotica]]></category>
		<guid isPermaLink="false">http://sd-1114400-h00023.ferozo.net/Home/WP/?p=64</guid>

					<description><![CDATA[<div><img width="240" height="240" src="https://www.electrontools.com/Home/WP/wp-content/uploads/2016/03/Servo.jpg" class="attachment-large size-large wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://www.electrontools.com/Home/WP/wp-content/uploads/2016/03/Servo.jpg 240w, https://www.electrontools.com/Home/WP/wp-content/uploads/2016/03/Servo-150x150.jpg 150w, https://www.electrontools.com/Home/WP/wp-content/uploads/2016/03/Servo-174x174.jpg 174w" sizes="auto, (max-width: 240px) 100vw, 240px" /></div><p>Que es y como funciona un servomotor Un servomotor generalmente conocido como&#8230;</p>
<p>The post <a href="https://www.electrontools.com/Home/WP/servo-motor-arduino/">Controlar un servomotor con arduino</a> appeared first on <a href="https://www.electrontools.com/Home/WP">Tutoriales de Electrónica | Matemática y Física</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div><img width="240" height="240" src="https://www.electrontools.com/Home/WP/wp-content/uploads/2016/03/Servo.jpg" class="attachment-large size-large wp-post-image" alt="" decoding="async" loading="lazy" srcset="https://www.electrontools.com/Home/WP/wp-content/uploads/2016/03/Servo.jpg 240w, https://www.electrontools.com/Home/WP/wp-content/uploads/2016/03/Servo-150x150.jpg 150w, https://www.electrontools.com/Home/WP/wp-content/uploads/2016/03/Servo-174x174.jpg 174w" sizes="auto, (max-width: 240px) 100vw, 240px" /></div><h2>Que es y como funciona un servomotor</h2>
<p>Un servomotor generalmente conocido como <strong>Servo  </strong>es básicamente un motor de corriente continua sumado a un conjunto de engranajes y un circuito interno de control, todo esto le da la capacidad de posicionarse en ángulos determinados dependiendo su rango de operación. La gran utilidad que tenemos al utilizar servo motores es controlar movimientos de forma muy precisa.</p>
<p>Un servomotor esta formado a grandes rasgos por tres partes, un motor de continua, una carcasa y una circuiteria de control para darle estabilidad y la baja inercia que caracterizan a estos dispositivos.<br />
<img decoding="async" loading="lazy" class="aligncenter" title="servo motor arduino" src="https://lh3.googleusercontent.com/-LuiNB0Uqg6Y/VZwTXitOUsI/AAAAAAAAB20/1HjVkoW4-_8/h240/Servo.png" alt="servo motor arduino" /></p>
<p>Estos dispositivos son muy utilizados en la industria del aeromodelismo, generalmente en Autos, helicopteros, barcos, aviones y cualquier dispositivo que necesite controlar movimientos con prescicion.</p>
<h2>Como controlo la posición?</h2>
<p>La forma de controlarlo es muy Simple, se basa en la <a style="text-decoration: unterline; color: black;" href="https://electrontools.blogspot.com.ar/2013/11/pwm-modulacion-por-ancho-de-pulsos.html"><b>Modulación por ancho de pulsos PWM</b></a>.<br />
El ancho del pulso que le enviemos determinara el angulo de posicionamiento del servo motor, el circuito interno codifica el ancho de pulso que le ingresa y posiciona el servo en el angulo equivalente al ancho del puso emitido.<br />
La mayoría de los servos de control digital (los que podemos conectar directamente a arduino) funcionan a una frecuencia de 50Hz, lo que nos da un periodo de 20ms. T = 1/F.</p>
<p><img decoding="async" loading="lazy" class="aligncenter" title="servo motor arduino" src="https://1.bp.blogspot.com/-Ko0iDwYSe_I/U_8V4M1AB_I/AAAAAAAABS4/FubMkRjsuEA/s1600/Ton.png" alt="servo motor arduino" /><br />
Ton es el tiempo en estado alto de la señal(es decir el tiempo en que enviamos un 1) y Toff es el tiempo en estado bajo de la señal(es decir el tiempo en que enviamos un 0)</p>
<h2>Como mover a 0° mediante arduino</h2>
<p>Para posicionarlo a cero grados, debemos enviar una señal con <b>Ton=2,3ms - Toff=17,7ms</b></p>
<p><img decoding="async" loading="lazy" class="aligncenter" title="servo motor arduino" src="https://2.bp.blogspot.com/-dSR2vwse990/U_8Y253c8RI/AAAAAAAABTE/uUYZSICTZs0/s1600/Cero%2Bgrados.png" alt="servo motor arduino" /></p>
<p>Una vez que el servo alcanzo la posición indicada, aunque sigamos enviando la señal el servo no se moverá de los cero grados.</p>
<h2>Como mover a 180° mediante arduino</h2>
<p>Para posicionar el servo a 180 grados, debemos enviar una señal con <b>Ton=0,3ms - TOff=19,7ms</b></p>
<p>Cualquier señal enviada con un Ton entre 0,3 y 2,3 ms posicionara el servo entre 0 y 180 grados.<br />
Si nuestra intensión es posicionar el servo en algún angulo mas especifico lo que tendríamos que hacer es realizar señales de prueba hasta que encontremos la señal adecuada.</p>
<h2>Diagrama de conexión de un servo motor con arduino</h2>
<p><img decoding="async" loading="lazy" class="aligncenter" title="servo motor arduino" src="https://4.bp.blogspot.com/-b62ILkC8IT8/U_8fN3KIJuI/AAAAAAAABTs/qEQkfCFjn2o/s400/servo.png" alt="servo motor arduino" /></p>
<h2>Aca les dejo el código</h2>
<pre style="margin-left: 15px; background-color: #eeeeee; border: 1px solid #cccccc; box-sizing: border-box; color: #006699; font-family: monospace, monospace; font-size: 13px; overflow: auto; padding: 10px;">#include &lt;<span style="color: #cc6600;">Servo</span>.h&gt;

<span style="color: #cc6600;">Servo</span> MiServo;
<span style="color: #cc6600;">int</span> Angulo;
<span style="color: #cc6600;">int</span> Posicion;

<span style="color: #7e7e7e;">/*</span>
<span style="color: #7e7e7e;">Autor: Veloso Cristian</span>
<span style="color: #7e7e7e;">Web:ElectronTools.blogspot.com</span>
<span style="color: #7e7e7e;">*/</span>

<span style="color: #cc6600;">void</span> <span style="color: #cc6600;"><b>setup</b></span>()
{
MiServo.<span style="color: #cc6600;">attach</span>(8);<span style="color: #7e7e7e;">//Pin de control</span>
}

<span style="color: #cc6600;">void</span> <span style="color: #cc6600;"><b>setup</b></span>()
{
Angulo = 90;
Posicion = <span style="color: #cc6600;">map</span>(Angulo,0,1023,0,179);<span style="color: #7e7e7e;">//Establecemos la relacion entre el angulo y el PWM, y le mandamos el map al servo</span>
MiServo.<span style="color: #cc6600;">write</span>(Posicion);
<span style="color: #cc6600;">delay</span>(150);
}

</pre>
<h2>Bibliográfica consultada</h2>
<p><a href="https://www.forosdeelectronica.com" rel="nofollow">www.forosdeelectronica.com</a><br />
<a href="https://www.electroensaimada.com/servomotor.html" rel="nofollow">www.electroensaimada.com/</a></p>
<p>The post <a href="https://www.electrontools.com/Home/WP/servo-motor-arduino/">Controlar un servomotor con arduino</a> appeared first on <a href="https://www.electrontools.com/Home/WP">Tutoriales de Electrónica | Matemática y Física</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.electrontools.com/Home/WP/servo-motor-arduino/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
