<?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>Adams Bros Blog &#187; Electronics</title>
	<atom:link href="http://blog.adamsbros.org/category/electronics/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.adamsbros.org</link>
	<description></description>
	<lastBuildDate>Sun, 01 Jan 2012 03:28:41 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>arduino interfacing with the HD44780 LCD</title>
		<link>http://blog.adamsbros.org/2009/06/15/arduino-interfacing-with-the-hd44780-lcd/</link>
		<comments>http://blog.adamsbros.org/2009/06/15/arduino-interfacing-with-the-hd44780-lcd/#comments</comments>
		<pubDate>Tue, 16 Jun 2009 04:54:18 +0000</pubDate>
		<dc:creator>Troy</dc:creator>
				<category><![CDATA[C]]></category>
		<category><![CDATA[Electronics]]></category>

		<guid isPermaLink="false">http://blog.adamsbros.org/?p=60</guid>
		<description><![CDATA[It became time for me to interface an LCD with my Arduino.  I need to generate a handy report of what my various sensors are picking up.  The following is an account of my notes on twisting up my HD44780 compatible LCD on the Arduino. Please enjoy.
I'm staring at my LCD module.  I can hear [...]]]></description>
			<content:encoded><![CDATA[<p>It became time for me to interface an LCD with my Arduino.  I need to generate a handy report of what my various sensors are picking up.  The following is an account of my notes on twisting up my HD44780 compatible LCD on the Arduino. Please enjoy.</p>
<p>I'm staring at my LCD module.  I can hear it saying, "hook me up!", but I'll have to read a bit first.</p>
<p><span id="more-60"></span></p>
<p><strong>#1: Identification</strong></p>
<p><img class="alignnone size-large wp-image-65" title="ArduinoLCD_back" src="http://blog.adamsbros.org/wp-content/uploads/2009/06/ArduinoLCD_back1-1024x768.jpg" alt="ArduinoLCD_back" width="524" height="393" /></p>
<p>On the back of the unit, it says:<br />
<span style="font-family: Courier New,courier,monaco,monospace,sans-serif;">AMC2004A-B-B6NTDW-SP LOT#000542</span></p>
<p>A little Googling for "<span style="font-family: Courier New,courier,monaco,monospace,sans-serif;">AMC2004A-B</span>" and I find that it's an HD44780 compatible LCD.  I find a PDF spec sheet and even an Arduino library:</p>
<p>http://www.shopeio.com/inventory/pdf/AMC2004A.pdf</p>
<p>http://arduino.cc/en/Reference/LiquidCrystal</p>
<p><strong>#2: Figuring</strong></p>
<p>The only figuring I need is for the backlight.  The spec says that for the white backlight, I should use 4.0V at 30mA.  I have a 5V supply so, with Ohm's Law in mind, the math goes:<br />
R   =   V/I   =   Rdrop/series_current   =   (5V-4V)/30mA   =   33Ω</p>
<p><strong>#3: Wiring</strong><br />
A little skimming of the spec sheet helps me understand how to wire this up so here we go:</p>
<div style="margin-left: 40px;"><span style="font-family: Courier New,courier,monaco,monospace,sans-serif;">Pin No. Symbol   Destination   Description</span><br />
<span style="font-family: Courier New,courier,monaco,monospace,sans-serif;">------  ------   -----------   ------------------------</span><br style="font-family: Courier New,courier,monaco,monospace,sans-serif;" /><span style="font-family: Courier New,courier,monaco,monospace,sans-serif;"> 1          VSS </span><span style="font-family: Courier New,courier,monaco,monospace,sans-serif;">→</span><span style="font-family: Courier New,courier,monaco,monospace,sans-serif;"> Ground        Ground</span><br style="font-family: Courier New,courier,monaco,monospace,sans-serif;" /><span style="font-family: Courier New,courier,monaco,monospace,sans-serif;"> 2          VDD </span><span style="font-family: Courier New,courier,monaco,monospace,sans-serif;">→ </span><span style="font-family: Courier New,courier,monaco,monospace,sans-serif;">5V            Supply Voltage for logic</span><br style="font-family: Courier New,courier,monaco,monospace,sans-serif;" /><span style="font-family: Courier New,courier,monaco,monospace,sans-serif;"> 3           V0 </span><span style="font-family: Courier New,courier,monaco,monospace,sans-serif;">→ </span><span style="font-family: Courier New,courier,monaco,monospace,sans-serif;">Pot Leg 2     Variable Operating voltage for LCD</span><br style="font-family: Courier New,courier,monaco,monospace,sans-serif;" /><span style="font-family: Courier New,courier,monaco,monospace,sans-serif;"> 4           RS </span><span style="font-family: Courier New,courier,monaco,monospace,sans-serif;">→ Arduino 12 </span><span style="font-family: Courier New,courier,monaco,monospace,sans-serif;"> Register Selector (H: DATA, L: Instruction code</span>)<br style="font-family: Courier New,courier,monaco,monospace,sans-serif;" /><span style="font-family: Courier New,courier,monaco,monospace,sans-serif;"> 5          R/W </span><span style="font-family: Courier New,courier,monaco,monospace,sans-serif;">→ </span><span style="font-family: Courier New,courier,monaco,monospace,sans-serif;">Ground (Low)  Read/Write Selector (H: Read(MPU→Module) L: Write(MPU→Module)</span>)<br style="font-family: Courier New,courier,monaco,monospace,sans-serif;" /><span style="font-family: Courier New,courier,monaco,monospace,sans-serif;"> 6            E </span><span style="font-family: Courier New,courier,monaco,monospace,sans-serif;">→ </span><span style="font-family: Courier New,courier,monaco,monospace,sans-serif;">Arduino 11    Chip enable signal</span><br style="font-family: Courier New,courier,monaco,monospace,sans-serif;" /><span style="font-family: Courier New,courier,monaco,monospace,sans-serif;"> 7          DB0 </span><span style="font-family: Courier New,courier,monaco,monospace,sans-serif;">→ No Connection</span><span style="font-family: Courier New,courier,monaco,monospace,sans-serif;"> Data bit 0</span><br style="font-family: Courier New,courier,monaco,monospace,sans-serif;" /><span style="font-family: Courier New,courier,monaco,monospace,sans-serif;"> 8          DB1 </span><span style="font-family: Courier New,courier,monaco,monospace,sans-serif;">→ </span><span style="font-family: Courier New,courier,monaco,monospace,sans-serif;">No Connection</span><span style="font-family: Courier New,courier,monaco,monospace,sans-serif;"> Data bit 1</span><br style="font-family: Courier New,courier,monaco,monospace,sans-serif;" /><span style="font-family: Courier New,courier,monaco,monospace,sans-serif;"> 9          DB2 </span><span style="font-family: Courier New,courier,monaco,monospace,sans-serif;">→ </span><span style="font-family: Courier New,courier,monaco,monospace,sans-serif;">No Connection</span><span style="font-family: Courier New,courier,monaco,monospace,sans-serif;"> Data bit 2</span><br style="font-family: Courier New,courier,monaco,monospace,sans-serif;" /><span style="font-family: Courier New,courier,monaco,monospace,sans-serif;"> 10         DB3 </span><span style="font-family: Courier New,courier,monaco,monospace,sans-serif;">→ </span><span style="font-family: Courier New,courier,monaco,monospace,sans-serif;">No Connection</span><span style="font-family: Courier New,courier,monaco,monospace,sans-serif;"> Data bit 3</span><br style="font-family: Courier New,courier,monaco,monospace,sans-serif;" /><span style="font-family: Courier New,courier,monaco,monospace,sans-serif;"> 11         DB4 </span><span style="font-family: Courier New,courier,monaco,monospace,sans-serif;">→ </span><span style="font-family: Courier New,courier,monaco,monospace,sans-serif;">Arduino  7 </span><span style="font-family: Courier New,courier,monaco,monospace,sans-serif;">Data bit 4</span><br style="font-family: Courier New,courier,monaco,monospace,sans-serif;" /><span style="font-family: Courier New,courier,monaco,monospace,sans-serif;"> 12         DB5 </span><span style="font-family: Courier New,courier,monaco,monospace,sans-serif;">→ </span><span style="font-family: Courier New,courier,monaco,monospace,sans-serif;">Arduino  8</span><span style="font-family: Courier New,courier,monaco,monospace,sans-serif;"> Data bit 5</span><br style="font-family: Courier New,courier,monaco,monospace,sans-serif;" /><span style="font-family: Courier New,courier,monaco,monospace,sans-serif;"> 13         DB6 </span><span style="font-family: Courier New,courier,monaco,monospace,sans-serif;">→ </span><span style="font-family: Courier New,courier,monaco,monospace,sans-serif;">Arduino  9</span><span style="font-family: Courier New,courier,monaco,monospace,sans-serif;"> Data bit 6</span><br style="font-family: Courier New,courier,monaco,monospace,sans-serif;" /><span style="font-family: Courier New,courier,monaco,monospace,sans-serif;"> 14         DB7 </span><span style="font-family: Courier New,courier,monaco,monospace,sans-serif;">→ </span><span style="font-family: Courier New,courier,monaco,monospace,sans-serif;">Arduino 10</span><span style="font-family: Courier New,courier,monaco,monospace,sans-serif;"> Data bit 7</span><br style="font-family: Courier New,courier,monaco,monospace,sans-serif;" /><span style="font-family: Courier New,courier,monaco,monospace,sans-serif;"> 15      LED(+) </span><span style="font-family: Courier New,courier,monaco,monospace,sans-serif;">→ </span><span style="font-family: Courier New,courier,monaco,monospace,sans-serif;">R2            Anode of LED Backlight</span><br style="font-family: Courier New,courier,monaco,monospace,sans-serif;" /><span style="font-family: Courier New,courier,monaco,monospace,sans-serif;"> 16      LED(-) </span><span style="font-family: Courier New,courier,monaco,monospace,sans-serif;">→ </span><span style="font-family: Courier New,courier,monaco,monospace,sans-serif;">Ground        Cathode of LED Backlight</span></div>
<p><img class="alignnone size-large wp-image-62" title="ArduinoLCD_finished" src="http://blog.adamsbros.org/wp-content/uploads/2009/06/ArduinoLCD_finished-1024x768.jpg" alt="ArduinoLCD_finished" width="717" height="538" /><br />
<strong> </strong></p>
<p><strong>#4: Programming</strong></p>
<p>The <span style="font-family: Courier New,courier,monaco,monospace,sans-serif;">LiquidCrystal</span> Library came with my Arduino 0012 Alpha software package (IDE).   A couple of modifications to the Hello World Example:</p>
<div style="margin-left: 40px;"><span style="font-family: Courier New,courier,monaco,monospace,sans-serif;">#include &lt;<span style="color: #ff6600;">LiquidCrystal</span>.h&gt;</span><br style="font-family: Courier New,courier,monaco,monospace,sans-serif;" /> <br style="font-family: Courier New,courier,monaco,monospace,sans-serif;" /> <span style="font-family: Courier New,courier,monaco,monospace,sans-serif; color: #666666;">/* LiquidCrystal display with:</span><br />
<span style="font-family: Courier New,courier,monaco,monospace,sans-serif; color: #666666;"> LCD 4 (RS) to arduino pin 12</span><br />
<span style="font-family: Courier New,courier,monaco,monospace,sans-serif; color: #666666;"> LCD 5 (R/W) to ground (non-existent pin 14 okay?)</span><br />
<span style="font-family: Courier New,courier,monaco,monospace,sans-serif; color: #666666;"> LCD 6 (E) to arduino pin 11</span><br />
<span style="font-family: Courier New,courier,monaco,monospace,sans-serif; color: #666666;"> d4, d5, d6, d7 on arduino pins 7, 8, 9, 10</span><br />
<span style="font-family: Courier New,courier,monaco,monospace,sans-serif; color: #666666;">*/</span><br style="font-family: Courier New,courier,monaco,monospace,sans-serif;" /> <span style="font-family: Courier New,courier,monaco,monospace,sans-serif;"><span style="color: #ff6600;">LiquidCrystal</span> lcd(12, 14, 11, 7, 8, 9, 10);</span><br style="font-family: Courier New,courier,monaco,monospace,sans-serif;" /> <br style="font-family: Courier New,courier,monaco,monospace,sans-serif;" /> <span style="font-family: Courier New,courier,monaco,monospace,sans-serif;"><span style="color: #ff6600;">void</span> <span style="color: #660000;">setup</span>()</span><br style="font-family: Courier New,courier,monaco,monospace,sans-serif;" /> <span style="font-family: Courier New,courier,monaco,monospace,sans-serif;">{</span><br style="font-family: Courier New,courier,monaco,monospace,sans-serif;" /> <span style="font-family: Courier New,courier,monaco,monospace,sans-serif;"> <span style="color: #666666;">// position cursor on line x=4,y=3</span></span><br style="font-family: Courier New,courier,monaco,monospace,sans-serif;" /> <span style="font-family: Courier New,courier,monaco,monospace,sans-serif;"> lcd.<span style="color: #663300;">setCursor</span>(3,2);</span><br style="font-family: Courier New,courier,monaco,monospace,sans-serif;" /> <span style="font-family: Courier New,courier,monaco,monospace,sans-serif;"> <span style="color: #666666;">// Print a message to the LCD.</span></span><br style="font-family: Courier New,courier,monaco,monospace,sans-serif;" /> <span style="font-family: Courier New,courier,monaco,monospace,sans-serif;"> lcd.<span style="color: #663300;">print</span>(<span style="color: #cc0000;">"hello, world!"</span>);</span><br style="font-family: Courier New,courier,monaco,monospace,sans-serif;" /> <span style="font-family: Courier New,courier,monaco,monospace,sans-serif;">}</span><br style="font-family: Courier New,courier,monaco,monospace,sans-serif;" /> <br style="font-family: Courier New,courier,monaco,monospace,sans-serif;" /> <span style="font-family: Courier New,courier,monaco,monospace,sans-serif;"><span style="color: #ff6600;">void</span> <span style="color: #660000;">loop</span>()</span><br style="font-family: Courier New,courier,monaco,monospace,sans-serif;" /> <span style="font-family: Courier New,courier,monaco,monospace,sans-serif;">{</span><span style="font-family: Courier New,courier,monaco,monospace,sans-serif;"> </span><br style="font-family: Courier New,courier,monaco,monospace,sans-serif;" /> <span style="font-family: Courier New,courier,monaco,monospace,sans-serif;">}</span><br style="font-family: Courier New,courier,monaco,monospace,sans-serif;" /></div>
]]></content:encoded>
			<wfw:commentRss>http://blog.adamsbros.org/2009/06/15/arduino-interfacing-with-the-hd44780-lcd/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

