<?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>rDuinoStar | Arduino España</title>
	<atom:link href="https://rduinostar.com/feed/" rel="self" type="application/rss+xml" />
	<link>https://rduinostar.com/</link>
	<description>Tutoriales, noticias, proyectos, datasheets, etc sobre Arduino en Español</description>
	<lastBuildDate>Tue, 20 Oct 2020 19:50:10 +0000</lastBuildDate>
	<language>es</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.4.8</generator>
	<item>
		<title>Arduino Day 2015</title>
		<link>https://rduinostar.com/noticias/arduino-day-2015/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=arduino-day-2015</link>
					<comments>https://rduinostar.com/noticias/arduino-day-2015/#respond</comments>
		
		<dc:creator><![CDATA[CiDsTaR]]></dc:creator>
		<pubDate>Tue, 10 Mar 2015 23:32:40 +0000</pubDate>
				<category><![CDATA[Noticias]]></category>
		<category><![CDATA[2015]]></category>
		<category><![CDATA[arduino day]]></category>
		<guid isPermaLink="false">http://rduinostar.com/?p=1784</guid>

					<description><![CDATA[<p>Una vez más se acerca el cumpleaños de Arduino y, por ende, el Arduino Day 2015. Este día es, en realidad, un evento de 24 horas de duración en el que gente interesada en el mundo Arduino se junta, comparte experiencias y aprende un poco del resto. Para quien todavía no lo sepa, el cumpleaños &#8230;</p>
<p>La entrada <a href="https://rduinostar.com/noticias/arduino-day-2015/">Arduino Day 2015</a> aparece primero en <a href="https://rduinostar.com">rDuinoStar | Arduino España</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p style="text-align: justify;">Una vez más se acerca el cumpleaños de <strong>Arduino</strong> y, por ende, el <strong>Arduino Day 2015</strong>. Este día es, en realidad, un evento de 24 horas de duración en el que gente interesada en el mundo Arduino se junta, comparte experiencias y aprende un poco del resto.<span id="more-1784"></span></p>
<p style="text-align: justify;">Para quien todavía no lo sepa, el <strong>cumpleaños de Arduino</strong> es el 28 de Marzo. En esta fecha, y en distintas localidades del planeta, habrá eventos creados por el equipo <strong>Arduino</strong> y por la comunidad en la que se realizarán distintos tipos de actividades para compartir conocimiento y experiencia en este mundillo. Desde los usuarios más <em>newbies</em> hasta los más veteranos en el mundo, pasando por profesores, asociaciones, etc… todos son bienvenidos en este tipo de eventos.</p>
<p style="text-align: justify;">Los eventos oficiales, es decir, organizados por el equipo de Arduino, que se van a celebrar este año son los siguientes:</p>
<div class="starlist tie-list-shortcode">
<ul>
<li><a title="Arduino" href="http://arduino.cc/" target="_blank">Arduino</a> at MIT Media Lab, Boston, Massachusetts, Estados Unidos.</li>
<li><a title="Office Arduino" href="http://local.arduino.cc/torino/" target="_blank">Office Arduino</a>, Torino, Italia.</li>
<li><a title="Arduino Verkstad" href="http://local.arduino.cc/malmo/" target="_blank">Arduino Verkstad</a>, Malmo, Sweden.</li>
<li><a title="Arduino Karkhana" href="http://local.arduino.cc/bangalore/" target="_blank">Arduino Karkhana</a>, Bangalore, India.</li>
<li><a title="Arduino Budapest" href="http://local.arduino.cc/budapest/" target="_blank">Arduino Budapest</a>, Budapest, Hungría.</li>
</ul>
</div>
Además, hay una cantidad importante de eventos propuestos por la comunidad a lo largo de todo el planeta. De hecho, tú también puedes organizar tu propio evento. Para ello sólo debes seguir una serie de pasos <strong>antes del 15 de Marzo</strong>:</p>
<p style="text-align: center;"><script type="text/javascript"><!--
				google_ad_client = "ca-pub-2285568471490299";
				/* rDuinoStar medio-post */
				google_ad_slot = "3593771250";
				google_ad_width = 468;
				google_ad_height = 60;
				//-->
				</script><br />
				<script type="text/javascript"
				src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
				</script></p>
<h3>Cómo organizar un Arduino Day 2015</h3>
<p style="text-align: justify;">Lo primero de todo es buscar una sede para el evento y planear una serie de actividades en función de los recursos que tengas disponibles. Has de tener una variedad de actividades que hagan del evento algo particular, algo emocionante. Cabe destacar que la mayoría de eventos tienen que ser gratuitos para los asistentes. Por supuesto, puedes realizar un workshop para el que haya que pagar entrada, pero recuerda que no puede ser la única actividad del día.</p>
<p style="text-align: justify;">Una vez decidida la sede y con una planificación de eventos que te satisfaga, hay que registrarse y rellenar la solicitud de forma online a través de la web <a title="Call for Submissions" href="https://id.arduino.cc/cas/oauth2.0/authorize?client_id=arduinoapi&amp;redirect_uri=https%3A%2F%2Fday.arduino.cc%2F%23%2F&amp;access_type=offline&amp;scope=uid+email&amp;state=rqto9aof7irizfr" target="_blank">Call for Submissions</a>.</p>
<p style="text-align: justify;">Si tu evento es aprobado, aparecerá en el mapa de la web oficial dedicada al <strong>Arduino Day 2015</strong>, pero la cosa no acaba ahí. En ese momento, deberás preparar un calendario detallado con las actividades que se van a realizar y <strong>publicarlo en alguna página web </strong>para conseguir la confirmación definitiva. Aunque tu evento aparezca en el mapa, si antes del día 15 de Marzo de 2015 no se adjunta la web con la agenda del día, desaparecerá nuevamente del mapa. En ese momento se te proporcionará un <strong>kit digital</strong> con diversos recursos gráficos para preparar la publicidad del evento, además de un 10% de descuento en la <a title="Arduino Store" href="http://store.arduino.cc/" target="_blank">Tienda Arduino</a>.</p>
<p style="text-align: justify;">Todos los eventos, tanto oficiales como no oficiales, pendientes y confirmados, aparecen en un mapa interactivo en la <a title="Arduino Day 2015" href="https://day.arduino.cc" target="_blank">página oficial del Arduino Day 2015</a>.</p>
<p style="text-align: justify;">Una vez llegado el día, si alguien quiere compartir con nosotros mediante cualquier vía fotos, vídeos o cualquier información de un evento en particular, estaremos encantados de compartirla.</p>
<p>La entrada <a href="https://rduinostar.com/noticias/arduino-day-2015/">Arduino Day 2015</a> aparece primero en <a href="https://rduinostar.com">rDuinoStar | Arduino España</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://rduinostar.com/noticias/arduino-day-2015/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Sensor de temperatura y humedad DHT22 o AM2302</title>
		<link>https://rduinostar.com/documentacion/datasheets/dht22-caracteristicas-am2302/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=dht22-caracteristicas-am2302</link>
					<comments>https://rduinostar.com/documentacion/datasheets/dht22-caracteristicas-am2302/#respond</comments>
		
		<dc:creator><![CDATA[CiDsTaR]]></dc:creator>
		<pubDate>Thu, 11 Dec 2014 23:01:03 +0000</pubDate>
				<category><![CDATA[Datasheets]]></category>
		<category><![CDATA[am2302]]></category>
		<category><![CDATA[dht22]]></category>
		<category><![CDATA[humedad]]></category>
		<category><![CDATA[sensor]]></category>
		<category><![CDATA[temperatura]]></category>
		<guid isPermaLink="false">http://rduinostar.com/?p=1686</guid>

					<description><![CDATA[<p>El sensor de temperatura y humedad DHT22 o AM2302 se une a la familia de los sensores DHT, de los que hasta ahora solo conocíamos a su hermano pequeño el sensor de temperatura y humedad DHT11. El sensor DHT22 supone una mejora considerable en las características técnicas con respecto al DHT11 a cambio de un pequeño incremento &#8230;</p>
<p>La entrada <a href="https://rduinostar.com/documentacion/datasheets/dht22-caracteristicas-am2302/">Sensor de temperatura y humedad DHT22 o AM2302</a> aparece primero en <a href="https://rduinostar.com">rDuinoStar | Arduino España</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p style="text-align: justify;">El <strong>sensor de temperatura y humedad DHT22 o AM2302</strong> se une a la familia de los sensores DHT, de los que hasta ahora solo conocíamos a su hermano pequeño el <a title="Sensor de temperatura y humedad DHT11" href="http://rduinostar.com/documentacion/datasheets/dht11-overview/" target="_blank">sensor de temperatura y humedad DHT11</a>. El<strong> sensor DHT22</strong> supone una mejora considerable en las características técnicas con respecto al <strong>DHT11</strong> a cambio de un pequeño incremento en el precio.</p>
<p style="text-align: justify;"><span id="more-1686"></span></p>
<h3 style="text-align: justify;">Introducción</h3>
<p style="text-align: justify;">Cuando lo que buscamos es cierta precisión en nuestras mediciones, lo más seguro es que el sensor DHT11 nos haya dejado un poco fríos, principalmente por el amplio error en la medición y el escaso rango de temperatura. El sensor DHT22 nace como una evolución natural del DHT11, con <strong>mayores rangos de temperatura y humedad, y más precisión</strong>.</p>
<h3 style="text-align: justify;">Encapsulados</h3>
<p style="text-align: justify;">Buscando por Internet podéis encontrar dos variantes del sensor en según qué tienda, a saber:</p>
<ul class="checklist">
<li style="text-align: justify;"><strong>El sensor suelto</strong>, con una «funda» blanca plástica y cuatro pines de conexión.</li>
<li style="text-align: justify;"><strong>El sensor</strong> con la misma funda blanca que el anterior, pero esta vez <strong>soldado en una placa</strong> y con tres pines de conexión, además de una <a title="Resistencias pull-up y pull-down" href="http://rduinostar.com/documentacion/general/resistencias-pull-up-y-pull-down/" target="_blank">resistencia pull-up</a> (entre 3-6 kΩ) y un <a title="Condensador o capacitor" href="http://rduinostar.com/documentacion/componentes/condensador-o-capacitor/" target="_blank">condensador</a> de filtrado (normalmente de 100 nF).</li>
</ul>
<figure id="attachment_1691" aria-describedby="caption-attachment-1691" style="width: 500px" class="wp-caption aligncenter"><a href="http://rduinostar.com/wp-content/uploads/2014/12/encapsulados-DHT22-AM2302.jpg" rel="lightbox[1686]"><img fetchpriority="high" decoding="async" class="wp-image-1691" src="http://rduinostar.com/wp-content/uploads/2014/12/encapsulados-DHT22-AM2302.jpg" alt="Encapsulados sensor DHT22-AM2302" width="500" height="375" srcset="https://rduinostar.com/wp-content/uploads/2014/12/encapsulados-DHT22-AM2302.jpg 800w, https://rduinostar.com/wp-content/uploads/2014/12/encapsulados-DHT22-AM2302-300x225.jpg 300w" sizes="(max-width: 500px) 100vw, 500px" /></a><figcaption id="caption-attachment-1691" class="wp-caption-text">Diferentes encapsulados del DHT22</figcaption></figure>
<p style="text-align: center;"> <script type="text/javascript"><!--
				google_ad_client = "ca-pub-2285568471490299";
				/* rDuinoStar medio-post */
				google_ad_slot = "3593771250";
				google_ad_width = 468;
				google_ad_height = 60;
				//-->
				</script><br />
				<script type="text/javascript"
				src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
				</script></p>
<h3>Prestaciones</h3>
<p>Sus <strong>principales características generales</strong> son:</p>
<ul class="checklist">
<li>Alimentación: 3.3v &#8211; 5.5v, tomando como valor recomendado 5v.</li>
<li>Resolución decimal, es decir, los valores tanto para  humedad como para temperatura serán números con una cifra decimal.</li>
<li>Tiempo de muestreo: 2 segundos, es decir, sólo nos puede ofrecer datos cada 2 segundos.</li>
</ul>
<p>En cuanto a sus <strong>prestaciones leyendo temperatura</strong>:</p>
<ul class="checklist">
<li>Rango de valores desde -40ºC hasta 80ºC de temperatura.</li>
<li>Precisión: ±0.5ºC, ±1ºC como máximo en condiciones adversas.</li>
<li>Tiempo de respuesta: &lt;10 segundos, es decir, de media, tarda menos de 10 segundos en reflejar un cambio de temperatura real en el entorno.</li>
</ul>
<p>Si hablamos de sus <strong>prestaciones leyendo humedad relativa</strong>:</p>
<ul class="checklist">
<li>Rango de valores desde 0% hasta 99.9% de Humedad Relativa.</li>
<li>Precisión: ±2%RH, a una temperatura de 25ºC.</li>
<li>Tiempo de respuesta: &lt;5 segundos, es decir, de media, tarda menos de 5 segundos en reflejar un cambio de humedad relativa real en el entorno. Además, para darse esta afirmación, los tests indicaron que la velocidad del aire debe ser de 1 m/s.</li>
</ul>
<p style="text-align: justify;">Nuevamente estamos ante un <strong>sensor modesto</strong>, pero que ya nos es válido para un montón de proyectos caseros y semi profesionales. Siempre y cuando no se requiera de una medición constante ni milimétrica, el <strong>sensor DHT22</strong> es un fiel candidato.</p>
<h3 style="text-align: justify;">Conexión</h3>
<p style="text-align: justify;">Como siempre que nos encontramos con componentes encapsulados o presoldados en una placa, una conexión va a estar condicionada por la cantidad de elementos -componentes- que ya forman parte del encapsulado que hemos adquirido. Una conexión totalmente funcional, contando con que nuestro DHT22 no trae ningún elemento extra es la siguiente:</p>
<figure id="attachment_1694" aria-describedby="caption-attachment-1694" style="width: 500px" class="wp-caption aligncenter"><a href="http://rduinostar.com/wp-content/uploads/2014/12/dht22-esquema-conexion.jpg" rel="lightbox[1686]"><img decoding="async" class="wp-image-1694" src="http://rduinostar.com/wp-content/uploads/2014/12/dht22-esquema-conexion.jpg" alt="Esquema conexión DHT22-AM2302" width="500" height="284" srcset="https://rduinostar.com/wp-content/uploads/2014/12/dht22-esquema-conexion.jpg 582w, https://rduinostar.com/wp-content/uploads/2014/12/dht22-esquema-conexion-300x170.jpg 300w" sizes="(max-width: 500px) 100vw, 500px" /></a><figcaption id="caption-attachment-1694" class="wp-caption-text">Esquema conexión DHT22</figcaption></figure>
<p style="text-align: justify;">De forma opcional podemos filtrar la alimentación colocando un condensador de, por ejemplo, 100 nF, entre VDD y GND.</p>
<p style="text-align: justify;">Así es que ya sabéis, a la hora de comprar y montar vuestro DHT22 tened en cuenta si debéis añadir una resistencia pull-up o no añadir nada.</p>
<h3 style="text-align: justify;">Datasheet</h3>
<p style="text-align: center;"><a title="Ir al datasheet del sensor DHT22/AM2302" href="http://issuu.com/rduinostar/docs/dht22-am2302-datasheet-manual" target="_blank"><strong>Como es constumbre, haciendo click aquí podéis descubrir más detalles técnicos y del protocolo de comunicación del DHT22 en su datasheet completo.</strong></a></p>
<p>La entrada <a href="https://rduinostar.com/documentacion/datasheets/dht22-caracteristicas-am2302/">Sensor de temperatura y humedad DHT22 o AM2302</a> aparece primero en <a href="https://rduinostar.com">rDuinoStar | Arduino España</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://rduinostar.com/documentacion/datasheets/dht22-caracteristicas-am2302/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Control de flujo II &#8211; while, do&#8230;while, break y continue</title>
		<link>https://rduinostar.com/documentacion/programacion-arduino/control-de-flujo-ii/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=control-de-flujo-ii</link>
					<comments>https://rduinostar.com/documentacion/programacion-arduino/control-de-flujo-ii/#comments</comments>
		
		<dc:creator><![CDATA[CiDsTaR]]></dc:creator>
		<pubDate>Tue, 18 Nov 2014 21:00:38 +0000</pubDate>
				<category><![CDATA[Programación]]></category>
		<category><![CDATA[break]]></category>
		<category><![CDATA[codigo fuente]]></category>
		<category><![CDATA[continue]]></category>
		<category><![CDATA[control]]></category>
		<category><![CDATA[control de flujo]]></category>
		<category><![CDATA[do]]></category>
		<category><![CDATA[flujo]]></category>
		<category><![CDATA[while]]></category>
		<guid isPermaLink="false">http://rduinostar.com/?p=1641</guid>

					<description><![CDATA[<p>En la primera parte de esta bilogía dedicada al control de flujo pudimos ver las sentencias if, if&#8230;else y for. En esta segunda parte aumentaremos la familia de los bucles, esas sentencias cuya función es repetir un bloque de código siempre que una condición se cumpla, con los bucles while y do&#8230;while. Además, veremos formas de alterar &#8230;</p>
<p>La entrada <a href="https://rduinostar.com/documentacion/programacion-arduino/control-de-flujo-ii/">Control de flujo II &#8211; while, do&#8230;while, break y continue</a> aparece primero en <a href="https://rduinostar.com">rDuinoStar | Arduino España</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p style="text-align: justify;">En la <a title="Control de flujo I – if, if…else y for" href="http://rduinostar.com/documentacion/programacion-arduino/control-de-flujo-i/" target="_blank">primera parte de esta bilogía</a> dedicada al <strong>control de flujo</strong> pudimos ver las sentencias<strong> <em>if</em></strong>, <strong><em>if&#8230;else</em></strong> y<strong> <em>for</em></strong>. En esta segunda parte aumentaremos la familia de los bucles, esas sentencias cuya función es repetir un bloque de código siempre que una condición se cumpla, con los bucles <strong><em>while</em></strong> y <strong><em>do&#8230;while</em></strong>. Además, veremos formas de alterar el comportamiento natural de los bucles con las sentencias <strong><em>break</em> </strong>y <strong><em>continue</em></strong>.</p>
<p style="text-align: justify;"><span id="more-1641"></span></p>
<h3>while</h3>
<p style="text-align: justify;">Con while aumentamos la familia de los bucles para el<strong> control de flujo de un programa</strong>, ya que ejecuta de forma continua un bloque de código mientras la condición de cabecera se cumpla. Al igual que pasaba con el bucle for, la condición se evalúa con cada repetición del bloque de código hasta que se deje de cumplir, continuando entonces con el código que haya después del bucle while.</p>
<pre class="urvanov-syntax-highlighter-plain-tag">while (valorAComparar ?? valorReferencia) {
	codigoAEjecutar();
}</pre>
<p style="text-align: justify;">Podemos realizar la misma impresión de los números enteros desde el 0 hasta el 9 por el puerto serie que hacíamos con el bucle for, esta vez haciendo uso de un bucle while:</p>
<pre class="urvanov-syntax-highlighter-plain-tag">// Bucle while para imprimir los enteros de 0 a 9
int i = 0;
while (i &lt; 10) {		// Evaluamos condición
	Serial.println(i);	// Imprimimos número
	i++;			// Modificamos valores tomados 
				// en cuenta en la condición.
}</pre>
<h3>do&#8230;while</h3>
<p style="text-align: justify;">Terminamos los bucles con una modificación del bucle while en el que la condición se evalúa al final del bloque de código entre llaves. Por tanto, el bule do&#8230;while no deja de ser un bucle while que se va a ejecutar al menos una vez.</p>
<pre class="urvanov-syntax-highlighter-plain-tag">do {
	codigoaEjecutar();
} while (valorAComparar ?? valorReferencia);</pre>
<p style="text-align: justify;">Para no variar, implementemos el ejemplo que estamos utilizando a lo largo del post con el bucle do&#8230;while, imprimiendo los enteros que van desde el 0 hasta el 9:</p>
<pre class="urvanov-syntax-highlighter-plain-tag">int i = 0;
do {
	Serial.println(i);
	i++;
} while (i &lt; 10);</pre>
<h3>«Control» del control de flujo &#8211; Sentencias break y continue</h3>
<p style="text-align: justify;">Como ya comentamos en la primera parte dedicada al control de flujo de un sketch Arduino, hay situaciones en las cuales necesitamos de alguna herramienta extra, bien para evitar acorralar nuestro sketch en un bucle infinito, o bien para añadir algo de complejidad a nuestro sketch.</p>
<p style="text-align: justify;"><strong>La sentencia break</strong> aborta cualquier instrucción de control de flujo vista hasta ahora. Cuando nuestro programa ejecuta, por ejemplo, un bucle for, y llegado a un punto necesita abandonarlo, sea por la razón que sea, incluiremos una sentencia break, y el programa continuará su ejecución justo después del bloque donde la hemos incluido.</p>
<p style="text-align: justify;">Podemos verlo claro con un ejemplo rescatado de la primera parte. El código del que partíamos era tal que así:</p>
<pre class="urvanov-syntax-highlighter-plain-tag">int i = 0;
for ( ; ; ) {
	if (i &lt; 10) {
		Serial.println(i);
	}
	i++;
}</pre>
<p style="text-align: justify;">Nuestro código va a imprimir por el puerto serie lo deseado, pero el bucle seguirá ejecutándose de forma infinita hasta producirse un overflow, y volverá a empezar de cero. Para evitarlo, podemos colocar una<strong> sentencia break</strong> en el momento en el que la condición se deje de cumplir:</p>
<pre class="urvanov-syntax-highlighter-plain-tag">int i = 0;
for ( ; ; ) {
	if (i &lt; 10) {
		Serial.println(i);
	} else {
		break;
	}
	i++;
}</pre>
<p style="text-align: justify;"><strong>La sentencia continue</strong>, por su parte, aborta la ejecución actual dentro de un bucle de control de flujo. A diferencia de break, el bucle no se abandona, sino que se seguirá ejecutando mientras la condición se cumpla.</p>
<p style="text-align: justify;">Imaginemos que vamos a imprimir, como antes, los números enteros desde el 0 hasta el 9, pero solo queremos imprimir aquellos que son divisibles por 2. Podemos incluir, en este caso, una sentencia continue, siempre que el número correspondiente a una ejecución del bucle no sea divisible por 2:</p>
<pre class="urvanov-syntax-highlighter-plain-tag">for (int i = 0; i &lt; 10; i++) {
	// Operador módulo, calcula el resto de dividir i/2
	if (i % 2 != 0) {
		continue;
	}
	Serial.println(i);
}</pre>
<p style="text-align: justify;">Como veis, el lenguaje nos ofrece <strong>multitud de herramientas</strong> para simplificar y variar la ejecución de parte de un sketch, de manera que podemos adaptar nuestro código a nuestras necesidades y dar un rodeo a los problemas que se nos plantean.</p>
<p style="text-align: justify;">Esperamos queeste artículo os sirva de ayuda a la hora de escribir vuestros programas.</p>
<p>La entrada <a href="https://rduinostar.com/documentacion/programacion-arduino/control-de-flujo-ii/">Control de flujo II &#8211; while, do&#8230;while, break y continue</a> aparece primero en <a href="https://rduinostar.com">rDuinoStar | Arduino España</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://rduinostar.com/documentacion/programacion-arduino/control-de-flujo-ii/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>Control de flujo I &#8211; if, if&#8230;else y for</title>
		<link>https://rduinostar.com/documentacion/programacion-arduino/control-de-flujo-i/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=control-de-flujo-i</link>
					<comments>https://rduinostar.com/documentacion/programacion-arduino/control-de-flujo-i/#comments</comments>
		
		<dc:creator><![CDATA[CiDsTaR]]></dc:creator>
		<pubDate>Tue, 11 Nov 2014 00:30:05 +0000</pubDate>
				<category><![CDATA[Programación]]></category>
		<category><![CDATA[codigo fuente]]></category>
		<category><![CDATA[control]]></category>
		<category><![CDATA[control de flujo]]></category>
		<category><![CDATA[else]]></category>
		<category><![CDATA[flujo]]></category>
		<category><![CDATA[for]]></category>
		<category><![CDATA[if]]></category>
		<guid isPermaLink="false">http://rduinostar.com/?p=1468</guid>

					<description><![CDATA[<p>El control de flujo permite variar, en un número ilimitado de ocasiones a lo largo de un programa, el orden «natural» de ejecución del código, omitiendo, ejecutando, o repitiendo sentencias o bloques de sentencias en función de una o varias condiciones. Las instrucciones para el control de flujo son comunes a muchos lenguajes de programación, &#8230;</p>
<p>La entrada <a href="https://rduinostar.com/documentacion/programacion-arduino/control-de-flujo-i/">Control de flujo I &#8211; if, if&#8230;else y for</a> aparece primero en <a href="https://rduinostar.com">rDuinoStar | Arduino España</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p style="text-align: justify;">El <strong>control de flujo permite variar</strong>, en un número ilimitado de ocasiones a lo largo de un programa, <strong>el orden «natural» de ejecución del código</strong>, omitiendo, ejecutando, o repitiendo sentencias o bloques de sentencias en función de una o varias <strong>condiciones</strong>. Las instrucciones para el control de flujo son comunes a muchos lenguajes de programación, y son <strong><em>if</em></strong>,<strong><em> if&#8230;else</em></strong>, <strong><em>for</em></strong>, <strong><em>while</em></strong>, y <strong><em>do&#8230;while.</em> </strong>Además, veremos un par de sentencias capaces de variar el comportamiento de estas instrucciones: <em><strong>break</strong></em> y <em><strong>continue</strong></em>.</p>
<p><span id="more-1468"></span></p>
<h3>if</h3>
<p style="text-align: justify;">Realiza una comprobación de una condición. En el caso de que esta condición se cumpla, el código escrito entre llaves se ejecuta. Si, por el contrario, la condición entre paréntesis no se cumple, el código entre llaves es ignorado y el programa sigue ejecutándose normalmente.</p>
<pre class="urvanov-syntax-highlighter-plain-tag">if (valorAComparar ?? valorDeReferencia) {
	instruccionesAEjecutar();
}</pre>
<p style="text-align: justify;">Como se puede apreciar en el código anterior, la comparación se realiza con el operador ??, que se ha de sustituir por cualquier operador lógico o cualquier operador de comparación. Hay que tener cuidado con el operador de comparación<em> igual que (==)</em>, pues se suele confundir con el operador de asignación<em> igual (=)</em>. Veámos algunos ejemplos:</p>
<pre class="urvanov-syntax-highlighter-plain-tag">// Condición por la cual queremos que el código se ejecute
// si una variable 'x' es mayor que cero
if (x &gt; 0) {
  digitalWrite(ledPin, HIGH);
  delay(1000);
  digitalWrite(ledPin, LOW);
}</pre>
<pre class="urvanov-syntax-highlighter-plain-tag">// Condición por la cual queremos que el código se ejecute
// si una variable 'x' es igual a cero

// Sentendia mal construida. Lo que se está haciendo es igualar 
// una variable a cero en lugar de compararlas
if (x = 0) {
  digitalWrite(ledPin, HIGH);
  delay(1000);
  digitalWrite(ledPin, LOW);
}

// Sentencia bien construida
if (x == 0) {
  digitalWrite(ledPin, HIGH);
  delay(1000);
  digitalWrite(ledPin, LOW);
}</pre>
<p style="text-align: justify;">Incluso podemos<strong> establecer más de una condición</strong>:</p>
<pre class="urvanov-syntax-highlighter-plain-tag">// Condición por la cual queremos que el código se ejecute 
// si una variable 'x' es mayor que cero, y además otra 
// variable 'y' es menor que 3.
if (x &gt; 0 &amp;&amp; y &lt; 3) {
  digitalWrite(ledPin, HIGH);
  delay(1000);
  digitalWrite(ledPin, LOW);
}</pre>
<h3>if&#8230;else</h3>
<p style="text-align: justify;">Complementa en cierto modo al control de flujo que ofrece la sentencia<em> if</em>, permitiendo ejecutar un bloque de código en el caso de que se cumpla la condición entre paréntesis, y otro bloque de código si la condición no se cumple. Estos dos bloques de código son mutuamente excluyentes, por lo que nunca se podrán ejecutar los dos a la vez.</p>
<pre class="urvanov-syntax-highlighter-plain-tag">if (valorAComparar ?? valorDeReferencia) {
	instruccionesSiCondicionSeCumple;
} else {
	instruccionesSiCondicionNoSeCumple;
}</pre>
<p style="text-align: justify;">Podemos<strong> anidar varias sentencias if&#8230;else</strong>, siendo todas ellas, a su vez, mutuamente excluyentes:</p>
<pre class="urvanov-syntax-highlighter-plain-tag">if (x &lt;= 0) {
	delay(100);
} else if (x &lt; 100) {
	delay(250);
} else if (x &lt;= 200) {
	delay(500);
} else {
	delay(1000);
}</pre>
<p style="text-align: justify;">Analicemos el código anterior, donde tenemos 4 sentencias mutuamente excluyentes que actuarán como <strong>control de flujo en función de distintas condiciones</strong>:</p>

			<span id="urvanov-syntax-highlighter-6a2d9af74be0d020237352" class="urvanov-syntax-highlighter-syntax urvanov-syntax-highlighter-syntax-inline  crayon-theme-classic crayon-theme-classic-inline urvanov-syntax-highlighter-font-monaco" style="font-size: 12px !important; line-height: 15px !important;font-size: 12px !important;"><span class="crayon-pre urvanov-syntax-highlighter-code" style="font-size: 12px !important; line-height: 15px !important;font-size: 12px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><span class="crayon-e">delay</span><span class="crayon-sy">(</span><span class="crayon-cn">100</span><span class="crayon-sy">)</span><span class="crayon-sy">;</span></span></span>  se ejecutará si:</p>
<ul class="checklist">
<li> x menor o igual que 0.</li>
</ul>

			<span id="urvanov-syntax-highlighter-6a2d9af74be11509905201" class="urvanov-syntax-highlighter-syntax urvanov-syntax-highlighter-syntax-inline  crayon-theme-classic crayon-theme-classic-inline urvanov-syntax-highlighter-font-monaco" style="font-size: 12px !important; line-height: 15px !important;font-size: 12px !important;"><span class="crayon-pre urvanov-syntax-highlighter-code" style="font-size: 12px !important; line-height: 15px !important;font-size: 12px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><span class="crayon-e">delay</span><span class="crayon-sy">(</span><span class="crayon-cn">250</span><span class="crayon-sy">)</span><span class="crayon-sy">;</span></span></span>  se ejecutará si:</p>
<ul class="checklist">
<li>x mayor que 0, derivado de que la anterior condición no se ha cumplido.</li>
<li>x menor que 100.</li>
</ul>

			<span id="urvanov-syntax-highlighter-6a2d9af74be15448957099" class="urvanov-syntax-highlighter-syntax urvanov-syntax-highlighter-syntax-inline  crayon-theme-classic crayon-theme-classic-inline urvanov-syntax-highlighter-font-monaco" style="font-size: 12px !important; line-height: 15px !important;font-size: 12px !important;"><span class="crayon-pre urvanov-syntax-highlighter-code" style="font-size: 12px !important; line-height: 15px !important;font-size: 12px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><span class="crayon-e">delay</span><span class="crayon-sy">(</span><span class="crayon-cn">500</span><span class="crayon-sy">)</span><span class="crayon-sy">;</span></span></span>  se ejecutará si:</p>
<ul class="checklist">
<li>x mayor que 0 y  mayor o igual que 100, derivado de que las anteriores condiciones no se han cumplido.</li>
<li>x menor o igual que 200.</li>
</ul>

			<span id="urvanov-syntax-highlighter-6a2d9af74be18873137890" class="urvanov-syntax-highlighter-syntax urvanov-syntax-highlighter-syntax-inline  crayon-theme-classic crayon-theme-classic-inline urvanov-syntax-highlighter-font-monaco" style="font-size: 12px !important; line-height: 15px !important;font-size: 12px !important;"><span class="crayon-pre urvanov-syntax-highlighter-code" style="font-size: 12px !important; line-height: 15px !important;font-size: 12px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><span class="crayon-e">delay</span><span class="crayon-sy">(</span><span class="crayon-cn">1000</span><span class="crayon-sy">)</span><span class="crayon-sy">;</span></span></span>  se ejecutará si:</p>
<ul class="checklist">
<li>x mayor que 200, ya que ninguna de las anteriores condiciones se han cumplido.</li>
</ul>
<p style="text-align: center;"><script type="text/javascript"><!--
				google_ad_client = "ca-pub-2285568471490299";
				/* rDuinoStar medio-post */
				google_ad_slot = "3593771250";
				google_ad_width = 468;
				google_ad_height = 60;
				//-->
				</script><br />
				<script type="text/javascript"
				src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
				</script></p>
<h3>for</h3>
<p style="text-align: justify;">Entramos en la parte del <strong>control de flujo</strong> relativa a la repetición de un bloque de código siempre que se cumpla una condición. Así pues, siempre que nos encontremos con una instrucción <em>for</em> -también llamado <strong><em>bucle for</em></strong>-, el código encerrado entre llaves se repetirá siempre que se cumpla la condición. Con cada repetición del bloque de código, la condición vuelve a ser evaluada.</p>
<pre class="urvanov-syntax-highlighter-plain-tag">for (inicialización; condición; expresión) {
  codigoAEjecutar();
}</pre>
<p style="text-align: justify;">Esta estructura está formada siempre por tres campos separados entre sí por un punto y coma. La <strong>inicialización</strong> se produce una sola vez y sirve para establecer un estado inicial a partir del cual empezar a evaluar la condición. La <strong>condición</strong>, como ya hemos dicho, se re-evalúa con cada repetición del bucle. Entonces, puede resultar obvio que siempre que se ejecute el bloque de código hay que variar alguna parte de la condición, evitando entrar en el denominado <strong>bucle infinito</strong>, donde un bloque de código se repite de forma infinita. Con tal fin, tenemos la <strong>expresión</strong> del tercer campo, una pieza de código que se va a ejecutar <span style="text-decoration: underline;">después</span> de que lo haga el bloque de código encerrado entre llaves.</p>
<p style="text-align: justify;">En el siguiente ejemplo vemos un caso muy simple pero práctico para imprimir por el puerto serie los números del 0 al 9:</p>
<pre class="urvanov-syntax-highlighter-plain-tag">// Para imprimir por consola los números enteros del 0 al 9 
// podemos ir por el camino clásico
Serial.println(0);
Serial.println(1);
Serial.println(2);
Serial.println(3);
Serial.println(4);
Serial.println(5);
Serial.println(6);
Serial.println(7);
Serial.println(8);
Serial.println(9);

// Pero podemos agilizarlo con un bucle for
for (int i = 0; i &lt; 10; i++) {
 Serial.println(i); 
}</pre>
<p style="text-align: justify;">Pero aquí no acaba la cosa. De los 3 campos del bucle for, podemos obviar tantos como queramos, siempre y cuando incluyamos los puntos y coma. Así, podemos hacer la inicialización antes del bucle  (o no hacerla), evaluar la condición dentro del bucle, o modificar la condición dentro del bloque entre llaves.</p>
<pre class="urvanov-syntax-highlighter-plain-tag">// Podemos obviar la inicialización
int i = 0;
for ( ; i &lt; 10; i++) {
	Serial.println(i);
}

// Si quitamos la expresión y la inicialización
int i = 0;
for ( ; i &lt; 10 ; ) {
	Serial.println(i);
	i = i + 1;
}

// Si quitamos los tres campos, tenemos un bonito bucle infinito.
// Veremos en la segunda parte como arreglarlo
int i = 0;
for ( ; ; ) {
	if (i &lt; 10) {
		Serial.println(i);
	}
	i = i + 1;
}</pre>
<p style="text-align: justify;">Nos vemos en la<a title="Control de flujo II – while, do…while, break y continue" href="http://rduinostar.com/documentacion/programacion-arduino/control-de-flujo-ii/" target="_blank" rel="noopener noreferrer"> segunda parte</a> de la bilogía destinada al <strong>control de flujo</strong>, donde explicaremos conceptos tan interesantes como los bucles <em><strong>while</strong></em> y <em><strong>do&#8230;while</strong></em>, y las sentencias <em><strong>break</strong> </em>y <em><strong>continue</strong></em>.</p>
<p>La entrada <a href="https://rduinostar.com/documentacion/programacion-arduino/control-de-flujo-i/">Control de flujo I &#8211; if, if&#8230;else y for</a> aparece primero en <a href="https://rduinostar.com">rDuinoStar | Arduino España</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://rduinostar.com/documentacion/programacion-arduino/control-de-flujo-i/feed/</wfw:commentRss>
			<slash:comments>5</slash:comments>
		
		
			</item>
		<item>
		<title>Protoboard y placas perforadas PCB</title>
		<link>https://rduinostar.com/documentacion/general/protoboard-tipos-placas-perforadas-pcb/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=protoboard-tipos-placas-perforadas-pcb</link>
					<comments>https://rduinostar.com/documentacion/general/protoboard-tipos-placas-perforadas-pcb/#respond</comments>
		
		<dc:creator><![CDATA[CiDsTaR]]></dc:creator>
		<pubDate>Mon, 20 Oct 2014 17:00:02 +0000</pubDate>
				<category><![CDATA[General]]></category>
		<category><![CDATA[breadboard]]></category>
		<category><![CDATA[pcb]]></category>
		<category><![CDATA[perfboard]]></category>
		<category><![CDATA[placa perforada]]></category>
		<category><![CDATA[protoboard]]></category>
		<category><![CDATA[stripboard]]></category>
		<guid isPermaLink="false">http://rduinostar.com/?p=1587</guid>

					<description><![CDATA[<p>Cuando hablamos de las placas para prototipos y test en el artículo Protoboard: Qué es y cómo funciona, comentamos que toda breadboard tiene una conexiones internas debajo de la carcasa plástica. Estas conexiones vienen predefinidas por lo que se denomina una placa perforada. Empecemos recordando las conexiones de una protoboard. Como vemos en la imagen y &#8230;</p>
<p>La entrada <a href="https://rduinostar.com/documentacion/general/protoboard-tipos-placas-perforadas-pcb/">Protoboard y placas perforadas PCB</a> aparece primero en <a href="https://rduinostar.com">rDuinoStar | Arduino España</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p style="text-align: justify;">Cuando hablamos de las placas para prototipos y test en el artículo <a title="Protoboard – ¿Qué es y cómo funciona?" href="http://rduinostar.com/documentacion/general/protoboard-que-es-y-como-funciona/" target="_blank">Protoboard: Qué es y cómo funciona</a>, comentamos que <strong>toda <em>breadboard</em> tiene una conexiones internas debajo</strong> de la carcasa plástica. Estas conexiones vienen predefinidas por lo que se denomina una <strong>placa perforada</strong>. Empecemos recordando las conexiones de una protoboard.</p>
<p style="text-align: justify;"><span id="more-1587"></span></p>
<figure id="attachment_460" aria-describedby="caption-attachment-460" style="width: 500px" class="wp-caption aligncenter"><a href="http://rduinostar.com/wp-content/uploads/2012/10/conexiones-protoboard-breadboard.jpg" rel="lightbox[1587]"><img decoding="async" class="wp-image-460" title="Conexiones en protoboard" src="http://rduinostar.com/wp-content/uploads/2012/10/conexiones-protoboard-breadboard.jpg" alt="Esquema de conexiones de una protoboard" width="500" height="224" srcset="https://rduinostar.com/wp-content/uploads/2012/10/conexiones-protoboard-breadboard.jpg 800w, https://rduinostar.com/wp-content/uploads/2012/10/conexiones-protoboard-breadboard-300x134.jpg 300w" sizes="(max-width: 500px) 100vw, 500px" /></a><figcaption id="caption-attachment-460" class="wp-caption-text">Conexiones en protoboard</figcaption></figure>
<p style="text-align: center;">
<p style="text-align: justify;">Como vemos en la imagen y comentamos en su día, las líneas azules representan un esquema de conexiones que viene realizado internamente en la placa de prototipado.</p>
<p style="text-align: justify;">A pesar de que un montaje en una placa perforada sin ningún diseño complejo puede ser definitivo, ya que <strong>los componentes y las conexiones entre ellos quedan soldados de forma permanente</strong> hasta que nos decidamos a desoldarlos, estas<strong> placas perforadas</strong> son más utilizadas como paso previo a un montaje final en placas impresas con circuitos muy caprichosos. Tenemos, de forma general, tres tipos de placas perforadas:</p>
<p style="text-align: center;"><script type="text/javascript"><!--
				google_ad_client = "ca-pub-2285568471490299";
				/* rDuinoStar medio-post */
				google_ad_slot = "3593771250";
				google_ad_width = 468;
				google_ad_height = 60;
				//-->
				</script><br />
				<script type="text/javascript"
				src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
				</script></p>
<h3 style="text-align: justify;">Placas perforadas sin patrón o perfboard</h3>
<p style="text-align: justify;">Son placas con perforaciones a lo largo de toda su superficie. Cada perforación está rodeada por un anillo de material conductor, aunque ninguna de ellas está conectada con otra perforación de la placa.</p>
<h3 style="text-align: justify;">Placas perforadas con conexiones paralelas o stripboard</h3>
<p style="text-align: justify;">Al igual que las anteriores, tienen perforaciones a lo largo de toda su superficie. Del mismo modo, cada perforación está rodeada por un anillo de material conductor.</p>
<p style="text-align: justify;">A diferencia de las placas perfboard, las<strong> perforaciones van conectadas</strong> o bien por filas, o bien por columnas.</p>
<h3 style="text-align: justify;">Placas perforada con patrones</h3>
<p style="text-align: justify;">Como no podía ser de otra manera, también tienen perforaciones a lo largo de toda su superficie y cuentan con un anillo de material conductor.</p>
<p style="text-align: justify;">Su principal diferencia es, sin duda, el patrón que siguen las perforaciones. Es decir, el esquema de conexiones pre soldadas. Aunque no es fijo y suele cambiar, la mayoría de veces incluyen varias líneas de conexiones en una dirección, con conexiones en dirección perpendicular alrededor, del mismo modo en que vienen pre conectadas las perforaciones de una <a title="Protoboard – ¿Qué es y cómo funciona?" href="http://rduinostar.com/documentacion/general/protoboard-que-es-y-como-funciona/" target="_blank">protoboard</a>.</p>
<figure id="attachment_1600" aria-describedby="caption-attachment-1600" style="width: 600px" class="wp-caption aligncenter"><a href="http://rduinostar.com/wp-content/uploads/2014/10/placas-perforadas-tipos-pcb.jpg" rel="lightbox[1587]"><img loading="lazy" decoding="async" class="wp-image-1600" title="Tipos de placas perforadas PCB" src="http://rduinostar.com/wp-content/uploads/2014/10/placas-perforadas-tipos-pcb.jpg" alt="Tipos de placas perforadas PCB" width="600" height="450" srcset="https://rduinostar.com/wp-content/uploads/2014/10/placas-perforadas-tipos-pcb.jpg 800w, https://rduinostar.com/wp-content/uploads/2014/10/placas-perforadas-tipos-pcb-300x225.jpg 300w" sizes="(max-width: 600px) 100vw, 600px" /></a><figcaption id="caption-attachment-1600" class="wp-caption-text">Tipos de placas perforadas en función de su patrón</figcaption></figure>
<p style="text-align: center;">
<p style="text-align: justify;">Algunas características comunes y consejos para su uso se pueden resumir en una pequeña lista que, esperamos, os sirva de guía:</p>
<ul class="checklist">
<li>Las placas perforadas están compuestas en su mayoría por <a title="Baquelita - Wikipedia" href="http://es.wikipedia.org/wiki/Baquelita" target="_blank">baquelita</a> o <a title="Fibra de vidrio - Wikipedia" href="http://es.wikipedia.org/wiki/Fibra_de_vidrio" target="_blank">fibra de vidrio</a>.</li>
<li>No hay que preocuparse por el tamaño de las perforaciones, pues casi todas tienen una distancia entre perforaciones de 2,54 mm, espacio estándar entre patillas de circuitos integrados.</li>
<li>Debemos ajustar nuestro diseño al tipo de placa. Para diseños más avanzados se suele emplear de forma más frecuente las <strong>placas perforadas sin patrón o perfbroad</strong>, aunque esto no es siempre así.</li>
<li>Si para un proyecto nos viene mejor una <strong>stripboard</strong> pero llegamos a un punto en el que una conexión nos estropea el diseño, siempre <strong>podemos cortar las pistas</strong> -o conexiones entre perforaciones- con un cutter, bisturí, etc&#8230;</li>
<li>Seguiremos la mayoría de recomendaciones que ya listamos para el uso de una <strong>protoboard</strong>, es decir, cables lo más cortos posibles, colores agrupados por funcionalidad -alimentación, gnd&#8230;-, diseños limpios y ordenados, apoyo de multímetros para verificar conexiones, etc&#8230;</li>
</ul>
<p style="text-align: justify;">Para terminar y si por lo que sea no ha quedado claro, una placa perforada común podría situarse en la línea del tiempo entre un montaje de un prototipo en una breadboard y un montaje en una placa con circuitos impresos profesional.</p>
<p>La entrada <a href="https://rduinostar.com/documentacion/general/protoboard-tipos-placas-perforadas-pcb/">Protoboard y placas perforadas PCB</a> aparece primero en <a href="https://rduinostar.com">rDuinoStar | Arduino España</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://rduinostar.com/documentacion/general/protoboard-tipos-placas-perforadas-pcb/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Arduino Yún &#8211; Una vista más en detalle</title>
		<link>https://rduinostar.com/documentacion/placas-arduino/arduino-yun-en-detalle/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=arduino-yun-en-detalle</link>
					<comments>https://rduinostar.com/documentacion/placas-arduino/arduino-yun-en-detalle/#comments</comments>
		
		<dc:creator><![CDATA[CiDsTaR]]></dc:creator>
		<pubDate>Mon, 03 Feb 2014 17:23:22 +0000</pubDate>
				<category><![CDATA[Placas Arduino]]></category>
		<category><![CDATA[Arduino]]></category>
		<category><![CDATA[hardware]]></category>
		<category><![CDATA[yún]]></category>
		<guid isPermaLink="false">http://rduinostar.com/?p=1558</guid>

					<description><![CDATA[<p>Cuando hemos hablado del nuevo Arduino Yún hemos pasado por alto ciertos aspectos que debemos tener en cuenta a la hora de incluirlo en nuestros proyectos. En este artículo veremos este nuevo Arduino un poco más detenidamente, dejando de lado la parte de programación y centrándonos en el hardware. Lo que ya sabemos es que &#8230;</p>
<p>La entrada <a href="https://rduinostar.com/documentacion/placas-arduino/arduino-yun-en-detalle/">Arduino Yún &#8211; Una vista más en detalle</a> aparece primero en <a href="https://rduinostar.com">rDuinoStar | Arduino España</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p style="text-align: justify;">Cuando hemos hablado del nuevo <strong>Arduino Yún</strong> hemos pasado por alto ciertos aspectos que debemos tener en cuenta a la hora de incluirlo en nuestros proyectos. En este artículo veremos este nuevo <strong>Arduino</strong> un poco más detenidamente, dejando de lado la parte de programación y centrándonos en el hardware.</p>
<p style="text-align: justify;"><span id="more-1558"></span></p>
<p style="text-align: justify;">Lo que ya sabemos es que estamos ante un dispositivo <strong>Arduino</strong> basado en un ATmega32u4 y un Atheros AR9331 (podéis ver el resumen de características técnicas en el <a title="Arduino Yún – Arduino, ahora con Linux y WiFi" href="http://rduinostar.com/noticias/arduino-yun-linux-wifi/" target="_blank">artículo de la presentación</a>). La incorporación del AR9331 es la encargada de «administrar» una de las innovaciones del <strong>Yún</strong>: una distribución <strong>Linux</strong> basada en OpenWRT llamada <strong>Linino</strong>. La otra gran novedad la encontramos en una <strong>interfaz WiFi</strong> incorporada de serie en la placa. El resto de componentes se resume en 20 pines digitales (7 de ellos se pueden usar como salidas digitales con PWM y 12 de ellos como entradas analógicas), un conector microUSB, un USB-A, un puerto para microSD y un puerto Ethernet.</p>
<p style="text-align: justify;"><div class="box info  aligncenter"><div class="box-inner-block"><i class="fa tie-shortcode-boxicon"></i>
			Si compráis un <strong>Arduino Yún fuera de España</strong>, puede que en un principio no funcione el WiFi. Esto es así porque, según el país, la venta de dispositivos con una interfaz WiFi funcional requiere la aprobación de los gobiernos, por lo que algunos vendedores lo que hace es ejecutar un script para desactivarlo.
			</div></div>
<figure id="attachment_1564" aria-describedby="caption-attachment-1564" style="width: 600px" class="wp-caption aligncenter"><a href="http://rduinostar.com/wp-content/uploads/2014/02/arduino-yun-esquema.png" rel="lightbox[1558]"><img loading="lazy" decoding="async" class="wp-image-1564" src="http://rduinostar.com/wp-content/uploads/2014/02/arduino-yun-esquema.png" alt="Esquema Arduino Yún" width="600" height="400" srcset="https://rduinostar.com/wp-content/uploads/2014/02/arduino-yun-esquema.png 650w, https://rduinostar.com/wp-content/uploads/2014/02/arduino-yun-esquema-300x199.png 300w" sizes="(max-width: 600px) 100vw, 600px" /></a><figcaption id="caption-attachment-1564" class="wp-caption-text">Partes de Arduino Yún</figcaption></figure>
<p style="text-align: justify;">A la vista está que <strong>el nuevo Arduino Yún tiene dos partes totalmente diferenciadas</strong> que, en su conjunto, ofrecen todo un «ordenador» conectado a la red, pero tremendamente fácil de manejar y programar.</p>
<h3 style="text-align: justify;">Alimentación</h3>
<p style="text-align: justify;">Aunque se aconseja alimentar nuestro <strong>Arduino Yún</strong> a través de su puerto microUSB con 5V, también lo podemos hacer a través de su pin Vin mediante una fuente de alimentación regulada a 5v, ya que <strong>Arduino Yún</strong> no tiene ningún regulador de tensión. Si alimentamos a través de Vin con un voltaje mayor a 5v, lo más seguro es que quememos el dispositivo.</p>
<p style="line-height: 1.5em;"><span style="line-height: 1.5em;"><div class="box info  aligncenter"><div class="box-inner-block"><i class="fa tie-shortcode-boxicon"></i>
			Si alimentamos a través del puerto Vin, nos cercionaremos de que se trata de una fuente regulada a 5v.</span> El pin 3v3 proporciona una fuente de 3.3v con una intensidad máxima de 50mA.
			</div></div>
<p style="text-align: center;"><script type="text/javascript"><!--
				google_ad_client = "ca-pub-2285568471490299";
				/* rDuinoStar medio-post */
				google_ad_slot = "3593771250";
				google_ad_width = 468;
				google_ad_height = 60;
				//-->
				</script><br />
				<script type="text/javascript"
				src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
				</script></p>
<h3 style="text-align: justify;"><span style="line-height: 1.5em;">Memoria</span></h3>
<p style="text-align: justify;">La parte clásica de <strong>Arduino Yún</strong>, el ATmega32u4 tiene 32KB, de los cuales 4KB están ocupados por el sistema de arranque -bootloader-. Del mismo modo cuenta con una SRAM de 2.5 KB y una EEPROM programable de 1KB.<br />
Por su parte, el chip AR9331 cuenta con 64 MB de RAM DDR2 y 16MB de memoria flash, en la cual se ha cargado la distribución <strong>Linux Linino</strong>.</p>
<p style="text-align: center;"><span style="line-height: 1.5em;"><div class="box info  aligncenter"><div class="box-inner-block"><i class="fa tie-shortcode-boxicon"></i>
			Podemos variar el contenido de la memoria flash, pero siempre podremos recuperar la imagen de fábrica presionando el botón WLAN RST durante 30 segundos.
			</div></div></span></p>
<figure id="attachment_1570" aria-describedby="caption-attachment-1570" style="width: 600px" class="wp-caption aligncenter"><a href="http://rduinostar.com/wp-content/uploads/2014/02/arduino-yun-dos-partes.png" rel="lightbox[1558]"><img loading="lazy" decoding="async" class="wp-image-1570" src="http://rduinostar.com/wp-content/uploads/2014/02/arduino-yun-dos-partes.png" alt="Las dos caras de Arduino Yún" width="600" height="333" srcset="https://rduinostar.com/wp-content/uploads/2014/02/arduino-yun-dos-partes.png 650w, https://rduinostar.com/wp-content/uploads/2014/02/arduino-yun-dos-partes-300x166.png 300w" sizes="(max-width: 600px) 100vw, 600px" /></a><figcaption id="caption-attachment-1570" class="wp-caption-text">Las dos caras de Arduino Yún</figcaption></figure>
<h3 style="text-align: justify;">Entradas y Salidas</h3>
<p style="text-align: justify;">Si bien es cierto que el chip AR9331 tiene varios pines de entrada y salida, estos no son accesibles, por lo que toda la parte de entrada y salida de datos a través de pines se hace como de costumbre, es decir, mediante los pines analógicos y digitales del chip ATmega32u4.</p>
<p style="text-align: center;"><span style="line-height: 1.5em;"><div class="box info  aligncenter"><div class="box-inner-block"><i class="fa tie-shortcode-boxicon"></i>
			Los pines de E/S funcionan en <strong>Arduino Yún</strong> a 5v y pueden trabajar a una intensidad máxima de 40mA. Además, incorporan una resistencia pull-up de 20-50 Ohm (desactivada por defecto).
			</div></div></span></p>
<p style="text-align: justify;"><span style="line-height: 1.5em;">Al igual que en otras placas, <strong>existen pines con funciones particulares</strong>:</span></p>
<ul class="checklist">
<li style="text-align: justify;"><strong>Serial:</strong> pin 0 para recepción de datos (RX) y pin 1 para el envío de los mismos (TX). Si estáis acostumbrados a utilizar la clase Serial, en el Yún es usada para la comunicación por el puerto USB, por lo que deberéis emplear la clase serial1. En el puerto serie del AR9331 tenemos la consola Linux a nuestra disposición.</li>
<li style="text-align: justify;"><span style="text-align: justify; line-height: 1.5em;"><strong>TWI:</strong> pin 2 (SDA) y pin 3 (SCL). </span><span style="text-align: justify; line-height: 1.5em;"><strong>Interrupciones externas:</strong> los pines 3, 2, 0, 1 y 7 actúan como interrupciones numeradas de 0 a 4, respectivamente. Desde Arduino recomiendan no utilizar los pines 0, 1 y 7. 0 y 1 por actuar como puerto serie, y 7 por estar conectado directamente al AR9331 y su posible uso en un futuro.</span></li>
<li style="text-align: justify;"><span style="text-align: justify; line-height: 1.5em;"><strong>PWM:</strong> pines 3, 5, 6, 9, 10, 11 y 13. La resolución de la PWM es de 8 bits.</span></li>
<li style="text-align: justify;"><span style="text-align: justify; line-height: 1.5em;"><strong>SPI:</strong> en el conector marcado como <strong>ICSP/SPI</strong>. Es importante destacar que el conector SPI no está conectado a ningún otro pin, por lo que si usamos alguna shield que utilice SPI pero no vaya directamente encima del conector de 6 pines ICSP del Arduino Yún, es más que probable que no funcione. Como dato adicional, los pines SPI están conectados a los pines gpio del AR9331, por lo que ahí tenemos otra vía de comunicación entre ambos chips.</span></li>
<li style="text-align: justify;"><span style="text-align: justify; line-height: 1.5em;"><strong>LED:</strong> al igual que ocurre en otros dispositivos, tenemos un <strong>led incorporado en la placa</strong>, conectado en este caso al pin 13.</span></li>
</ul>
<figure id="attachment_1571" aria-describedby="caption-attachment-1571" style="width: 600px" class="wp-caption aligncenter"><a href="http://rduinostar.com/wp-content/uploads/2014/02/arduino-yun-leds.jpg" rel="lightbox[1558]"><img loading="lazy" decoding="async" class="wp-image-1571" src="http://rduinostar.com/wp-content/uploads/2014/02/arduino-yun-leds.jpg" alt="LEDs Arduino Yún" width="600" height="561" srcset="https://rduinostar.com/wp-content/uploads/2014/02/arduino-yun-leds.jpg 1042w, https://rduinostar.com/wp-content/uploads/2014/02/arduino-yun-leds-300x280.jpg 300w, https://rduinostar.com/wp-content/uploads/2014/02/arduino-yun-leds-1024x958.jpg 1024w" sizes="(max-width: 600px) 100vw, 600px" /></a><figcaption id="caption-attachment-1571" class="wp-caption-text">LEDs en Arduino Yún</figcaption></figure>
<ul class="checklist">
<li style="text-align: justify;"><span style="text-align: justify; line-height: 1.5em;"><strong>Entradas analógicas</strong> A0 &#8211; A11 en los pines digitales 4, 6, 8, 9, 10 y 12. Tienen una resolución de 10 bits y por defecto miden desde 0v a 5v.</span></li>
<li style="text-align: justify;"><span style="text-align: justify; line-height: 1.5em;"><strong>AREF:</strong> voltaje de referencia para las entradas analógicas. Con este pin podemos cambiar el límite superior de 5v para adaptarlo a nuestras necesidades.</span></li>
<li style="text-align: justify;"><strong><span style="text-align: justify; line-height: 1.5em;">Botones de reset: </span></strong><span style="text-align: justify; line-height: 1.5em;"><span style="text-decoration: underline;"><strong>Yún RST:</strong></span> resetea el procesador AR9331, es decir, vacía la RAM y termina los programas en ejecución en el entorno Linux. </span><span style="text-align: justify; line-height: 1.5em;"><span style="text-decoration: underline;"><strong>32U4 RST:</strong> </span>reinicia el chip ATmega32u4. </span><span style="text-decoration: underline;"><strong><span style="text-align: justify; line-height: 1.5em;">WLAN RST:</span></strong></span><span style="text-align: justify; line-height: 1.5em;"> </span>Presionado durante 5 segundos hará que el led azul de WLAN comience a parpadear, indicando que el entorno Linux y la configuración WiFi se están reiniciando, es decir, Yún actuará como un AP con IP 192.168.240.1 y SSID «Arduinl Yún-direccionmac». <span style="text-align: justify; line-height: 1.5em;">Presionado durante 30 segundos dejaremos el entorno Linux tal y como venía el día que compramos nuestro Arduino.</span></li>
</ul>
<figure id="attachment_1572" aria-describedby="caption-attachment-1572" style="width: 600px" class="wp-caption aligncenter"><a href="http://rduinostar.com/wp-content/uploads/2014/02/arduino-yun-reset-buttons.jpg" rel="lightbox[1558]"><img loading="lazy" decoding="async" class="wp-image-1572" src="http://rduinostar.com/wp-content/uploads/2014/02/arduino-yun-reset-buttons.jpg" alt="Botones de RESET en Arduino Yún" width="600" height="421" srcset="https://rduinostar.com/wp-content/uploads/2014/02/arduino-yun-reset-buttons.jpg 1280w, https://rduinostar.com/wp-content/uploads/2014/02/arduino-yun-reset-buttons-300x210.jpg 300w, https://rduinostar.com/wp-content/uploads/2014/02/arduino-yun-reset-buttons-1024x718.jpg 1024w" sizes="(max-width: 600px) 100vw, 600px" /></a><figcaption id="caption-attachment-1572" class="wp-caption-text">Botones de RESET en Arduino Yún</figcaption></figure>
<p>La entrada <a href="https://rduinostar.com/documentacion/placas-arduino/arduino-yun-en-detalle/">Arduino Yún &#8211; Una vista más en detalle</a> aparece primero en <a href="https://rduinostar.com">rDuinoStar | Arduino España</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://rduinostar.com/documentacion/placas-arduino/arduino-yun-en-detalle/feed/</wfw:commentRss>
			<slash:comments>4</slash:comments>
		
		
			</item>
		<item>
		<title>Arduino Yún &#8211; Arduino, ahora con Linux y WiFi</title>
		<link>https://rduinostar.com/noticias/arduino-yun-linux-wifi/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=arduino-yun-linux-wifi</link>
					<comments>https://rduinostar.com/noticias/arduino-yun-linux-wifi/#comments</comments>
		
		<dc:creator><![CDATA[CiDsTaR]]></dc:creator>
		<pubDate>Sun, 19 Jan 2014 17:16:38 +0000</pubDate>
				<category><![CDATA[Noticias]]></category>
		<category><![CDATA[Arduino]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[wifi]]></category>
		<category><![CDATA[yún]]></category>
		<guid isPermaLink="false">http://rduinostar.com/?p=1521</guid>

					<description><![CDATA[<p>Hace unos meses se presentaba en la Maker Fire un vídeo sobre Arduino Yún, una nueva placa de Arduino que mezcla todo el poder de Arduino con las ventajas de una distribución Linux instalada. Si a todo esto añadimos una interface inalámbrica WiFi, estamos ante un dispositivo muy interesante para nuestros proyectos. En esencia estamos &#8230;</p>
<p>La entrada <a href="https://rduinostar.com/noticias/arduino-yun-linux-wifi/">Arduino Yún &#8211; Arduino, ahora con Linux y WiFi</a> aparece primero en <a href="https://rduinostar.com">rDuinoStar | Arduino España</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p style="text-align: justify;">Hace unos meses se presentaba en la <a title="Maker Faire - Web Oficial" href="http://makerfaire.com/" target="_blank">Maker Fire</a> un <a title="Learn about the arduino yun - Makezine" href="http://makezine.com/2014/01/09/learn-about-the-arduino-yun/" target="_blank">vídeo sobre Arduino Yún</a>, una nueva placa de <strong>Arduino</strong> que mezcla todo el poder de <strong>Arduino</strong> con las ventajas de una distribución <strong>Linux</strong> instalada. Si a todo esto añadimos una interface inalámbrica <strong>WiFi</strong>, estamos ante un dispositivo muy interesante para nuestros proyectos.<span id="more-1521"></span></p>
<p style="text-align: justify;">En esencia estamos ante un <strong>Arduino Leonardo</strong> dotado de una distribución <strong>Linux Linino</strong> (una distribución MIPS basada en OpenWRT) con la que se comunica vía serie. El corazón del nuevo<strong> Arduino Yún</strong> es un ATMega32u4, mientras que la distribución <strong>Linux</strong> es manejada por un Atheros AR9331.</p>
<figure id="attachment_1537" aria-describedby="caption-attachment-1537" style="width: 555px" class="wp-caption aligncenter"><a href="http://rduinostar.com/wp-content/uploads/2014/01/arduino-yun-portada.jpg" rel="lightbox[1521]"><img loading="lazy" decoding="async" class="wp-image-1537" src="http://rduinostar.com/wp-content/uploads/2014/01/arduino-yun-portada.jpg" alt="Arduino Yún" width="555" height="241" srcset="https://rduinostar.com/wp-content/uploads/2014/01/arduino-yun-portada.jpg 871w, https://rduinostar.com/wp-content/uploads/2014/01/arduino-yun-portada-300x130.jpg 300w" sizes="(max-width: 555px) 100vw, 555px" /></a><figcaption id="caption-attachment-1537" class="wp-caption-text">Arduino Yún</figcaption></figure>
<p style="text-align: justify;"><strong>Arduino Yún</strong> cuenta con interfaces Ethernet y <strong>WiFi</strong>, un puerto para tarjetas MicroSD, un puerto Micro USB, un puerto USB-A y 20 pines de entrada y salida -de los cuales 7 pueden ser usados con <a title="Modulación PWM en salidas digitales de arduino" href="http://rduinostar.com/documentacion/general/salidas-digitales-pwm-arduino/" target="_blank">PWM </a>y 12 como <a title="Tutorial 3 – Entradas Analógicas" href="http://rduinostar.com/tutoriales/tutorial-3-entradas-analogicas/" target="_blank">entradas analógicas</a>-.</p>
<p style="text-align: justify;">Con este nuevo dispositivo se facilita la interacción de Arduino con servicios Web. Así, podremos cargar nuestros <a title="Estructura de un Sketch" href="http://rduinostar.com/documentacion/programacion-arduino/estructura-de-un-sketch/" target="_blank">sketches </a>vía WiFi, escribir scripts shell o python, comunicarnos mediante SSH o acceder a los distintos pines de Arduino a través de un API REST. Todo es posible gracias a una librería desarrollada para tal efecto, llamada <a title="Librería Bridge - Arduino.cc" href="http://arduino.cc/en/Reference/YunBridgeLibrary" target="_blank">Bridge</a>. La librería Bridge comunica el AtMega32u4 con el AR9331 para balancear la carga de trabajo y distribuir tareas, dejando a la parte Linux el pesado procesamiento de datos.</p>
<p style="text-align: justify;">Las características técnicas de las dos partes principales que componen el nuevo Arduino Yún son las siguientes:</p>
<table border="0">
<tbody>
<tr>
<td colspan="2" align="left"><span style="text-decoration: underline;"><strong>Microcontrolador Arduino</strong></span></td>
</tr>
<tr>
<td align="left">Microcontroller</td>
<td align="left">ATmega32u4</td>
</tr>
<tr>
<td align="left">Operating Voltage</td>
<td align="left">5V</td>
</tr>
<tr>
<td align="left">Input Voltage</td>
<td align="left">5V</td>
</tr>
<tr>
<td align="left">Digital I/O Pins</td>
<td align="left">20</td>
</tr>
<tr>
<td align="left">PWM Channels</td>
<td align="left">7</td>
</tr>
<tr>
<td align="left">Analog Input Channels</td>
<td align="left">12</td>
</tr>
<tr>
<td align="left">DC Current per I/O Pin</td>
<td align="left">40 mA</td>
</tr>
<tr>
<td align="left">DC Current for 3.3V Pin</td>
<td align="left">50 mA</td>
</tr>
<tr>
<td align="left">Flash Memory</td>
<td align="left">32 KB (of which 4 KB used by bootloader)</td>
</tr>
<tr>
<td align="left">SRAM</td>
<td align="left">2.5 KB</td>
</tr>
<tr>
<td align="left">EEPROM</td>
<td align="left">1 KB</td>
</tr>
<tr>
<td align="left">Clock Speed</td>
<td align="left">16 MHz</td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<table border="0">
<tbody>
<tr>
<td colspan="2" align="left"><span style="text-decoration: underline;"><strong>Microprocesador Linux </strong></span></td>
</tr>
<tr>
<td align="left">Processor</td>
<td align="left">Atheros AR9331</td>
</tr>
<tr>
<td align="left">Architecture</td>
<td>MIPS @400MHz</td>
</tr>
<tr>
<td align="left">Operating Voltage</td>
<td align="left">3.3V</td>
</tr>
<tr>
<td align="left">Ethernet</td>
<td align="left">IEEE 802.3 10/100Mbit/s</td>
</tr>
<tr>
<td align="left">WiFi</td>
<td align="left">IEEE 802.11b/g/n</td>
</tr>
<tr>
<td align="left">USB Type-A</td>
<td align="left">2.0 Host/Device</td>
</tr>
<tr>
<td align="left">Card Reader</td>
<td align="left">Micro-SD only</td>
</tr>
<tr>
<td align="left">RAM</td>
<td>64 MB DDR2</td>
</tr>
<tr>
<td align="left">Flash Memory</td>
<td align="left">16 MB</td>
</tr>
</tbody>
</table>
<p style="text-align: justify;">Podéis comprarlo en la <a title="Comprar Arduino Yún - arduino.cc" href="http://store.arduino.cc/index.php?main_page=product_info&amp;cPath=11_12&amp;products_id=313" target="_blank">página oficial</a> por 52€ + impuestos. En tiendas online españolas no lo hemos visto por menos de 66€.</p>
<p>La entrada <a href="https://rduinostar.com/noticias/arduino-yun-linux-wifi/">Arduino Yún &#8211; Arduino, ahora con Linux y WiFi</a> aparece primero en <a href="https://rduinostar.com">rDuinoStar | Arduino España</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://rduinostar.com/noticias/arduino-yun-linux-wifi/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Pantalla LCD Gráfica 128&#215;64 con ST7920</title>
		<link>https://rduinostar.com/documentacion/datasheets/lcd-st7920-hj12864zw/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=lcd-st7920-hj12864zw</link>
					<comments>https://rduinostar.com/documentacion/datasheets/lcd-st7920-hj12864zw/#comments</comments>
		
		<dc:creator><![CDATA[CiDsTaR]]></dc:creator>
		<pubDate>Mon, 27 May 2013 17:06:14 +0000</pubDate>
				<category><![CDATA[Datasheets]]></category>
		<category><![CDATA[128x64]]></category>
		<category><![CDATA[gráfico]]></category>
		<category><![CDATA[HJ12864ZW]]></category>
		<category><![CDATA[LCD]]></category>
		<category><![CDATA[ST7920]]></category>
		<guid isPermaLink="false">http://rduinostar.com/?p=1474</guid>

					<description><![CDATA[<p>Hay muchas y muy diversas pantallas que podemos hacer funcionar directamente con Arduino. En ésta entrada vamos a presentar esta singular pantalla LCD gráfica de 128 x 64 pixeles con el controlador ST7920, ya que hemos visto por Internet cantidad de gente que no es capaz de conectarla correctamente ni hacerla funcionar por la falta &#8230;</p>
<p>La entrada <a href="https://rduinostar.com/documentacion/datasheets/lcd-st7920-hj12864zw/">Pantalla LCD Gráfica 128&#215;64 con ST7920</a> aparece primero en <a href="https://rduinostar.com">rDuinoStar | Arduino España</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p style="text-align: justify;">Hay muchas y muy diversas pantallas que podemos hacer funcionar directamente con Arduino. En ésta entrada vamos a presentar esta singular pantalla <strong>LCD</strong> gráfica de <strong>128 x 64 pixeles</strong> con el controlador <strong>ST7920</strong>, ya que hemos visto por Internet cantidad de gente que no es capaz de conectarla correctamente ni hacerla funcionar por la falta de documentación en el significado de sus pines.</p>
<p style="text-align: justify;"><span id="more-1474"></span></p>
<h3 style="text-align: justify;">Introducción</h3>
<p style="text-align: justify;">Como ya hemos adelantado, estamos ante un <strong>LCD gráfico</strong>, <strong>retroiluminado</strong>, con <strong>contraste variable</strong>, con 128 pixeles de largo y 64 pixeles de ancho. Las pantallas quedan muy elegantes en la mayoría de proyectos realizados con Arduino, ya sea para mostrar información, para ayudar al usuario con la navegación por la aplicación o con la configuración, etc.</p>
<h3 style="text-align: justify;">Encapsulado</h3>
<p style="text-align: justify;">La unidad que presentamos en éste post es un módulo etiquetado como <strong>HJ12864ZW</strong>, con un <strong>LCD gráfico 128&#215;64</strong> controlada por un integrado <strong>ST7920</strong>.</p>
<figure id="attachment_194" aria-describedby="caption-attachment-194" style="width: 550px" class="wp-caption aligncenter"><a href="http://rduinostar.com/wp-content/uploads/2012/09/que-es-arduino-titulo.jpg" rel="lightbox[1474]"><img loading="lazy" decoding="async" class="wp-image-194" src="http://rduinostar.com/wp-content/uploads/2012/09/que-es-arduino-titulo.jpg" alt="LCD gráfico 128x64 con ST7920" width="550" height="353" srcset="https://rduinostar.com/wp-content/uploads/2012/09/que-es-arduino-titulo.jpg 800w, https://rduinostar.com/wp-content/uploads/2012/09/que-es-arduino-titulo-300x192.jpg 300w" sizes="(max-width: 550px) 100vw, 550px" /></a><figcaption id="caption-attachment-194" class="wp-caption-text">LCD gráfico 128&#215;64 con ST7920</figcaption></figure>
<p style="text-align: center;"><script type="text/javascript"><!--
				google_ad_client = "ca-pub-2285568471490299";
				/* rDuinoStar medio-post */
				google_ad_slot = "3593771250";
				google_ad_width = 468;
				google_ad_height = 60;
				//-->
				</script><br />
				<script type="text/javascript"
				src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
				</script></p>
<h3>Datos del módulo</h3>
<p>Sus <strong>principales características</strong> son:</p>
<ul class="checklist">
<li>Dimensiones: 93.0 x 70.0 x 13.5 mm.</li>
<li>Área visual: 72.0 x 40.0 mm.</li>
<li>Tamaño del píxel: 0.48 x 0.48 mm.</li>
<li>Tensión de funcionamiento: 3.3v / 5.0v.</li>
<li>Tensión del funcionamiento del controlador del LCD: 3.0v &#8211; 5.0v.</li>
<li>Temperatura de funcionamiento: -20ºC &#8211; 70ºC.</li>
</ul>
<h3 style="text-align: justify;">Conexión</h3>
<p style="text-align: justify;">El módulo que os presentamos tiene una variedad de pines que nos puede parecer demasiado numerosa. Veamos el significado de cada uno:</p>
<h4>Esquema de pines</h4>
<div class="tableGen">
<table>
<tbody>
<tr>
<td>Pin</td>
<td>Significado</td>
<td>Descripción</td>
</tr>
<tr>
<td>VSS/GND</td>
<td>Ground</td>
<td>&#8211;</td>
</tr>
<tr>
<td>VDD/VCC</td>
<td>Vin</td>
<td>&#8211;</td>
</tr>
<tr>
<td>V0</td>
<td>Voltaje del driver del LCD</td>
<td>Ajusta el contraste del LCD (&lt;=7.0v).</td>
</tr>
<tr>
<td>RS</td>
<td>Register Select</td>
<td>Tiene distintos propósitos si está trabajando en modo serie o paralelo.</td>
</tr>
<tr>
<td>R/W</td>
<td>Read / Write Line</td>
<td>En modo paralelo indica el tipo de operación (lectura/escritura). En modo serie se utiliza como entrada de datos.</td>
</tr>
<tr>
<td>E</td>
<td>Read / Write Enable</td>
<td>En modo paralelo es la señal de comienzo de actividad (lectura de datos/selección de operación&#8230;). En modo serie es la señal de reloj.</td>
</tr>
<tr>
<td>DB0-DB3</td>
<td>Data Bus 0 &#8211; Data Bus 3</td>
<td>Bits menos significativos en modo paralelo 8 bits.</td>
</tr>
<tr>
<td>DB4-DB7</td>
<td>Data Bus 4 &#8211; Data Bus 7</td>
<td>Bits más significativos en modo paralelo 8 bits. Bus de datos en modo paralelo 4 bits.</td>
</tr>
<tr>
<td>PSB</td>
<td>Serial / Parallel control port</td>
<td>Selecciona el modo de funcionamiento (Serie / Paralelo).</td>
</tr>
<tr>
<td>NC</td>
<td>Not Connected</td>
<td>&#8211;</td>
</tr>
<tr>
<td>RST</td>
<td>Reset</td>
<td>&#8211;</td>
</tr>
<tr>
<td>Vout</td>
<td>Salida del doblador de voltaje</td>
<td>&#8211;</td>
</tr>
<tr>
<td>BLA</td>
<td>BackLight (+)</td>
<td>Terminal positivo de la retroiluminación (3.3v &#8211; 5.0v).</td>
</tr>
<tr>
<td>BLK</td>
<td>BackLight (-)</td>
<td>Terminal negativo de la retroiluminación.</td>
</tr>
</tbody>
</table>
</div>
<p>&nbsp;</p>
<p style="text-align: justify;">Dependiendo del módulo, tendréis o no un tornillo por la parte de atrás, el cual nos sirve para <strong>variar el contraste</strong> de la pantalla. En caso de no disponer de éste tornillo (en realidad es un <strong>potenciómetro</strong>), podemos conectar un potenciómetro en el pin V0 y tensión positiva (+) para variarlo manualmente.</p>
<p style="text-align: justify;">Del mismo modo, podemos <strong>variar la retroiluminación</strong> del <strong>LCD</strong> colocando otro potenciómetro para variar la tensión en el pin BLA.</p>
<p style="text-align: justify;">Un ejemplo de esquema de conexiones para utilizarlo con la librería que os recomendamos más abajo sería el siguiente:</p>
<div class="tableGen">
<table>
<tbody>
<tr>
<td>Pin LCD</td>
<td>Pin Arduino</td>
<td>Comentarios</td>
</tr>
<tr>
<td>VSS/GND</td>
<td>Ground</td>
<td>&#8211;</td>
</tr>
<tr>
<td>VDD/VCC</td>
<td>5v</td>
<td>&#8211;</td>
</tr>
<tr>
<td>V0</td>
<td>Al aire o a 5v</td>
<td>Si tenemos variador de contraste en el reverso del LCD no hace falta conectarlo.</td>
</tr>
<tr>
<td>RS</td>
<td>Pin X digital</td>
<td>Tiene distintos propósitos si está trabajando en modo serie o paralelo.</td>
</tr>
<tr>
<td>R/W</td>
<td>Pin Y digital o GND</td>
<td>Si no vamos a programar ningún caracter del LCD conectamos GND, en caso contrario a un pin digital.</td>
</tr>
<tr>
<td>E</td>
<td>Pin Z digital</td>
<td>En modo paralelo es la señal de comienzo de actividad (lectura de datos/selección de operación&#8230;). En modo serie es la señal de reloj.</td>
</tr>
<tr>
<td>DB0-DB3</td>
<td>Pines A &#8211; D digitales</td>
<td>&#8211;</td>
</tr>
<tr>
<td>DB4-DB7</td>
<td>Pines E &#8211; H digitales</td>
<td>&#8211;</td>
</tr>
<tr>
<td>PSB</td>
<td>5v</td>
<td>Seleccionando así el modo paralelo.</td>
</tr>
<tr>
<td>NC</td>
<td>Al aire</td>
<td>&#8211;</td>
</tr>
<tr>
<td>RST</td>
<td>Al aire</td>
<td>&#8211;</td>
</tr>
<tr>
<td>Vout</td>
<td>Al aire</td>
<td>&#8211;</td>
</tr>
<tr>
<td>BLA</td>
<td>5v</td>
<td>&#8211;</td>
</tr>
<tr>
<td>BLK</td>
<td>Ground</td>
<td>&#8211;</td>
</tr>
</tbody>
</table>
</div>
<h3 style="text-align: justify;">Librería</h3>
<p style="text-align: justify;">Hay varias librerías circulando por la red, pero sin duda, la más completa, con más actualizaciones y mejor documentada es la librería u8glib. No sólo nos va a servir para este módulo, sino que es válida para un montón de pantallas. Podéis encontrar un montón de documentación en su página oficial de <a title="u8glib - Google Code" href="https://code.google.com/p/u8glib/" target="_blank">Google Code u8glib</a>.</p>
<h3 style="text-align: justify;">Datasheets</h3>
<p style="text-align: center;"><a title="Ir al datasheet del HJ12864ZW" href="http://issuu.com/rduinostar/docs/hj12864zw-lcd-module-datasheet" target="_blank"><strong>Podéis consultar más datos técnicos del módulo HJ12864ZW en su datasheet haciendo click aquí.</strong></a></p>
<p style="text-align: center;"><strong><a title="Ir al datasheet del ST7920" href="http://issuu.com/rduinostar/docs/st7920-lcd-controller-datasheet" target="_blank">Podéis consultar más datos técnicos del controlador ST7920 en su datasheet haciendo click aquí.</a></strong></p>
<p style="text-align: center;">
<p>La entrada <a href="https://rduinostar.com/documentacion/datasheets/lcd-st7920-hj12864zw/">Pantalla LCD Gráfica 128&#215;64 con ST7920</a> aparece primero en <a href="https://rduinostar.com">rDuinoStar | Arduino España</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://rduinostar.com/documentacion/datasheets/lcd-st7920-hj12864zw/feed/</wfw:commentRss>
			<slash:comments>6</slash:comments>
		
		
			</item>
		<item>
		<title>Constantes en Arduino</title>
		<link>https://rduinostar.com/documentacion/programacion-arduino/constantes/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=constantes</link>
					<comments>https://rduinostar.com/documentacion/programacion-arduino/constantes/#comments</comments>
		
		<dc:creator><![CDATA[CiDsTaR]]></dc:creator>
		<pubDate>Tue, 12 Feb 2013 13:12:31 +0000</pubDate>
				<category><![CDATA[Programación]]></category>
		<category><![CDATA[Arduino]]></category>
		<category><![CDATA[constantes]]></category>
		<guid isPermaLink="false">http://rduinostar.com/?p=1437</guid>

					<description><![CDATA[<p>Como bien comentamos en el artículo sobre variables, las constantes son un grupo especial de variables las cuales no varían su valor a lo largo de todo el programa. Veremos a continuación cómo declarar, inicializar y usar una variable constante. También veremos algunas de las constantes predefinidas en Arduino. La principal función de una constante &#8230;</p>
<p>La entrada <a href="https://rduinostar.com/documentacion/programacion-arduino/constantes/">Constantes en Arduino</a> aparece primero en <a href="https://rduinostar.com">rDuinoStar | Arduino España</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p style="text-align: justify;">Como bien comentamos en el artículo sobre <a title="Variables en Arduino" href="http://rduinostar.com/documentacion/programacion-arduino/variables-arduino/" target="_blank" rel="noopener noreferrer">variables</a>, las <strong>constantes</strong> son un grupo especial de variables las cuales no varían su valor a lo largo de todo el programa. Veremos a continuación cómo declarar, inicializar y usar una <strong>variable constante</strong>. También veremos algunas de las<strong> constantes predefinidas en Arduino.</strong></p>
<p><span id="more-1437"></span></p>
<p style="text-align: justify;">La principal función de una <strong>constante</strong> es hacer más fácil la programación y lectura de un programa. Suelen ser valores muy utilizados o bien muy característicos del propio programa. Por ejemplo, podemos emplear <strong>constantes</strong> a la hora de identificar errores, versiones de programas, etc&#8230;</p>
<p style="text-align: justify;">La <strong>declaración de una constante</strong> es muy simple, basta con anteponer la palabra reservada 
			<span id="urvanov-syntax-highlighter-6a2d9af74d265538183991" class="urvanov-syntax-highlighter-syntax urvanov-syntax-highlighter-syntax-inline  crayon-theme-classic crayon-theme-classic-inline urvanov-syntax-highlighter-font-monaco" style="font-size: 12px !important; line-height: 15px !important;font-size: 12px !important;"><span class="crayon-pre urvanov-syntax-highlighter-code" style="font-size: 12px !important; line-height: 15px !important;font-size: 12px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;"><span class="crayon-m">const</span></span></span>  antes del tipo de datos y nombre de la variable:</p>
<pre class="urvanov-syntax-highlighter-plain-tag">// Declaración e inicialización de una variable constante
const int VARIABLE_CONSTANTE = 100;

// Si intentamos cambiar el valor, habrá un error de compilación
VARIABLE_CONSTANTE = 20;</pre>
<p style="text-align: justify;">Como se puede ver en los comentarios, el valor de una <strong>variable constante</strong> no se puede modificar, pues si lo intentamos hacer obtendremos un error de compilación.</p>
<p style="text-align: center;"><script type="text/javascript"><!--
				google_ad_client = "ca-pub-2285568471490299";
				/* rDuinoStar medio-post */
				google_ad_slot = "3593771250";
				google_ad_width = 468;
				google_ad_height = 60;
				//-->
				</script><br />
				<script type="text/javascript"
				src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
				</script></p>
<h3 style="text-align: justify;">Constantes «reservadas»</h3>
<p style="text-align: justify;">Existe una serie de <strong>constantes</strong>, que ya hemos empleado en algunos sketches.</p>
<h4 style="text-align: justify;">TRUE / FALSE</h4>
<p style="text-align: justify;">Éstas dos <strong>constantes</strong> booleanas representan un nivel lógico. Mientras que <strong>FALSE</strong> representa un nivel lógico de 0, <strong>TRUE</strong> representa un valor de 1.</p>
<p style="text-align: justify;">Se emplean en muchas ocasiones, siendo especialmente útiles en estructuras de control del flujo, como por ejemplo:</p>
<pre class="urvanov-syntax-highlighter-plain-tag">while (variable == TRUE)
{
// Algo de código...
}</pre>
<h4>HIGH / LOW</h4>
<p style="text-align: justify;">Variables más que conocidas por su uso para establecer el valor en un pin digital de arduino. <strong>HIGH</strong> indica que el pin debe tener un nivel lógico de 1, es decir, 5v o 3.3v (según versiones de placas de Arduino). Por su parte, <strong>LOW</strong> establece un nivel lógico de 0, es decir, 0v.</p>
<pre class="urvanov-syntax-highlighter-plain-tag">digitalWrite(pinDestino, HIGH);</pre>
<h4>INPUT / OUTPUT / INPUT_PULLUP</h4>
<p style="text-align: justify;">Otro grupo de valores muy utilizados. Su función es la configuración de pines digitales. <strong>INPUT</strong> se emplea para configurar un pin como entrada, <strong>OUTPUT</strong> como salida, e <strong>INPUT_PULLUP</strong> activa unas resistencias pull-up internas. En el caso de <strong>INPUT_PULLUP</strong>, el grupo anterior de constantes (HIGH/LOW) funcionará al revés, siendo <strong>HIGH</strong> 0v y <strong>LOW</strong> 5v o 3.3v según placas.</p>
<pre class="urvanov-syntax-highlighter-plain-tag">pinMode(pinDestino, OUTPUT);</pre>
<p style="text-align: justify;">Si queréis ampliar esta información, podéis ir a la <a title="Arduino Constants" href="http://arduino.cc/en/Reference/Constants" target="_blank" rel="noopener noreferrer">página oficial de Arduino -&gt; Constantes</a>.</p>
<p>La entrada <a href="https://rduinostar.com/documentacion/programacion-arduino/constantes/">Constantes en Arduino</a> aparece primero en <a href="https://rduinostar.com">rDuinoStar | Arduino España</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://rduinostar.com/documentacion/programacion-arduino/constantes/feed/</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		
			</item>
		<item>
		<title>Sensor de temperatura y humedad DHT11</title>
		<link>https://rduinostar.com/documentacion/datasheets/dht11-overview/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=dht11-overview</link>
					<comments>https://rduinostar.com/documentacion/datasheets/dht11-overview/#comments</comments>
		
		<dc:creator><![CDATA[CiDsTaR]]></dc:creator>
		<pubDate>Thu, 07 Feb 2013 23:44:49 +0000</pubDate>
				<category><![CDATA[Datasheets]]></category>
		<category><![CDATA[dht11]]></category>
		<category><![CDATA[humedad]]></category>
		<category><![CDATA[sensor]]></category>
		<category><![CDATA[temperatura]]></category>
		<guid isPermaLink="false">http://rduinostar.com/?p=1239</guid>

					<description><![CDATA[<p>Inauguramos la sección de datasheets con un sensor, enfocándola no solo a la mera publicación de un pdf con todos los datos técnicos de cada componente, sino para resumir un poco las características más importantes, y entender mejor su funcionamiento. Por tanto, si algún dato de un datasheet en concreto no os cuadra o no lo entendéis, &#8230;</p>
<p>La entrada <a href="https://rduinostar.com/documentacion/datasheets/dht11-overview/">Sensor de temperatura y humedad DHT11</a> aparece primero en <a href="https://rduinostar.com">rDuinoStar | Arduino España</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p style="text-align: justify;">Inauguramos la sección de <strong>datasheets</strong> con un sensor, enfocándola no solo a la mera publicación de un pdf con todos los datos técnicos de cada componente, sino para resumir un poco las características más importantes, y entender mejor su funcionamiento. Por tanto, si algún dato de un datasheet en concreto no os cuadra o no lo entendéis, podéis hacérnoslo llegar e intentaremos preparar una entrada más detallada.</p>
<p style="text-align: justify;"><span id="more-1239"></span></p>
<h3 style="text-align: justify;">Introducción</h3>
<p style="text-align: justify;">Dicho esto, hablemos un poco del sensor de temperatura y humedad <strong>DHT11</strong>, pues estamos ante uno de los <strong>sensores digitales de temperatura y humedad</strong> más baratos del mercado.</p>
<h3 style="text-align: justify;">Encapsulados</h3>
<p style="text-align: justify;">Cuando compréis el sensor, os encontraréis por norma general (y según qué tiendas) con <strong>tres variantes</strong>:</p>
<ul class="checklist">
<li style="text-align: justify;">El sensor suelto, con un encapsulado azul y cuatro pines disponibles para conectar.</li>
<li style="text-align: justify;">El sensor con una placa soldada, con tres pines disponibles para conectar, y una resistencia pull-up (normalmente de 4,7-10 kΩ) presoldada.</li>
<li style="text-align: justify;">El mismo formato que el anterior, pero con un condensador de filtrado (normalmente de 100 nF).</li>
</ul>
<figure style="width: 582px" class="wp-caption aligncenter"><a href="http://rduinostar.com/wp-content/uploads/2013/02/dht11-esquema-conexion.jpg" rel="lightbox[1239]"><img loading="lazy" decoding="async" class="size-full wp-image-1263" src="http://rduinostar.com/wp-content/uploads/2013/02/dht11-esquema-conexion.jpg" alt="DHT11 Esquema Conexion" width="582" height="331" srcset="https://rduinostar.com/wp-content/uploads/2013/02/dht11-esquema-conexion.jpg 582w, https://rduinostar.com/wp-content/uploads/2013/02/dht11-esquema-conexion-300x170.jpg 300w" sizes="(max-width: 582px) 100vw, 582px" /></a><figcaption class="wp-caption-text">Esquema conexión DHT11</figcaption></figure>
<p style="text-align: justify;">También podemos añadir un condensador de 100 nF entre VDD y GND para filtrar la alimentación, aunque sin él también funcionará.</p>
<p style="text-align: justify;">Como ya habréis imaginado, dependiendo del encapsulado, tendremos que añadir resistencia, resistencia y condensador, o no tener que añadir nada.</p>
<h3 style="text-align: justify;">Librería</h3>
<p style="text-align: justify;">Hay muchas librerías circulando por la red, pero como no podía ser de otra manera, en rDuinoStar tenemos nuestra propia librería <strong>rDHT11</strong> para facilizarte las cosas. Puedes descargar la librería, un programa de ejemplo y consultar la documentación haciendo <a title="rDHT11 – Librería para el sensor DHT11" href="http://rduinostar.com/documentacion/libs/rdht11-libreria-para-dht11/" target="_blank"><strong>click aquí</strong></a>.</p>
<h3 style="text-align: justify;">Datasheet</h3>
<p style="text-align: center;"><a title="Ir al datasheet del sensor DHT11" href="http://issuu.com/rduinostar/docs/dht11_datasheet" target="_blank"><strong>Podéis consultar todos los datos técnicos más especificados en su datasheet haciendo click aquí.</strong></a></p>
<p>La entrada <a href="https://rduinostar.com/documentacion/datasheets/dht11-overview/">Sensor de temperatura y humedad DHT11</a> aparece primero en <a href="https://rduinostar.com">rDuinoStar | Arduino España</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://rduinostar.com/documentacion/datasheets/dht11-overview/feed/</wfw:commentRss>
			<slash:comments>14</slash:comments>
		
		
			</item>
	</channel>
</rss>
