<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>QuBits</title>
	<atom:link href="https://qubits.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>https://qubits.wordpress.com</link>
	<description>Señor Einstein, ¡deje de decirle a Dios lo que debe hacer! - Niels Bohr</description>
	<lastBuildDate>Wed, 02 Jun 2010 03:27:59 +0000</lastBuildDate>
	<language>es</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='qubits.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>https://s0.wp.com/i/buttonw-com.png</url>
		<title>QuBits</title>
		<link>https://qubits.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="https://qubits.wordpress.com/osd.xml" title="QuBits" />
	<atom:link rel='hub' href='https://qubits.wordpress.com/?pushpress=hub'/>
	<item>
		<title>Esquemático de conexionado y montaje de módulos XBee</title>
		<link>https://qubits.wordpress.com/2009/04/04/esquematico-de-conexionado-y-montaje-de-modulos-xbee/</link>
					<comments>https://qubits.wordpress.com/2009/04/04/esquematico-de-conexionado-y-montaje-de-modulos-xbee/#comments</comments>
		
		<dc:creator><![CDATA[miguelio]]></dc:creator>
		<pubDate>Sat, 04 Apr 2009 00:28:43 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Electrónica]]></category>
		<category><![CDATA[electrónico]]></category>
		<category><![CDATA[informatica]]></category>
		<category><![CDATA[networks]]></category>
		<category><![CDATA[red]]></category>
		<category><![CDATA[redes informática]]></category>
		<category><![CDATA[wireless]]></category>
		<category><![CDATA[xbee]]></category>
		<category><![CDATA[zigbee]]></category>
		<guid isPermaLink="false">http://qubits.wordpress.com/?p=31</guid>

					<description><![CDATA[O también: ¿Cómo conextar un módulo XBee? Introducción Los módulos XBee/XBee-PRO ZNet 2.5 OEM fueron diseñados para operar dentro del protocolo ZigBee soportando las necesidades particulares de las redes de sensores de bajo costo y consumo, requiriendo alimentación mínima y a la vez permitiendo el transporte confiable de datos entre dispositivos remotos. El módulo opera [&#8230;]]]></description>
										<content:encoded><![CDATA[<h1>O también: ¿Cómo conextar un módulo XBee?</h1>
<h2><span lang="ES">Introducción</span></h2>
<p class="MsoNormal" style="text-align:justify;"><span lang="ES">Los módulos XBee/XBee-PRO ZNet 2.5 OEM fueron diseñados para operar dentro del protocolo ZigBee soportando las necesidades particulares de las redes de sensores de bajo costo y consumo, requiriendo alimentación mínima y a la vez permitiendo el transporte confiable de datos entre dispositivos remotos.</span></p>
<p class="MsoNormal"><span lang="ES">El módulo opera dentro de la banda ISM (Industrial, Scientific and Medical) utilizando una frecuencia de 2.4 GHz.</span></p>
<p class="MsoNormal" style="text-align:justify;"><span lang="ES">Los requerimientos mínimos de conexionado consisten en proveer alimentación mediantes dos terminales (VCC y GND) y dos de datos (Vin y Vout). Para la actualización de firmwares es necesario agregar las conexiones de los pines RTS y DTR.</span></p>
<p class="MsoNormal" style="text-align:justify;"><span lang="ES">Los módulos XBee fueron diseñados para ser montados en un zócalo, no requiriendo ningún soldado. Para ello disponen dos hileras de 10 pines separadas entre ellas por 22 mm La separación entre pines es de 2mm (v<span>er figura</span>).</span></p>
<p class="MsoNormal" style="text-align:center;"><span lang="ES"><a href="https://qubits.wordpress.com/wp-content/uploads/2009/04/xbee-mech-drawings.gif"><img data-attachment-id="32" data-permalink="https://qubits.wordpress.com/2009/04/04/esquematico-de-conexionado-y-montaje-de-modulos-xbee/xbee-mech-drawings/" data-orig-file="https://qubits.wordpress.com/wp-content/uploads/2009/04/xbee-mech-drawings.gif" data-orig-size="674,233" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="xbee-mech-drawings" data-image-description="" data-image-caption="" data-medium-file="https://qubits.wordpress.com/wp-content/uploads/2009/04/xbee-mech-drawings.gif?w=300" data-large-file="https://qubits.wordpress.com/wp-content/uploads/2009/04/xbee-mech-drawings.gif?w=500" class="size-full wp-image-32 aligncenter" title="xbee-mech-drawings" src="https://qubits.wordpress.com/wp-content/uploads/2009/04/xbee-mech-drawings.gif?w=500" alt="xbee-mech-drawings"   srcset="https://qubits.wordpress.com/wp-content/uploads/2009/04/xbee-mech-drawings.gif?w=400&amp;h=138 400w, https://qubits.wordpress.com/wp-content/uploads/2009/04/xbee-mech-drawings.gif?w=150&amp;h=52 150w, https://qubits.wordpress.com/wp-content/uploads/2009/04/xbee-mech-drawings.gif?w=300&amp;h=104 300w, https://qubits.wordpress.com/wp-content/uploads/2009/04/xbee-mech-drawings.gif 674w" sizes="(max-width: 400px) 100vw, 400px" /></a></span></p>
<h3><span lang="ES">Características Eléctricas</span></h3>
<p style="text-align:justify;"><span lang="ES"><a href="https://qubits.wordpress.com/wp-content/uploads/2009/04/caracteristicas-electricas.gif"><img data-attachment-id="33" data-permalink="https://qubits.wordpress.com/2009/04/04/esquematico-de-conexionado-y-montaje-de-modulos-xbee/caracteristicas-electricas/" data-orig-file="https://qubits.wordpress.com/wp-content/uploads/2009/04/caracteristicas-electricas.gif" data-orig-size="965,208" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="caracteristicas-electricas" data-image-description="" data-image-caption="" data-medium-file="https://qubits.wordpress.com/wp-content/uploads/2009/04/caracteristicas-electricas.gif?w=300" data-large-file="https://qubits.wordpress.com/wp-content/uploads/2009/04/caracteristicas-electricas.gif?w=500" class="size-full wp-image-33 alignnone" title="caracteristicas-electricas" src="https://qubits.wordpress.com/wp-content/uploads/2009/04/caracteristicas-electricas.gif?w=500" alt="caracteristicas-electricas"   /></a></span></p>
<p class="MsoNormal"><span lang="ES">En el resto del documento se hace una presentación de los diagramas de conexionado y montaje de los distintos dispositivos de hardware utilizados en el presente trabajo. Para cada uno se hace un breve resumen de las características del mismo, se presenta el esquemático y las consideraciones para el montaje.</span></p>
<p class="MsoNormal">
<h2><span lang="ES">Alimentación</span></h2>
<p class="MsoNormal"><span lang="ES">Materiales:</span></p>
<ul type="disc">
<li class="MsoNormal"><span lang="ES">Regulador de voltaje LM317L</span></li>
<li class="MsoNormal"><span lang="ES">Resistencia 240 Ohms</span></li>
<li class="MsoNormal"><span lang="ES">Resistencia variable 5KOhm</span></li>
<li class="MsoNormal"><span lang="ES">3 pilas AA recargables</span></li>
<li class="MsoNormal"><span lang="ES">2 porta-pilas AA de dos elementos</span></li>
</ul>
<p class="MsoNormal"><span lang="ES">El regulador de voltaje utilizado requiere que la diferencia entre tensión de entrada y salida sea de al menos 3 V. Como la salida es de 3,3V, la tensión de entrada debe ser de al menos 6,3 V. Una opción es utilizar baterias de 9 V.</span></p>
<p class="MsoNormal"><span lang="ES">El circuito no incluye capacitores de filtro porque supone que la tensión de entrada de las baterias es muy estable. De ser necesario se pueden incluir a la entrada y la salida del LM317L (<span>ver datasheet</span>).</span></p>
<p class="MsoNormal">
<h3><span lang="ES">Esquemático de conexiones</span></h3>
<p style="text-align:justify;"><span lang="ES"><a href="https://qubits.wordpress.com/wp-content/uploads/2009/04/esquematico-alimentacion.png"><img data-attachment-id="34" data-permalink="https://qubits.wordpress.com/2009/04/04/esquematico-de-conexionado-y-montaje-de-modulos-xbee/esquematico-alimentacion/" data-orig-file="https://qubits.wordpress.com/wp-content/uploads/2009/04/esquematico-alimentacion.png" data-orig-size="460,269" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="esquematico-alimentacion" data-image-description="" data-image-caption="" data-medium-file="https://qubits.wordpress.com/wp-content/uploads/2009/04/esquematico-alimentacion.png?w=300" data-large-file="https://qubits.wordpress.com/wp-content/uploads/2009/04/esquematico-alimentacion.png?w=460" class="size-full wp-image-34 alignnone" title="esquematico-alimentacion" src="https://qubits.wordpress.com/wp-content/uploads/2009/04/esquematico-alimentacion.png?w=500" alt="esquematico-alimentacion"   srcset="https://qubits.wordpress.com/wp-content/uploads/2009/04/esquematico-alimentacion.png?w=230&amp;h=135 230w, https://qubits.wordpress.com/wp-content/uploads/2009/04/esquematico-alimentacion.png?w=150&amp;h=88 150w, https://qubits.wordpress.com/wp-content/uploads/2009/04/esquematico-alimentacion.png?w=300&amp;h=175 300w, https://qubits.wordpress.com/wp-content/uploads/2009/04/esquematico-alimentacion.png 460w" sizes="(max-width: 230px) 100vw, 230px" /></a></span></p>
<h2><span lang="ES">Módulo XBee con conexión a PC</span></h2>
<p class="MsoNormal"><span lang="ES"> </span></p>
<p class="MsoNormal"><span lang="ES">Materiales:</span></p>
<ul type="disc">
<li class="MsoNormal"><span lang="ES">1 protoboard</span></li>
<li class="MsoNormal"><span lang="ES">1 XBee ZNet 2.5 OEM (</span><span><span>WRL-08691)</span></span></li>
<li class="MsoNormal"><span lang="ES">1 XBee Breakout Board (</span><span><span lang="ES">BOB-08276</span></span><span lang="ES">)</span></li>
<li class="MsoNormal"><span lang="ES"><span> </span>2 sockets de 10 pines para XBee</span></li>
<li class="MsoNormal"><span lang="ES">1 pinera para el módulo USB-SERIE y      la placa adaptadora de XBee (2,5 mm de separación)</span></li>
<li class="MsoNormal">1 FT232RL      Breakout Board (módulo USB-SERIE)</li>
<li class="MsoNormal">2      Leds</li>
<li class="MsoNormal">Cables</li>
<li class="MsoNormal">Cable      USB miniB</li>
</ul>
<p class="MsoNormal">
<p class="MsoNormal"><span lang="ES">Algunos ítems difíciles de conseguir se compraron en Sparkfun.com (</span><a href="http://www.sparkfun.com/"><span lang="ES">www.sparkfun.com</span></a><span lang="ES">). Los códigos de las partes son los indicados entre paréntesis.</span></p>
<p class="MsoNormal">
<h3><span lang="ES">Características</span></h3>
<p class="MsoNormal"><span lang="ES">Este es módulo es el encargado de conectar la red ZigBee a la computadora y por lo tanto incluye una interfaz para conectarse a la misma. Las opciones de comunicación que se presentaron durante la etapa de diseño fueron la de utilizar una comunicación serie estándar (RS-232) o mediante puertos USB. La segunda opción, que fue la elegida, tiene la ventaja de que prácticamente todas las computadoras actuales disponen de varios puertos USB para conectar dispositivos, mientras que muy pocas disponen de puertos de comunicación en serie. Esta diferencia es aún más marcadas si nos referimos estrictamente a las computadoras portátiles, cuyos diseños rara vez incluyen puertos seriales.</span></p>
<p class="MsoNormal"><span lang="ES">La placa “FT232RL Breakout Board “ es una interfaz entre la comunicación en serie utilizada por el módulo XBee y la implementada de acuerdo a la norma USB.</span></p>
<p class="MsoNormal">
<h3><span lang="ES">Esquemático de conexiones</span></h3>
<p><span lang="ES"><a href="https://qubits.wordpress.com/wp-content/uploads/2009/04/esquematico-modulo-xbee-usb.png?w=300"><img loading="lazy" data-attachment-id="36" data-permalink="https://qubits.wordpress.com/2009/04/04/esquematico-de-conexionado-y-montaje-de-modulos-xbee/esquematico-modulo-xbee-usb/" data-orig-file="https://qubits.wordpress.com/wp-content/uploads/2009/04/esquematico-modulo-xbee-usb.png" data-orig-size="841,834" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="esquematico-modulo-xbee-usb" data-image-description="" data-image-caption="" data-medium-file="https://qubits.wordpress.com/wp-content/uploads/2009/04/esquematico-modulo-xbee-usb.png?w=300" data-large-file="https://qubits.wordpress.com/wp-content/uploads/2009/04/esquematico-modulo-xbee-usb.png?w=500" class="size-medium wp-image-36 alignnone" title="esquematico-modulo-xbee-usb" src="https://qubits.wordpress.com/wp-content/uploads/2009/04/esquematico-modulo-xbee-usb.png?w=300&#038;h=297" alt="esquematico-modulo-xbee-usb" width="300" height="297" srcset="https://qubits.wordpress.com/wp-content/uploads/2009/04/esquematico-modulo-xbee-usb.png?w=300 300w, https://qubits.wordpress.com/wp-content/uploads/2009/04/esquematico-modulo-xbee-usb.png?w=600 600w, https://qubits.wordpress.com/wp-content/uploads/2009/04/esquematico-modulo-xbee-usb.png?w=150 150w" sizes="(max-width: 300px) 100vw, 300px" /></a></span></p>
<h3><span lang="ES">Montaje</span></h3>
<p class="MsoNormal" style="text-align:justify;"><span lang="ES">La XBee Breakout Board es una placa necesaria para adaptar los pines de 2 mm de separación del módulo XBee a los 2,5 mm de separación del protoboard. Se deben montar los zócalos y las pineras correspondientes a los puntos de conexión de esta placa. El montaje debería quedar como el de la figura<span>.</span></span></p>
<p class="MsoNormal"><span lang="ES"><span><br />
<img loading="lazy" data-attachment-id="37" data-permalink="https://qubits.wordpress.com/2009/04/04/esquematico-de-conexionado-y-montaje-de-modulos-xbee/xbee-breakout-board/" data-orig-file="https://qubits.wordpress.com/wp-content/uploads/2009/04/xbee-breakout-board.jpg" data-orig-size="363,283" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;4.5&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;KODAK EASYSHARE C763 ZOOM DIGITAL CAMERA&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;1238788121&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;15.7&quot;,&quot;iso&quot;:&quot;80&quot;,&quot;shutter_speed&quot;:&quot;0.008822&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="xbee-breakout-board" data-image-description="" data-image-caption="" data-medium-file="https://qubits.wordpress.com/wp-content/uploads/2009/04/xbee-breakout-board.jpg?w=300" data-large-file="https://qubits.wordpress.com/wp-content/uploads/2009/04/xbee-breakout-board.jpg?w=363" class="size-full wp-image-37 alignnone" title="xbee-breakout-board" src="https://qubits.wordpress.com/wp-content/uploads/2009/04/xbee-breakout-board.jpg?w=500" alt="xbee-breakout-board"   srcset="https://qubits.wordpress.com/wp-content/uploads/2009/04/xbee-breakout-board.jpg?w=272&amp;h=212 272w, https://qubits.wordpress.com/wp-content/uploads/2009/04/xbee-breakout-board.jpg?w=150&amp;h=117 150w, https://qubits.wordpress.com/wp-content/uploads/2009/04/xbee-breakout-board.jpg?w=300&amp;h=234 300w, https://qubits.wordpress.com/wp-content/uploads/2009/04/xbee-breakout-board.jpg 363w" sizes="(max-width: 272px) 100vw, 272px" /> <img loading="lazy" data-attachment-id="38" data-permalink="https://qubits.wordpress.com/2009/04/04/esquematico-de-conexionado-y-montaje-de-modulos-xbee/xbee-en-breakout-board/" data-orig-file="https://qubits.wordpress.com/wp-content/uploads/2009/04/xbee-en-breakout-board.jpg" data-orig-size="458,357" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;4.9&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;KODAK EASYSHARE C763 ZOOM DIGITAL CAMERA&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;1238788063&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;17.4&quot;,&quot;iso&quot;:&quot;80&quot;,&quot;shutter_speed&quot;:&quot;0.00802&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="xbee-en-breakout-board" data-image-description="" data-image-caption="" data-medium-file="https://qubits.wordpress.com/wp-content/uploads/2009/04/xbee-en-breakout-board.jpg?w=300" data-large-file="https://qubits.wordpress.com/wp-content/uploads/2009/04/xbee-en-breakout-board.jpg?w=458" class="size-full wp-image-38 alignnone" title="xbee-en-breakout-board" src="https://qubits.wordpress.com/wp-content/uploads/2009/04/xbee-en-breakout-board.jpg?w=500" alt="xbee-en-breakout-board"   srcset="https://qubits.wordpress.com/wp-content/uploads/2009/04/xbee-en-breakout-board.jpg?w=272&amp;h=212 272w, https://qubits.wordpress.com/wp-content/uploads/2009/04/xbee-en-breakout-board.jpg?w=150&amp;h=117 150w, https://qubits.wordpress.com/wp-content/uploads/2009/04/xbee-en-breakout-board.jpg?w=300&amp;h=234 300w, https://qubits.wordpress.com/wp-content/uploads/2009/04/xbee-en-breakout-board.jpg 458w" sizes="(max-width: 272px) 100vw, 272px" /></span></span></p>
<p class="MsoNormal">
<p class="MsoNormal"><span lang="ES">Ambos Breakout Boards pueden se pueden colocar en un protoboard cómo el de la <span>figura, </span>agregando las conexiones necesarias de acuerdo al diagrama esquemático.</span></p>
<p class="MsoNormal"><span lang="ES"><a href="https://qubits.wordpress.com/wp-content/uploads/2009/04/xbee-en-protoboard.jpg?w=300"><img loading="lazy" data-attachment-id="39" data-permalink="https://qubits.wordpress.com/2009/04/04/esquematico-de-conexionado-y-montaje-de-modulos-xbee/xbee-en-protoboard/" data-orig-file="https://qubits.wordpress.com/wp-content/uploads/2009/04/xbee-en-protoboard.jpg" data-orig-size="541,414" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;2.8&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;KODAK EASYSHARE C763 ZOOM DIGITAL CAMERA&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;1238787799&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;5.8&quot;,&quot;iso&quot;:&quot;160&quot;,&quot;shutter_speed&quot;:&quot;0.125&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="xbee-en-protoboard" data-image-description="" data-image-caption="" data-medium-file="https://qubits.wordpress.com/wp-content/uploads/2009/04/xbee-en-protoboard.jpg?w=300" data-large-file="https://qubits.wordpress.com/wp-content/uploads/2009/04/xbee-en-protoboard.jpg?w=500" class="size-medium wp-image-39 alignleft" style="border:20px solid white;" title="xbee-en-protoboard" src="https://qubits.wordpress.com/wp-content/uploads/2009/04/xbee-en-protoboard.jpg?w=300&#038;h=229" alt="xbee-en-protoboard" width="300" height="229" srcset="https://qubits.wordpress.com/wp-content/uploads/2009/04/xbee-en-protoboard.jpg?w=300 300w, https://qubits.wordpress.com/wp-content/uploads/2009/04/xbee-en-protoboard.jpg?w=150 150w, https://qubits.wordpress.com/wp-content/uploads/2009/04/xbee-en-protoboard.jpg 541w" sizes="(max-width: 300px) 100vw, 300px" /></a></span></p>
<p class="MsoNormal">
<h2><span lang="ES">Módulo XBee independiente (baliza)</span></h2>
<p class="MsoNormal"><span lang="ES">Materiales:</span></p>
<ul type="disc">
<li class="MsoNormal"><span lang="ES">1 XBee ZNet 2.5 OEM (</span><span><span>WRL-08691)</span></span></li>
<li class="MsoNormal"><span lang="ES">Fuente de alimentación de 3.3V</span></li>
</ul>
<h3><span lang="ES">Características</span></h3>
<p class="MsoNormal"><span lang="ES">Para que el módulo XBee funcione alcanza con proveerle una alimentación dentro del rango y conectar los pines de entrada y salida de la comunicación serie. Como nuestros módulos independientes sólo necesitan reenviar la información recibida se instrumenta un loopback por hardware, uniendo la salida de datos con la entrada (en el módulo, los pines 2 y 3 respectivamente).</span></p>
<p class="MsoNormal">
<p class="MsoNormal">
<h3><span lang="ES">Esquemático</span></h3>
<p><span lang="ES"><img loading="lazy" data-attachment-id="40" data-permalink="https://qubits.wordpress.com/2009/04/04/esquematico-de-conexionado-y-montaje-de-modulos-xbee/esquematico-modulo-xbee-independiente/" data-orig-file="https://qubits.wordpress.com/wp-content/uploads/2009/04/esquematico-modulo-xbee-independiente.png" data-orig-size="280,428" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="esquematico-modulo-xbee-independiente" data-image-description="" data-image-caption="" data-medium-file="https://qubits.wordpress.com/wp-content/uploads/2009/04/esquematico-modulo-xbee-independiente.png?w=196" data-large-file="https://qubits.wordpress.com/wp-content/uploads/2009/04/esquematico-modulo-xbee-independiente.png?w=280" class="size-medium wp-image-40 alignnone" title="esquematico-modulo-xbee-independiente" src="https://qubits.wordpress.com/wp-content/uploads/2009/04/esquematico-modulo-xbee-independiente.png?w=196&#038;h=300" alt="esquematico-modulo-xbee-independiente" width="196" height="300" srcset="https://qubits.wordpress.com/wp-content/uploads/2009/04/esquematico-modulo-xbee-independiente.png?w=196 196w, https://qubits.wordpress.com/wp-content/uploads/2009/04/esquematico-modulo-xbee-independiente.png?w=98 98w, https://qubits.wordpress.com/wp-content/uploads/2009/04/esquematico-modulo-xbee-independiente.png 280w" sizes="(max-width: 196px) 100vw, 196px" /><br />
</span></p>
<p class="MsoNormal">
<h3><span lang="ES">Montaje</span></h3>
<p class="MsoNormal"><span lang="ES">Como única indicación para el montaje, cuidar que la antena del módulo XBee quede visible y libre de obstáculos para tener una línea de vista directa con los demás dispositivos.</span></p>
<p class="MsoNormal">
<h2><span lang="ES">Comprobación de funcionamiento</span></h2>
<p class="MsoNormal"><span lang="ES">Para comprobar el funcionamiento de los módulos es necesario utilizar el módulo XBee con conexión USB descripto anteriormente. Mediante el software X-CTU, provisto por Digi es posible programar los módulos XBee, actualizar sus firmwares y realizar todas las pruebas necesarias para verificar el buen funcionamiento de los mismos.</span></p>
<p class="MsoNormal"><img loading="lazy" data-attachment-id="41" data-permalink="https://qubits.wordpress.com/2009/04/04/esquematico-de-conexionado-y-montaje-de-modulos-xbee/xctu1/" data-orig-file="https://qubits.wordpress.com/wp-content/uploads/2009/04/xctu1.jpg" data-orig-size="456,567" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="xctu1" data-image-description="" data-image-caption="" data-medium-file="https://qubits.wordpress.com/wp-content/uploads/2009/04/xctu1.jpg?w=241" data-large-file="https://qubits.wordpress.com/wp-content/uploads/2009/04/xctu1.jpg?w=456" class="alignnone size-full wp-image-41" title="xctu1" src="https://qubits.wordpress.com/wp-content/uploads/2009/04/xctu1.jpg?w=500" alt="xctu1"   srcset="https://qubits.wordpress.com/wp-content/uploads/2009/04/xctu1.jpg 456w, https://qubits.wordpress.com/wp-content/uploads/2009/04/xctu1.jpg?w=121&amp;h=150 121w, https://qubits.wordpress.com/wp-content/uploads/2009/04/xctu1.jpg?w=241&amp;h=300 241w" sizes="(max-width: 456px) 100vw, 456px" /></p>
<p class="MsoNormal">
<p class="MsoNormal"><span lang="ES">El software X-CTU (</span><a href="http://www.digi.com/support/productdetl.jsp?pid=3352&amp;osvid=57&amp;tp=4&amp;s=316"><span lang="ES">http://www.digi.com/support/productdetl.jsp?pid=3352&amp;osvid=57&amp;tp=4&amp;s=316</span></a><span lang="ES">).</span></p>
<p class="MsoNormal"><span lang="ES"> </span></p>
<p class="MsoNormal"><span lang="ES">La comunicación USB está basada en el circuito integrado FT232R. El fabricante del chip provee un driver que instala un puerto serie virtual en Windows (</span><a href="http://www.ftdichip.com/Drivers/VCP.htm"><span lang="ES">http://www.ftdichip.com/Drivers/VCP.htm</span></a><span lang="ES">). Una vez está instalado el driver, se debe conectar el módulo XBee utilizando el cable USB MiniB e iniciar X-CTU (Nota: si X-CTU se inicia con anterioridad a la conexión, el puerto virtual podría no aparecer). Con el botón “Test / Query” se puede verificar la conexión; si esta es correcta, debe aparecer el nombre del modem del dispostivo XBee y la versión del firmware instalado. Para el módulo XBee utlizado el nombre del modem es X24-B.</span></p>
<p class="MsoNormal"><span lang="ES"><img loading="lazy" data-attachment-id="43" data-permalink="https://qubits.wordpress.com/2009/04/04/esquematico-de-conexionado-y-montaje-de-modulos-xbee/xctu2/" data-orig-file="https://qubits.wordpress.com/wp-content/uploads/2009/04/xctu2.jpg" data-orig-size="456,567" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="xctu2" data-image-description="" data-image-caption="" data-medium-file="https://qubits.wordpress.com/wp-content/uploads/2009/04/xctu2.jpg?w=241" data-large-file="https://qubits.wordpress.com/wp-content/uploads/2009/04/xctu2.jpg?w=456" class="alignnone size-full wp-image-43" title="xctu2" src="https://qubits.wordpress.com/wp-content/uploads/2009/04/xctu2.jpg?w=500" alt="xctu2"   srcset="https://qubits.wordpress.com/wp-content/uploads/2009/04/xctu2.jpg 456w, https://qubits.wordpress.com/wp-content/uploads/2009/04/xctu2.jpg?w=121&amp;h=150 121w, https://qubits.wordpress.com/wp-content/uploads/2009/04/xctu2.jpg?w=241&amp;h=300 241w" sizes="(max-width: 456px) 100vw, 456px" /></span></p>
<p class="MsoNormal">
<p class="MsoNormal">
<p class="MsoNormal" style="text-align:justify;"><span lang="ES">Seguidamente se debe programar el firmware en cada uno de los dispositivos XBee que se van a utilizar. Es importante tener actualizadas las versiones de los firmwares; para esto se debe presionar el botón “Download new versions&#8230;”. Una vez finalizada la actualización, se debe seleccionar el firmware a grabar y presionar el botón “Write”. Las versiones utilizadas en este trabajo son “ZNET 2.5 COORDINATOR AT” y “ZNET 2.5 ROUTER/END DEVICE AT”, que permiten la comunicación mediante comandos AT a través del puerto serie.</span></p>
<p class="MsoNormal"><span lang="ES">Es necesario configurar un nodo como coordinador y dejar los demás como routers o end devices para que la red funcione apropiadamente.</span></p>
<p class="MsoNormal" style="text-align:justify;"><span lang="ES">Por default los nodos vienen configurados para enviar la información al coordinador por lo que es muy fácil probar los dos dispositivos usando la solapa terminal de X-CTU. Si uno de los dispositivos se lo conecta como módulo XBee independiente (con loopback por hardware), todo mensaje enviado por la terminal debería ser repetido por el receptor.</span></p>
<p class="MsoNormal"><span lang="ES"><!--[if gte vml 1]&gt;                    &lt;![endif]--></span></p>
]]></content:encoded>
					
					<wfw:commentRss>https://qubits.wordpress.com/2009/04/04/esquematico-de-conexionado-y-montaje-de-modulos-xbee/feed/</wfw:commentRss>
			<slash:comments>46</slash:comments>
		
		
		
		<media:content url="https://0.gravatar.com/avatar/0534a80bae17614c85382eb2ca4e19ba0ea9cd41512d927acbfd7e6ced0b378f?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">miguelio</media:title>
		</media:content>

		<media:content url="https://qubits.wordpress.com/wp-content/uploads/2009/04/xbee-mech-drawings.gif" medium="image">
			<media:title type="html">xbee-mech-drawings</media:title>
		</media:content>

		<media:content url="https://qubits.wordpress.com/wp-content/uploads/2009/04/caracteristicas-electricas.gif" medium="image">
			<media:title type="html">caracteristicas-electricas</media:title>
		</media:content>

		<media:content url="https://qubits.wordpress.com/wp-content/uploads/2009/04/esquematico-alimentacion.png" medium="image">
			<media:title type="html">esquematico-alimentacion</media:title>
		</media:content>

		<media:content url="https://qubits.wordpress.com/wp-content/uploads/2009/04/esquematico-modulo-xbee-usb.png?w=300" medium="image">
			<media:title type="html">esquematico-modulo-xbee-usb</media:title>
		</media:content>

		<media:content url="https://qubits.wordpress.com/wp-content/uploads/2009/04/xbee-breakout-board.jpg" medium="image">
			<media:title type="html">xbee-breakout-board</media:title>
		</media:content>

		<media:content url="https://qubits.wordpress.com/wp-content/uploads/2009/04/xbee-en-breakout-board.jpg" medium="image">
			<media:title type="html">xbee-en-breakout-board</media:title>
		</media:content>

		<media:content url="https://qubits.wordpress.com/wp-content/uploads/2009/04/xbee-en-protoboard.jpg?w=300" medium="image">
			<media:title type="html">xbee-en-protoboard</media:title>
		</media:content>

		<media:content url="https://qubits.wordpress.com/wp-content/uploads/2009/04/esquematico-modulo-xbee-independiente.png?w=196" medium="image">
			<media:title type="html">esquematico-modulo-xbee-independiente</media:title>
		</media:content>

		<media:content url="https://qubits.wordpress.com/wp-content/uploads/2009/04/xctu1.jpg" medium="image">
			<media:title type="html">xctu1</media:title>
		</media:content>

		<media:content url="https://qubits.wordpress.com/wp-content/uploads/2009/04/xctu2.jpg" medium="image">
			<media:title type="html">xctu2</media:title>
		</media:content>
	</item>
		<item>
		<title>Más links interesantes recolectados en los últimos días</title>
		<link>https://qubits.wordpress.com/2008/10/02/mas-links-interesantes-recolectados-en-los-ultimos-dias/</link>
					<comments>https://qubits.wordpress.com/2008/10/02/mas-links-interesantes-recolectados-en-los-ultimos-dias/#respond</comments>
		
		<dc:creator><![CDATA[miguelio]]></dc:creator>
		<pubDate>Thu, 02 Oct 2008 00:46:31 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[clases]]></category>
		<category><![CDATA[cuda]]></category>
		<category><![CDATA[flow]]></category>
		<category><![CDATA[games]]></category>
		<category><![CDATA[juegos]]></category>
		<category><![CDATA[licencia]]></category>
		<category><![CDATA[links]]></category>
		<category><![CDATA[neural networks]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[rapidshare]]></category>
		<category><![CDATA[redes neuronales]]></category>
		<category><![CDATA[video]]></category>
		<category><![CDATA[videolectures]]></category>
		<guid isPermaLink="false">http://qubits.wordpress.com/?p=26</guid>

					<description><![CDATA[Flow in Games: Una tesis interesante sobre los factores que influyen en el placer de jugar Video-Juegos y como controlarlos para que la experiencia del jugador sea satisfactoria. VideoLectures: Videos de clases universitarias ONLINE!!! Casi todas en inglés&#8230; pero bueno, así es el mundo. RapidSafe: Sitio muy útil para evitar esperar 1 hora o más [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><a href="http://www.jenovachen.com/flowingames/articles.htm">Flow in Games</a>: Una tesis interesante sobre los factores que influyen en el placer de jugar Video-Juegos y como controlarlos para que la experiencia del jugador sea satisfactoria.</p>
<p><a href="http://videolectures.net/">VideoLectures</a>: Videos de clases universitarias ONLINE!!! Casi todas en inglés&#8230; pero bueno, así es el mundo.</p>
<p><a href="http://rapidsafe.net/">RapidSafe</a>: Sitio muy útil para evitar esperar 1 hora o más al bajar el próximo link de <a href="http://www.rapidshare.com/">RapidShare</a>.</p>
<p><a href="http://www.neurevolution.net/">Neuroevolution</a>: Blog especializado en redes neuronales</p>
<p><a href="http://creativecommons.org/license/">Choose a license</a>: Para elegir correctamente una licencia Open Source</p>
<p><a href="http://www.ddj.com/cpp/207200659">Dr. Dobb&#8217;s CUDA Tutorial</a>: Muy bueno para dar los primeros pasos en <a href="http://www.ddj.com/cpp/207200659">CUDA</a>. Cuda es un entorno en lenguaje C que permite programar sobre placas gráficas de NVIDIA (Serie 8 en adelante).</p>
<p><a href="http://www.willamette.edu/~gorr/classes/cs449/intro.html">Introduccion a Redes Neuronales</a>: Buenos apuntes.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://qubits.wordpress.com/2008/10/02/mas-links-interesantes-recolectados-en-los-ultimos-dias/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		
		<media:content url="https://0.gravatar.com/avatar/0534a80bae17614c85382eb2ca4e19ba0ea9cd41512d927acbfd7e6ced0b378f?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">miguelio</media:title>
		</media:content>
	</item>
		<item>
		<title>Hello World en JNI</title>
		<link>https://qubits.wordpress.com/2008/09/16/hello-world-en-jni/</link>
					<comments>https://qubits.wordpress.com/2008/09/16/hello-world-en-jni/#comments</comments>
		
		<dc:creator><![CDATA[miguelio]]></dc:creator>
		<pubDate>Tue, 16 Sep 2008 04:04:22 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[c]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[jni]]></category>
		<category><![CDATA[lenguaje c]]></category>
		<category><![CDATA[Microchip]]></category>
		<category><![CDATA[PIC]]></category>
		<category><![CDATA[pic18]]></category>
		<category><![CDATA[programacion]]></category>
		<category><![CDATA[windows]]></category>
		<guid isPermaLink="false">http://qubits.wordpress.com/?p=20</guid>

					<description><![CDATA[Como parte de mi proyecto de conectar pics de la serie 18 de microchip con java escribí este artículo sobre como realizar un programa en java usando JNI: Introducción  Este documento muestra como construir un Hello World usando JNI. JNI es la sigla de «Java Native Interface» y como su nombre lo indica, es una [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Como parte de mi proyecto de conectar pics de la serie 18 de microchip con java escribí <a href="http://code.google.com/p/jmpusbapi/wiki/HelloWorld">este artículo </a>sobre como realizar un programa en java usando JNI:</p>
<p><strong>Introducción </strong></p>
<p>Este documento muestra como construir un Hello World usando JNI.</p>
<p>JNI es la sigla de «Java Native Interface» y como su nombre lo indica, es una interfaz que permite llamar a funciones compiladas en el código nativo de la máquina en que se está ejecutando el programa.</p>
<p>Para esto, primero debemos escribir la función en algún lenguaje y compilarla como una librería del entorno en el que vamos a llamarla. (Por ejemplo en Windows, podemos compilar una DLL en Visual C++ con las funciones que queremos llamar desde Java).</p>
<p><strong>Hello JNI World</strong></p>
<p>Antes que nada, si queremos usar JNI tenemos que poder compilar un ejemplo simple y verificar como funciona:</p>
<p><span id="more-20"></span></p>
<h2>Mundo Java</h2>
<p>Se empieza por crear la clase Java definiendo la interfaz de comunicación con la futura DLL.</p>
<p> </p>
<p> </p>
<p style="padding-left:30px;"><em>import java.util.*;</em></p>
<p style="padding-left:30px;"><em><br />
</em></p>
<p style="padding-left:30px;"><em>class HelloWorld {</em></p>
<p style="padding-left:30px;"><em>//Native method declaration</em></p>
<p style="padding-left:30px;"><em>  native void sayHello(String name);</em></p>
<p style="padding-left:30px;"><em>//Load the library</em></p>
<p style="padding-left:30px;"><em>  static {</em></p>
<p style="padding-left:30px;"><em>    System.loadLibrary(«helloworld»);</em></p>
<p style="padding-left:30px;"><em>  }</em></p>
<p style="padding-left:30px;"><em><br />
</em></p>
<p style="padding-left:30px;"><em>  public static void main(String args[]) {</em></p>
<p style="padding-left:30px;"><em>//Create class instance</em></p>
<p style="padding-left:30px;"><em>    HelloWorld hello =new HelloWorld();</em></p>
<p style="padding-left:30px;"><em>//Call native method</em></p>
<p style="padding-left:30px;"><em>    hello.sayHello(«Nerdy»);</em></p>
<p style="padding-left:30px;"><em>  }</em></p>
<p style="padding-left:30px;"><em>}</em></p>
<p style="padding-left:30px;"> </p>
<p> </p>
<p>Compilar la clase con el comando «javac HelloWorld.java»</p>
<p> </p>
<p>Luego ejecutar el comando «javah HelloWorld». Se generará un header HelloWorld.h que contiene la descripción de los métodos que debería implementar la libería dll:</p>
<p> </p>
<p style="padding-left:30px;"><em>/* DO NOT EDIT THIS FILE &#8211; it is machine generated */<br />
</em></p>
<p style="padding-left:30px;"><em>#include &lt;jni.h&gt;</em></p>
<p style="padding-left:30px;"><em>/* Header for class HelloWorld */</em></p>
<p style="padding-left:30px;"><em><br />
</em></p>
<p style="padding-left:30px;"><em>#ifndef _Included_HelloWorld</em></p>
<p style="padding-left:30px;"><em>#define _Included_HelloWorld</em></p>
<p style="padding-left:30px;"><em>#ifdef __cplusplus</em></p>
<p style="padding-left:30px;"><em>extern «C» {</em></p>
<p style="padding-left:30px;"><em>#endif</em></p>
<p style="padding-left:30px;"><em>/*</em></p>
<p style="padding-left:30px;"><em> * Class:     HelloWorld</em></p>
<p style="padding-left:30px;"><em> * Method:    sayHello</em></p>
<p style="padding-left:30px;"><em> * Signature: (Ljava/lang/String;)V</em></p>
<p style="padding-left:30px;"><em> */</em></p>
<p style="padding-left:30px;"><em>JNIEXPORT void JNICALL Java_HelloWorld_sayHello</em></p>
<p style="padding-left:30px;"><em>  (JNIEnv *, jobject, jstring);</em></p>
<p style="padding-left:30px;"><em><br />
</em></p>
<p style="padding-left:30px;"><em>#ifdef __cplusplus</em></p>
<p style="padding-left:30px;"><em>}</em></p>
<p style="padding-left:30px;"><em>#endif</em></p>
<p style="padding-left:30px;"><em>#endif</em></p>
<p style="padding-left:30px;"> </p>
<p> </p>
<h2>Mundo C</h2>
<p>Cómo paso siguiente vamos a implementar la función en C++ (en realidad en C, porque no vamos a crear ninguna clase) para Visual C++ de esta manera:</p>
<p> </p>
<p style="padding-left:30px;"><em>#include &lt;jni.h&gt;<br />
</em></p>
<p style="padding-left:30px;"><em>#include «HelloWorld.h»</em></p>
<p style="padding-left:30px;"><em>#include &lt;stdio.h&gt;</em></p>
<p style="padding-left:30px;"><em><br />
</em></p>
<p style="padding-left:30px;"><em>JNIEXPORT void JNICALL </em></p>
<p style="padding-left:30px;"><em>Java_HelloWorld_sayHello(JNIEnv *env, jobject obj, jstring name)</em></p>
<p style="padding-left:30px;"><em>{</em></p>
<p style="padding-left:30px;"><em>  jboolean iscopy;</em></p>
<p style="padding-left:30px;"><em>  const char *charsname = (*env)-&gt;GetStringUTFChars(</em></p>
<p style="padding-left:30px;"><em>                env, name, &amp;iscopy);</em></p>
<p style="padding-left:30px;"><em>  printf(«Hello «);</em></p>
<p style="padding-left:30px;"><em>  printf(charsname);</em></p>
<p style="padding-left:30px;"><em>  printf(«, this is your first JNI library\n»);</em></p>
<p style="padding-left:30px;"><em>  return;</em></p>
<p style="padding-left:30px;"><em>}</em></p>
<p style="padding-left:30px;"> </p>
<p> </p>
<p>Algunas observaciones:</p>
<p> * <em>#include &lt;jni.h&gt;</em>: Esta línea es necesaria para poder usar las funciones de JNI dentro de la DLL. JNI implementa «métodos» y constantes para comunicarse con Java, por ejemplo para convertir tipos de datos. </p>
<p> * <em>JNIEXPORT void JNICALL</em>: Esta línea es un ejemplo del uso de definiciones JNI para código C, indica como se exporta la función en la dll y el método de llamada a la misma. Lo único que nos importa es que tiene que ir así.</p>
<p> * <em>JNIEnv *env</em>: Este es un puntero al objeto environment de JNI. Con los métodos de este objeto hacemos por ejemplo transformaciones de formato de los parámetros. Además es un handler al thread actual de la máquina virtual de java.</p>
<p> * <em>jobject obj</em> : Esta es la referencia al método de Java que llama a la función. Supongo que sirve para hacer recursión. Si el método que hace la llamada es estático viene un jclass.</p>
<p> * <em>jstring</em>: La clase String de Java no existe en C++, hay que hacer una conversión para poder usar los datos. Esto se hace en la línea <em>const char *charsname = (*env)-&gt;GetStringUTFChars(env, name, &amp;iscopy);</em> donde <em>*charsname</em> es un puntero a un char que en realidad apunta a una cadena de caracteres (ver pointers en C) y el operador <em>-&gt;</em> es como el punto «.» en Java pero para objetos referenciados por puntero (el tipo env de era <em>JNIEnv*</em> y por eso hay que usarlo).</p>
<p> </p>
<p>Por último, una vez está escrito el código hay que compilar. La forma más fácil de hacer esto (si la DLL está compuesta de un único archivo .c) es compilarla directamente desde linea de comandos. Para eso hay que abrir «Simbolo de Sistema de Visual Studio». Esto despliega una nostálgica ventana de DOS donde se puede ejecutar el comando para generar la librería. No lo hacemos con la línea de comandos común y corriente (ejecutando cmd) porque haría falta setear muchas variables de entorno de Visual Studio.</p>
<p> </p>
<p>Lo mejor para compilar es meter el comando dentro de un archivo .bat para poder usar la variable de entorno %JAVA_HOME% que apunta al directorio del JDK. Dentro de este la carpeta include contiene el archivo «jni.h» al que se hace referencia desde el código de la DLL. Luego desde la consola de Visual Studio llamamos a nuestro script (por ejemplo makeDLL.bat).</p>
<p> </p>
<p>El comando dentro del archivo makeDLL.bat es:</p>
<p> </p>
<p>cl -I%JAVA_HOME%/include -I%JAVA_HOME%/include/win32 -LD HelloWorld.c -Fehelloworld.dll</p>
<p> </p>
<p>La opción -I incluye al directorio para buscar los includes, -LD indica el archivo fuente con el que creará una DLL y por último -Fe indica el nombre del archivo de salida.</p>
<p>Esto generará el archivo HelloWorld.dll y sus correspondientes HelloWorld.obj y HelloWorld.lib que no nos sirven para nada y se pueden borrar.</p>
<p> </p>
<p>Finalmente, para probar el programa ejecutamos «java HelloWorld» y obtenemos la siguiente salida:</p>
<p> </p>
<p style="padding-left:30px;"><em><strong>Hello Nerdy, this is your first JNI library</strong></em></p>
<p> </p>
<h2>Conclusión</h2>
<p>A esta altura creo que se habrán dado cuenta de que JNI no es fácil. No es algo trivial (sobre todo si piensan en objetos complejos y threads). </p>
<p>Este fue uno de los HelloWorld más complicados que ví en mi vida. Por suerte hay bastante buena documentación en Internet:</p>
<p> * Introductoria: <a href="http://java.sun.com/developer/onlineTraining/Programming/JDCBook/jni.html">http://java.sun.com/developer/onlineTraining/Programming/JDCBook/jni.html</a> de acá saqué en parte las cosas para hacer el HelloWorld</p>
<p> * Más completo: <a href="http://java.sun.com/docs/books/jni/">Java Native Interface: Programmer&#8217;s Guide and Specification</a>. Se puede bajar el libro en html o pdf o verlo en línea.</p>
<p> * Especificación completa: <a href="http://java.sun.com/javase/6/docs/technotes/guides/jni/index.html">http://java.sun.com/javase/6/docs/technotes/guides/jni/index.html</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://qubits.wordpress.com/2008/09/16/hello-world-en-jni/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
		
		<media:content url="https://0.gravatar.com/avatar/0534a80bae17614c85382eb2ca4e19ba0ea9cd41512d927acbfd7e6ced0b378f?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">miguelio</media:title>
		</media:content>
	</item>
		<item>
		<title>Links compilados durante la última semana</title>
		<link>https://qubits.wordpress.com/2008/08/19/links-compilados-durante-la-ultima-semana/</link>
					<comments>https://qubits.wordpress.com/2008/08/19/links-compilados-durante-la-ultima-semana/#respond</comments>
		
		<dc:creator><![CDATA[miguelio]]></dc:creator>
		<pubDate>Tue, 19 Aug 2008 03:06:06 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[jni]]></category>
		<category><![CDATA[links]]></category>
		<category><![CDATA[Microchip]]></category>
		<category><![CDATA[parser]]></category>
		<category><![CDATA[PIC]]></category>
		<category><![CDATA[tests]]></category>
		<category><![CDATA[usb]]></category>
		<category><![CDATA[vocacionales]]></category>
		<category><![CDATA[xml]]></category>
		<guid isPermaLink="false">http://qubits.wordpress.com/?p=18</guid>

					<description><![CDATA[Les dejo un resumen de los links a los sitios más útiles que encontre la semana pasada, junto a una breve descripción del contenido. Tests Vocacionales Online: Entrada en un blog de Blogger con links a varios tests vocacionales online. Algunos links rotos, otros apuntan a tests muy buenos. Ya estoy grande para estas cosas [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Les dejo un resumen de los links a los sitios más útiles que encontre la semana pasada, junto a una breve descripción del contenido.</p>
<p><a href="http://noti-tech.blogspot.com/2006/08/test-vocacionales-online.html">Tests Vocacionales Online</a>: Entrada en un blog de Blogger con links a varios tests vocacionales online. Algunos links rotos, otros apuntan a tests muy buenos. Ya estoy grande para estas cosas pero tenía que pasárselos a un conocido&#8230;</p>
<p><a href="http://www.cafeconleche.org/XOM/">XOM XML Parser</a><strong>: </strong>Parser y modelo de objetos de XML. Lo pienso utilizar para levantar documentos KML de Google Earth en el contexto de un trabajo de investigación sobre Sistemas de Información Geográfica(GIS).</p>
<p><a href="http://java.sun.com/docs/books/jni/html/titlepage.html">The Java Native Inteface Guide and Specification</a><strong>: </strong>Sitio oficial de sun con la guía de desarrollo JNI. Muy completo. Lo voy a utilizar en un proyecto para crear una interfaz entre dispositivos USB y Java desde Windows.</p>
<p><a href="http://picmania.garcia-cuervo.com/USB_MPUSBAPI_DLL.php">MPUSBAPI Library</a><strong>: </strong>Especificación (no oficial) del api (DLL en windows) para comunicar con dispositivos USB de Microchip.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://qubits.wordpress.com/2008/08/19/links-compilados-durante-la-ultima-semana/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		
		<media:content url="https://0.gravatar.com/avatar/0534a80bae17614c85382eb2ca4e19ba0ea9cd41512d927acbfd7e6ced0b378f?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">miguelio</media:title>
		</media:content>
	</item>
		<item>
		<title>Displays LCD Alfanuméricos</title>
		<link>https://qubits.wordpress.com/2008/08/11/displays-lcd-alfanumericos/</link>
					<comments>https://qubits.wordpress.com/2008/08/11/displays-lcd-alfanumericos/#comments</comments>
		
		<dc:creator><![CDATA[miguelio]]></dc:creator>
		<pubDate>Mon, 11 Aug 2008 02:57:33 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[c]]></category>
		<category><![CDATA[control]]></category>
		<category><![CDATA[display]]></category>
		<category><![CDATA[Electrónica]]></category>
		<category><![CDATA[electrónico]]></category>
		<category><![CDATA[Microchip]]></category>
		<category><![CDATA[microcontrolador]]></category>
		<category><![CDATA[microcontroladores]]></category>
		<category><![CDATA[PIC]]></category>
		<category><![CDATA[programacion]]></category>
		<category><![CDATA[wh1601A]]></category>
		<category><![CDATA[winstar]]></category>
		<guid isPermaLink="false">http://qubits.wordpress.com/?p=14</guid>

					<description><![CDATA[Cansado de programar pics sin tener una salida donde graficar los resultados(excepto RS232 que a veces también falla) al fin me decidí por aprender a programar LCDs alfanuméricos. La información en internet no es tan buena como uno debería esperar. Despues de buscar mucho pude encontrar estos tres recursos, que son los que más me [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Cansado de programar pics sin tener una salida donde graficar los resultados(excepto RS232 que a veces también falla) al fin me decidí por aprender a programar LCDs alfanuméricos.</p>
<p>La información en internet no es tan buena como uno debería esperar. Despues de buscar mucho pude encontrar estos tres recursos, que son los que más me sirvieron:</p>
<p><a href="http://home.iae.nl/users/pouweha/lcd/lcd0.shtml">Especificaciones del controlador HD44780</a></p>
<p>Muy bueno, incluye todos los comandos y un ejemplo para controlar el display desde un micro PIC.</p>
<p>Revista<a href="http://www.ucontrol.com.ar/revista/0003/ucontrol_revista_0003.pdf"> </a><a href="http://www.ucontrol.com.ar/revista/0001/ucontrol_revista_0001.pdf">UCONTROL1</a> <a href="http://www.ucontrol.com.ar/revista/0003/ucontrol_revista_0003.pdf">UCONTROL3</a></p>
<p>Tiene un artículo sobre displays LCD alfanuméricos. Ayuda mucho a entender como funcionan. Cambiando los números en la dirección URL podemos acceder a las demás revistas. (ojo!!! cambiar los dos números de la dirección si no no anda).</p>
<p><a href="http://www.pablin.com.ar/electron/circuito/mc/termost/index.htm"><span style="font-size:large;font-family:Arial;">Termostato electrónico con PIC y LCD</span></a></p>
<p>Un proyecto del archiconocido sitio <a href="http://www.pablin.com.ar">www.pablin.com.ar</a>, para controlar temperatura y mostrarla en un display. También útil para el conexionado.</p>
<h2><span style="color:#888888;">Mi proyecto</span></h2>
<p>En mi proyecto conecté un diplay <a href="http://www.winstar.com.tw/products_detail_ov.php?ProID=18">Winstar WH1601A</a> a un PIC16F873A por el puerto D, utilizando BUS de 8 bits. Las señales de control EN, RS y R/W las conecté a patas del puerto A (A5, A2 y A4 respectivamente). El código necesario para manejar el display es el siguiente:</p>
<p><strong><em>Archivo driver.h:</em></strong></p>
<p style="padding-left:30px;"><em>#ifndef Driver<br />
#define Driver</em></p>
<p style="padding-left:30px;"><em>void initDisplay();<br />
void drive(int16);<br />
void writeString(char*);<br />
void writeChar(char);<br />
void writeControl(int8);<br />
void clearLCD();</em></p>
<p style="padding-left:30px;"><em>//reemplazar por la función que envía datos al display<br />
#define OUTPUTBUS output_c<br />
//reemplazar por la función que espera a que el display tome el comando<br />
#define DISPLAY_DELAY delay_ms(2)<br />
//Manejo de las líneas de control, reemplazar con lo que corresponda<br />
#define SETRS output_high(PIN_A2)<br />
#define CLEARRS output_low(PIN_A2)<br />
#define SETEN output_high(PIN_A5)<br />
#define CLEAREN output_low(PIN_A5)<br />
#define SETRW output_high(PIN_A4)<br />
#define CLEARRW output_low(PIN_A4)</em></p>
<p style="padding-left:30px;"><em>#define DISPLAY_DB_SIZE 0x38<br />
#define TURN_ON 0x0E<br />
#define DISPLAY_CONF 0x06<br />
#define CLEAR_LCD 0x01</em></p>
<p style="padding-left:30px;"><em>#endif</em></p>
<p><strong><em>Archivo driver.c:</em></strong></p>
<p style="padding-left:30px;"><em>#include «Driver.h»<br />
#include «Descongelador.h»<br />
#include &lt;string.h&gt;</em></p>
<p style="padding-left:30px;"><em>char buf[8]; //En este lugar vamos a ubicar los datos a mostrar en el display</em></p>
<p style="padding-left:30px;"><em>void initDisplay(){<br />
CLEARRS;<br />
CLEARRW;<br />
CLEAREN;<br />
delay_ms(15);</em></p>
<p style="padding-left:30px;"><em>//Configuro el display<br />
writeControl(DISPLAY_DB_SIZE);<br />
//Lo encendemos<br />
writeControl(TURN_ON);<br />
//Configuraciones adicionales<br />
writeControl(DISPLAY_CONF);<br />
//Escribe el mensaje de inicialización<br />
clearLCD();<br />
drive(127);<br />
}</em></p>
<p style="padding-left:30px;"><em>//Esta función se encarga de enviar al display la temperatura indicada en las unidades definidas en el termostato.<br />
void drive(int16 t){<br />
int16 temperatura;<br />
temperatura = (t * 10) / UNIDADES_POR_GRADO;<br />
sprintf(buf,» %2.1w*C»,temperatura);<br />
writeString(buf);<br />
}</em></p>
<p style="padding-left:30px;"><em>void writeString(char* str){<br />
int i;<br />
int n;<br />
n = strlen(str);<br />
for (i = 0; i &lt; n; i++){<br />
writeChar(str[i]);<br />
}<br />
}</em></p>
<p style="padding-left:30px;"><em>void writeChar(char c){<br />
CLEARRW;<br />
SETRS;<br />
OUTPUTBUS(c);<br />
SETEN;<br />
delay_us(2);<br />
CLEAREN;<br />
DISPLAY_DELAY;<br />
}</em></p>
<p style="padding-left:30px;"><em>void writeControl(int8 data){<br />
CLEARRW;<br />
CLEARRS;<br />
OUTPUTBUS(data);<br />
SETEN;<br />
delay_us(2);<br />
CLEAREN;<br />
DISPLAY_DELAY;<br />
}</em></p>
<p style="padding-left:30px;"><em>void clearLCD(){<br />
CLEARRW;<br />
CLEARRS;<br />
OUTPUTBUS(CLEAR_LCD);<br />
SETEN;<br />
delay_us(2);<br />
CLEAREN;<br />
DISPLAY_DELAY;<br />
}<br />
</em></p>
<p><strong>Todo funcionó perfectamente!!!</strong></p>
]]></content:encoded>
					
					<wfw:commentRss>https://qubits.wordpress.com/2008/08/11/displays-lcd-alfanumericos/feed/</wfw:commentRss>
			<slash:comments>13</slash:comments>
		
		
		
		<media:content url="https://0.gravatar.com/avatar/0534a80bae17614c85382eb2ca4e19ba0ea9cd41512d927acbfd7e6ced0b378f?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">miguelio</media:title>
		</media:content>
	</item>
		<item>
		<title>¿P=NP?</title>
		<link>https://qubits.wordpress.com/2008/07/22/%c2%bfpnp/</link>
					<comments>https://qubits.wordpress.com/2008/07/22/%c2%bfpnp/#respond</comments>
		
		<dc:creator><![CDATA[miguelio]]></dc:creator>
		<pubDate>Tue, 22 Jul 2008 14:59:50 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[ciencias de la computacion]]></category>
		<category><![CDATA[complejidad computacional]]></category>
		<category><![CDATA[computacion]]></category>
		<category><![CDATA[descarga directa]]></category>
		<category><![CDATA[download]]></category>
		<category><![CDATA[gratis]]></category>
		<category><![CDATA[informatica]]></category>
		<category><![CDATA[libros]]></category>
		<category><![CDATA[matematica]]></category>
		<category><![CDATA[matematica discreta]]></category>
		<category><![CDATA[matematicas]]></category>
		<category><![CDATA[mit]]></category>
		<category><![CDATA[opencourseware]]></category>
		<category><![CDATA[p vs np]]></category>
		<guid isPermaLink="false">http://qubits.wordpress.com/?p=10</guid>

					<description><![CDATA[Cómo la semana pasada terminé de dar mis exámenes finales de julio, tuve un poco más de tiempo para dedicarme a los temas que me interesan. Hace rato que tenía ganas de empezar un curso de OpenCourseWare, el sitio de cursos del MIT (Massachusetts Institute of Technology). El elegido fue «Computability, and Complexity». El curso [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Cómo la semana pasada terminé de dar mis exámenes finales de julio, tuve un poco más de tiempo para dedicarme a los temas que me interesan. Hace rato que tenía ganas de empezar un curso de OpenCourseWare, el sitio de cursos del <a href="http://web.mit.edu/">MIT (Massachusetts Institute of Technology)</a>. El elegido fue <a href="http://ocw.mit.edu/OcwWeb/Electrical-Engineering-and-Computer-Science/6-045JSpring-2005/CourseHome/">«Computability, and Complexity»</a>.</p>
<p>El curso es bastante completo, incluye lecturas, ejercicios y clases de repaso. Al terminarlo, te encuentras preparado para encarar uno de los problemas matemáticos por los que el <em><a href="http://www.claymath.org/">Clay Mathematics Institute</a>. </em>ofrece 1.000.000 de dólares:el problema <a href="http://www.claymath.org/millennium/P_vs_NP/">P vs NP</a>.</p>
<p>Obviamente no persigo resolver el problema, pero la complejidad computacional es un campo de estudio que aún no está muy desarrollado y realmente me parece muy interesante.</p>
<p>Por último dejo, para los que quieran iniciarlo, el link de la mula para el libro en el cual se basa todo el curso: <a href="7497|/">Sipser, Michael. <em>Introduction to the Theory of Computation</em><em>.</em> 2nd ed. Boston, MA: Course Technology, 2005. ISBN: 0534950973.</a></p>
<iframe class="youtube-player" width="500" height="282" src="https://www.youtube.com/embed/VqeF98GGiXQ?version=3&#038;rel=1&#038;showsearch=0&#038;showinfo=1&#038;iv_load_policy=1&#038;fs=1&#038;hl=es&#038;autohide=2&#038;wmode=transparent" allowfullscreen="true" style="border:0;" sandbox="allow-scripts allow-same-origin allow-popups allow-presentation allow-popups-to-escape-sandbox"></iframe>
]]></content:encoded>
					
					<wfw:commentRss>https://qubits.wordpress.com/2008/07/22/%c2%bfpnp/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		
		<media:content url="https://0.gravatar.com/avatar/0534a80bae17614c85382eb2ca4e19ba0ea9cd41512d927acbfd7e6ced0b378f?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">miguelio</media:title>
		</media:content>
	</item>
		<item>
		<title>Control de temperatura con sensor LM35DZ</title>
		<link>https://qubits.wordpress.com/2008/07/10/control-de-temperatura-con-sensor-lm35dz/</link>
					<comments>https://qubits.wordpress.com/2008/07/10/control-de-temperatura-con-sensor-lm35dz/#comments</comments>
		
		<dc:creator><![CDATA[miguelio]]></dc:creator>
		<pubDate>Thu, 10 Jul 2008 23:21:17 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[adc]]></category>
		<category><![CDATA[control]]></category>
		<category><![CDATA[Electrónica]]></category>
		<category><![CDATA[LM35]]></category>
		<category><![CDATA[LM35DZ]]></category>
		<category><![CDATA[Microchip]]></category>
		<category><![CDATA[PIC]]></category>
		<category><![CDATA[sensor]]></category>
		<category><![CDATA[temperatura]]></category>
		<guid isPermaLink="false">http://qubits.wordpress.com/?p=5</guid>

					<description><![CDATA[Desde hace un tiempo estoy mejorando un desarrollo a pedido de un dispositivo configurable y escalable que controle la temperatura de una cuba para descongelar objetos. Originalmente utilizaba el sensor NTC4K7, un termistor, pero desde que se proyectó agregar un display que indicara la temperatura en todo momento me pasé al LM35. Este integrado entrega [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><img loading="lazy" data-attachment-id="6" data-permalink="https://qubits.wordpress.com/2008/07/10/control-de-temperatura-con-sensor-lm35dz/lm35dz/" data-orig-file="https://qubits.wordpress.com/wp-content/uploads/2008/07/lm35dz.jpg" data-orig-size="137,103" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="LM35DZ" data-image-description="&lt;p&gt;Sensor de temperatura de precisión&lt;/p&gt;
" data-image-caption="" data-medium-file="https://qubits.wordpress.com/wp-content/uploads/2008/07/lm35dz.jpg?w=137" data-large-file="https://qubits.wordpress.com/wp-content/uploads/2008/07/lm35dz.jpg?w=137" class="alignleft size-full wp-image-6" src="https://qubits.wordpress.com/wp-content/uploads/2008/07/lm35dz.jpg?w=500" alt=""   />Desde hace un tiempo estoy mejorando un desarrollo a pedido de un dispositivo configurable y escalable que controle la temperatura de una cuba para descongelar objetos. Originalmente utilizaba el sensor NTC4K7, un termistor, pero desde que se proyectó agregar un display que indicara la temperatura en todo momento me pasé al LM35.</p>
<p>Este integrado entrega una tensión lineal ante el cambio de temperatura, lo cual es ideal para leerlo con el módulo AD. Opera en un rango de voltaje bastante extendido(4V a 30V) y su precisión es aceptable(aprox. 0.5ºC).</p>
<p>Viene en toda una familia de presentaciones, variando los empaquetados, la precisión y los rangos de temperatura. El que utilizé es el LM35DZ que ven en las imágenes; se trata de un empaquetado TO-92 de tres patas, dos para la alimentación y la restante para la señal entregada. Su rango de temperaturas va de 0ºC a 100ºC.</p>
<p><a href="https://qubits.wordpress.com/wp-content/uploads/2008/07/lm35to-92.jpg"><img loading="lazy" data-attachment-id="7" data-permalink="https://qubits.wordpress.com/2008/07/10/control-de-temperatura-con-sensor-lm35dz/lm35to-92/" data-orig-file="https://qubits.wordpress.com/wp-content/uploads/2008/07/lm35to-92.jpg" data-orig-size="125,104" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="lm35to-92" data-image-description="" data-image-caption="" data-medium-file="https://qubits.wordpress.com/wp-content/uploads/2008/07/lm35to-92.jpg?w=125" data-large-file="https://qubits.wordpress.com/wp-content/uploads/2008/07/lm35to-92.jpg?w=125" class="alignright size-full wp-image-7" src="https://qubits.wordpress.com/wp-content/uploads/2008/07/lm35to-92.jpg?w=500" alt=""   /></a>Es muy fácil leer la salida de este sensor utilizando el ADC del PIC(16F873A o cualquier 16F87xA). El LM35 hace variar la tensión 10mV/ºC. Si colocamos en la pata A3 una tensión de referencia de 2.56V para el módulo ADC(configurado en 10 bits) tendremos un valor nuevo cada 2,5mV, es decir, cada 0,25ºC; suficiente como para mostrar temperatura en un display con la precisión que entrega el integrado. Luego conectamos la salida del sensor a A0 para tomar las lecturas.</p>
<p>El código utilizado para inicializar el módulo ADC y sensar la temperatura es el siguiente(para CCS PCWH C Compiler) :</p>
<p>int16 value;<br />
int16 temp;</p>
<p>void inicializar(){<br />
setup_adc(ADC_CLOCK_DIV_8);<br />
setup_adc_ports(AN0_AN1_AN2_AN4_VSS_VREF);<br />
set_adc_channel(0);<br />
}</p>
<p>void leer_temperatura()  {<br />
delay_ms(100);<br />
value = Read_ADC();<br />
//calculo la temperatura en centesimas de grado<br />
temp = value * 25;</p>
<p>//luego la puedo pasar a un display para su visualización<br />
//o controlar algo de acuerdo a la temperatura o lo que sea.<br />
}</p>
]]></content:encoded>
					
					<wfw:commentRss>https://qubits.wordpress.com/2008/07/10/control-de-temperatura-con-sensor-lm35dz/feed/</wfw:commentRss>
			<slash:comments>5</slash:comments>
		
		
		
		<media:content url="https://0.gravatar.com/avatar/0534a80bae17614c85382eb2ca4e19ba0ea9cd41512d927acbfd7e6ced0b378f?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">miguelio</media:title>
		</media:content>

		<media:content url="https://qubits.wordpress.com/wp-content/uploads/2008/07/lm35dz.jpg" medium="image" />

		<media:content url="https://qubits.wordpress.com/wp-content/uploads/2008/07/lm35to-92.jpg" medium="image" />
	</item>
		<item>
		<title>Hola!</title>
		<link>https://qubits.wordpress.com/2008/07/08/hello-world/</link>
					<comments>https://qubits.wordpress.com/2008/07/08/hello-world/#respond</comments>
		
		<dc:creator><![CDATA[miguelio]]></dc:creator>
		<pubDate>Tue, 08 Jul 2008 21:29:32 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[bienvenida]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[nerd]]></category>
		<guid isPermaLink="false"></guid>

					<description><![CDATA[Hola gente, hoy doy inicio a este blog para escribir sobre el lado mas nerd de mi personalidad&#8230; Prepárense.]]></description>
										<content:encoded><![CDATA[<p style="text-align:center;"><img loading="lazy" data-attachment-id="4" data-permalink="https://qubits.wordpress.com/2008/07/08/hello-world/nerd/" data-orig-file="https://qubits.wordpress.com/wp-content/uploads/2008/07/nerd.gif" data-orig-size="303,348" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="Nerd" data-image-description="" data-image-caption="" data-medium-file="https://qubits.wordpress.com/wp-content/uploads/2008/07/nerd.gif?w=261" data-large-file="https://qubits.wordpress.com/wp-content/uploads/2008/07/nerd.gif?w=303" class="aligncenter size-full wp-image-4" src="https://qubits.wordpress.com/wp-content/uploads/2008/07/nerd.gif?w=500" alt=""   srcset="https://qubits.wordpress.com/wp-content/uploads/2008/07/nerd.gif 303w, https://qubits.wordpress.com/wp-content/uploads/2008/07/nerd.gif?w=131&amp;h=150 131w, https://qubits.wordpress.com/wp-content/uploads/2008/07/nerd.gif?w=261&amp;h=300 261w" sizes="(max-width: 303px) 100vw, 303px" /></p>
<p>Hola gente, hoy doy inicio a este blog para escribir sobre el lado mas nerd de mi personalidad&#8230; Prepárense.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://qubits.wordpress.com/2008/07/08/hello-world/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		
		<media:content url="https://0.gravatar.com/avatar/0534a80bae17614c85382eb2ca4e19ba0ea9cd41512d927acbfd7e6ced0b378f?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">miguelio</media:title>
		</media:content>

		<media:content url="https://qubits.wordpress.com/wp-content/uploads/2008/07/nerd.gif" medium="image" />
	</item>
	</channel>
</rss>
