<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-4799470828225918099</id><updated>2026-01-11T13:57:20.120+02:00</updated><category term="LED"/><category term="LCD"/><category term="Push Button"/><category term="Tutorials"/><category term="MikroC"/><category term="7Segment"/><category term="Mikroelektronika"/><category term="PWM"/><category term="PCB"/><category term="Breadboard"/><category term="Microchip"/><category term="Soldering"/><category term="ducu"/><category term="pic"/><category term="pic16"/><category term="pic16f876a"/><category term="876a"/><category term="EasyPic v7"/><category term="GL865"/><category term="GSM"/><category term="GSM Click"/><category term="GSM module"/><category term="Max 7219"/><category term="Measuring"/><category term="Telit"/><category term="Telit GL865"/><category term="Warning Action via SMS"/><category term="max7219"/><category term="1602"/><category term="1602 LCD Keypad Shield"/><category term="2YOA21"/><category term="2x16"/><category term="7 Segment"/><category term="Arduino"/><category term="Arduino Uno"/><category term="DHT"/><category term="DHT1"/><category term="DHT1x"/><category term="DHT22"/><category term="DHT2x"/><category term="DS1307"/><category term="Distance Sensor"/><category term="I2C"/><category term="Proteus"/><category term="RTC"/><category term="Real Time Clock"/><category term="SPI"/><category term="Sharp"/><category term="Sharp 2YOA21"/><category term="Shield"/><category term="Uno"/><category term="dot"/><category term="dot led matrix"/><category term="matrix"/><title type='text'>Electronic Experiments</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://electronicexperiments.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4799470828225918099/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://electronicexperiments.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/4799470828225918099/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>57</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-4799470828225918099.post-6237637626017452253</id><published>2021-12-25T15:11:00.002+02:00</published><updated>2021-12-31T15:12:54.888+02:00</updated><title type='text'>The Wall</title><content type='html'>&lt;table border=&quot;1&quot; bordercolor=&quot;#F0F0F0&quot; cellpadding=&quot;8&quot; cellspacing=&quot;0&quot; style=&quot;height: 159px; margin-bottom: 5px; width: 788px;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td align=&quot;center&quot; height=&quot;150&quot; width=&quot;200&quot;&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgSH5NKq6xD3unRmf62XB2oUTrfPfnzGdJwOkOF_TytxW_8Lpc6-hqkAdi7AaJVLinnrLUdTs1kTN2rrfN0TlCHRK4b5b4lNlSN8HVZ71ybr0_yhD4PGOmHl6Dl76w4CDCIsATWVxYjFUg/s1600/IMG_2536.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 0em; margin-right: 0em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1200&quot; data-original-width=&quot;1600&quot; height=&quot;140&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgSH5NKq6xD3unRmf62XB2oUTrfPfnzGdJwOkOF_TytxW_8Lpc6-hqkAdi7AaJVLinnrLUdTs1kTN2rrfN0TlCHRK4b5b4lNlSN8HVZ71ybr0_yhD4PGOmHl6Dl76w4CDCIsATWVxYjFUg/s320/IMG_2536.JPG&quot; width=&quot;200&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td valign=&quot;top&quot; width=&quot;553&quot;&gt;&lt;div style=&quot;padding-bottom: 8px;&quot;&gt;
&lt;b&gt;&lt;a href=&quot;http://electronicexperiments.blogspot.com/2018/12/pcf8574-i2c-module-lcd-display.html&quot;&gt;&lt;u&gt;PCF8574 [I2C Module] &amp; LCD Display&lt;/u&gt;&lt;/a&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
On today article i will show how to set up a I2C communication to manipulate an LCD display.&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;table border=&quot;1&quot; bordercolor=&quot;#F0F0F0&quot; cellpadding=&quot;8&quot; cellspacing=&quot;0&quot; style=&quot;height: 190px; margin-bottom: 5px; width: 788px;&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;&lt;td align=&quot;center&quot; height=&quot;188&quot; width=&quot;200&quot;&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhTNG4M_EtI-0AE9rZ5LhyphenhyphenWzyNXQOdxrh64KLwQBw66o2EcLnZ02_mhyphenhyphenlWqJYeuzWOe48BpHCsO92v_03M0CR7W-gu9x_Mjnu1687Cmh6hKN-Rc6fhdteVM6LiYLvYDX_SzSdNVG-B-xZc/s1600/DHT22.PNG&quot; imageanchor=&quot;1&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;188&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhTNG4M_EtI-0AE9rZ5LhyphenhyphenWzyNXQOdxrh64KLwQBw66o2EcLnZ02_mhyphenhyphenlWqJYeuzWOe48BpHCsO92v_03M0CR7W-gu9x_Mjnu1687Cmh6hKN-Rc6fhdteVM6LiYLvYDX_SzSdNVG-B-xZc/s1600/DHT22.PNG&quot; width=&quot;200&quot; /&gt;&lt;/a&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td valign=&quot;top&quot; width=&quot;553&quot;&gt;&lt;div style=&quot;padding-bottom: 8px;&quot;&gt;
&lt;b&gt;&lt;a href=&quot;https://electronicexperiments.blogspot.com/2018/11/dht22-lcd-shield.html&quot;&gt;DHT22 &amp;amp; LCD Shield&lt;/a&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
In this article i will describe to you, how to develop a home weather station using the &lt;b&gt;DHT22&lt;/b&gt; temperature/humidity sensor.&lt;br /&gt;
The development board used for this experiment will be the &lt;b&gt;Arduino UNO&lt;/b&gt; and the measured values will be displayed on &lt;b&gt;LCD Shield&lt;/b&gt; board.&lt;br /&gt;
&lt;br /&gt;
Please Enjoy !&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;table border=&quot;1&quot; bordercolor=&quot;#F0F0F0&quot; cellpadding=&quot;8&quot; cellspacing=&quot;0&quot; style=&quot;height: 159px; margin-bottom: 3px; width: 788px;&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;&lt;td align=&quot;center&quot; height=&quot;133&quot; width=&quot;200&quot;&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi6ok8_PToqomWlD3XOzJBq6xKVT2iwnNmfEaDCdHvN0qGxDQksWkHCyseNcLefCng2FHfVuobBpxMsl25-JCIPRKktR3ka-klT9HU3lwBrnd8kcV1E9u7_OPjLPn7L6zrx5uDKiDdKSD4/s1600/DSC_0537.JPG&quot; imageanchor=&quot;1&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;133&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi6ok8_PToqomWlD3XOzJBq6xKVT2iwnNmfEaDCdHvN0qGxDQksWkHCyseNcLefCng2FHfVuobBpxMsl25-JCIPRKktR3ka-klT9HU3lwBrnd8kcV1E9u7_OPjLPn7L6zrx5uDKiDdKSD4/s1600/DSC_0537.JPG&quot; width=&quot;200&quot; /&gt;&lt;/a&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td valign=&quot;top&quot; width=&quot;553&quot;&gt;&lt;div style=&quot;padding-bottom: 8px;&quot;&gt;
&lt;b&gt;&lt;a href=&quot;http://electronicexperiments.blogspot.it/2014/07/gsm-click-warning-action-via-sms.html&quot;&gt;Experiment nr.02 - GSM Click (Warning Action via SMS)&lt;/a&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
This is an Warning Action via SMS project who are able to send a warning message for a given situation.&lt;br /&gt;
In this experiment &quot;the given situation&quot; is one button set on RD7.&lt;br /&gt;
You must to configure the phone number on which the SMS warning will be sent.&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;table border=&quot;1&quot; bordercolor=&quot;#F0F0F0&quot; cellpadding=&quot;8&quot; cellspacing=&quot;0&quot; style=&quot;height: 159px; margin-bottom: 3px; width: 788px;&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;&lt;td align=&quot;center&quot; height=&quot;133&quot; width=&quot;200&quot;&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_-lFVl5ApjTBzoiHJ8ZietrROCd5jnWSclW8VxBGp24xGNLJM-nPca7KYXUEfk4E-s1EsXqwMcqVSfkuzLQfpReWhN9Dc0x4pC-TRY6BRV89CrxSYDnEWR2OwsIh0dlX6FlsCVVmIYBE/s1600/GSM+Click.JPG&quot; imageanchor=&quot;1&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;133&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_-lFVl5ApjTBzoiHJ8ZietrROCd5jnWSclW8VxBGp24xGNLJM-nPca7KYXUEfk4E-s1EsXqwMcqVSfkuzLQfpReWhN9Dc0x4pC-TRY6BRV89CrxSYDnEWR2OwsIh0dlX6FlsCVVmIYBE/s1600/GSM+Click.JPG&quot; width=&quot;200&quot; /&gt;&lt;/a&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td valign=&quot;top&quot; width=&quot;553&quot;&gt;&lt;div style=&quot;padding-bottom: 8px;&quot;&gt;
&lt;b&gt;&lt;a href=&quot;http://electronicexperiments.blogspot.it/2014/07/gsm-click-temperature-controll-via-sms.html&quot;&gt;Experiment nr.01 - GSM Click (Temperature &amp;amp; Controll via SMS)&lt;/a&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
Program uses GSM module GL865 for sending and receiving SMS.&lt;br /&gt;
The scenario of this experiment is as follows:&lt;br /&gt;
User can interrogate the EasyPIC v7 development board via SMS, and receive&lt;br /&gt;
the status situation of the motherboard.&lt;br /&gt;
Port RD0 and RD1 are used to control two Fans and port RA0 is used to &lt;br /&gt;
measure the temperature of LM35 sensor.&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;table border=&quot;1&quot; bordercolor=&quot;#F0F0F0&quot; cellpadding=&quot;8&quot; cellspacing=&quot;0&quot; style=&quot;height: 124px; margin-bottom: 5px; width: 788px;&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;&lt;td align=&quot;center&quot; height=&quot;115&quot; width=&quot;200&quot;&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijExaOU_YdDZvD2dhjlcaL3JMCoes6Jy9JSWNuHyJfuDXQO38QRe-7bwGC800fkEP5X-hoOHH0hqxr1SXJWPitZgbC9gghA3RCxZB5nL3RfjeghAdK50Urx6jMoc5k6sHqCGRWC8Hadr8/s1600/20140327_184222.jpg&quot; imageanchor=&quot;1&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;115&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijExaOU_YdDZvD2dhjlcaL3JMCoes6Jy9JSWNuHyJfuDXQO38QRe-7bwGC800fkEP5X-hoOHH0hqxr1SXJWPitZgbC9gghA3RCxZB5nL3RfjeghAdK50Urx6jMoc5k6sHqCGRWC8Hadr8/s1600/20140327_184222.jpg&quot; width=&quot;200&quot; /&gt;&lt;/a&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td valign=&quot;top&quot; width=&quot;553&quot;&gt;&lt;div style=&quot;padding-bottom: 8px;&quot;&gt;
&lt;b&gt;&lt;a href=&quot;http://electronicexperiments.blogspot.it/2014/03/real-time-clock-ds1307-with-set.html&quot;&gt; Real Time Clock [DS1307 with Set Functions] &amp;amp; DS18B20&lt;/a&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
In this article we will talk about DS1307, created by the Maxim company. This IC (Integrated&amp;nbsp;Circuit) could help as, when we want to know what time is it. Interesting fact is that we have added a set functions to this clock.  At the core of this experiment, will be the PIC16F876A.&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;table border=&quot;1&quot; bordercolor=&quot;#F0F0F0&quot; cellpadding=&quot;8&quot; cellspacing=&quot;0&quot; style=&quot;height: 159px; margin-bottom: 5px; width: 788px;&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;&lt;td align=&quot;center&quot; height=&quot;150&quot; width=&quot;200&quot;&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjcQAVkRbuCcUfbwYAs4BM7ws2EjyQDBUtnAYWUNXnE2_EMYducziGw2VD-KUdYHBgnkmZxnySBUjJxLJd8zfzatJ6rhCVs3yyBWx-9fZyTI6Sg2rr22No0l6FcYAygZ5Y0-bPBHGnWKT8/s1600/IMG_8746%2527%2527.png&quot; imageanchor=&quot;1&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;146&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjcQAVkRbuCcUfbwYAs4BM7ws2EjyQDBUtnAYWUNXnE2_EMYducziGw2VD-KUdYHBgnkmZxnySBUjJxLJd8zfzatJ6rhCVs3yyBWx-9fZyTI6Sg2rr22No0l6FcYAygZ5Y0-bPBHGnWKT8/s320/IMG_8746%2527%2527.png&quot; width=&quot;200&quot; /&gt;&lt;/a&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td valign=&quot;top&quot; width=&quot;553&quot;&gt;&lt;div style=&quot;padding-bottom: 8px;&quot;&gt;
&lt;b&gt;&lt;a href=&quot;http://electronicexperiments.blogspot.com/2011/08/distance-sensor-sharp-2yoa21-lcd.html&quot;&gt; Distance Sensor Sharp 2YOA21 &amp;amp; LCD &lt;/a&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
&lt;span style=&quot;padding-bottom: 8px;&quot;&gt;In the current article I intend to display the measured distance, between sensor and some object, on the LCD with 2x16 characters.&lt;br /&gt;
If I succeeded or not, you will find only if you will hit the above link in this section.&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;table border=&quot;1&quot; bordercolor=&quot;#F0F0F0&quot; cellpadding=&quot;8&quot; cellspacing=&quot;0&quot; style=&quot;height: 159px; margin-bottom: 5px; width: 788px;&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;&lt;td align=&quot;center&quot; height=&quot;150&quot; width=&quot;200&quot;&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEin-FBDWHz3N5eaxAh2lfT4E3bYn9yakgeSbLOGZk0ls9KK6bIj_Nfi_i4yoZePg4rbJLLvMBBvDaRXQ74mRdaVwnka0Y2DJU7sX9_S-reATPb96VRwblb2F0LCC_Ks2c2mXCRQzRXzIdE/s1600/IMG_8681.JPG&quot; imageanchor=&quot;1&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;150&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEin-FBDWHz3N5eaxAh2lfT4E3bYn9yakgeSbLOGZk0ls9KK6bIj_Nfi_i4yoZePg4rbJLLvMBBvDaRXQ74mRdaVwnka0Y2DJU7sX9_S-reATPb96VRwblb2F0LCC_Ks2c2mXCRQzRXzIdE/s200/IMG_8681.JPG&quot; width=&quot;200&quot; /&gt;&lt;/a&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td valign=&quot;top&quot; width=&quot;553&quot;&gt;&lt;div style=&quot;padding-bottom: 8px;&quot;&gt;
&lt;b&gt;&lt;a href=&quot;http://electronicexperiments.blogspot.com/2011/07/dot-matrix-led-8x8-max-7219.html&quot;&gt; Dot Matrix Led 8x8 &amp;amp; MAX 7219 &lt;/a&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div align=&quot;left&quot;&gt;
In this article we will discuss about functions of MAX 7219, created by the Maxim company. This &lt;strong&gt;IC&lt;/strong&gt; (&lt;strong&gt;I&lt;/strong&gt;ntegrated&amp;nbsp;&lt;strong&gt;C&lt;/strong&gt;ircuit) could help as, when we whant to work with digits and LEDs. At the core of this experiment, will be the PIC16F876A.&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4799470828225918099/posts/default/6237637626017452253'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4799470828225918099/posts/default/6237637626017452253'/><link rel='alternate' type='text/html' href='http://electronicexperiments.blogspot.com/2021/12/the-wall.html' title='The Wall'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgSH5NKq6xD3unRmf62XB2oUTrfPfnzGdJwOkOF_TytxW_8Lpc6-hqkAdi7AaJVLinnrLUdTs1kTN2rrfN0TlCHRK4b5b4lNlSN8HVZ71ybr0_yhD4PGOmHl6Dl76w4CDCIsATWVxYjFUg/s72-c/IMG_2536.JPG" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-4799470828225918099.post-2266924700684963260</id><published>2021-12-18T14:52:00.001+02:00</published><updated>2021-12-31T15:06:56.247+02:00</updated><title type='text'>NUCLEO-F767ZI</title><content type='html'></content><link rel='replies' type='application/atom+xml' href='http://electronicexperiments.blogspot.com/feeds/2266924700684963260/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://electronicexperiments.blogspot.com/2021/12/nucleo-f767zi_18.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4799470828225918099/posts/default/2266924700684963260'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4799470828225918099/posts/default/2266924700684963260'/><link rel='alternate' type='text/html' href='http://electronicexperiments.blogspot.com/2021/12/nucleo-f767zi_18.html' title='NUCLEO-F767ZI'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4799470828225918099.post-5641220771730555707</id><published>2021-12-11T14:38:00.001+02:00</published><updated>2021-12-31T14:39:20.818+02:00</updated><title type='text'>555 Timer - Turn off delay circuit</title><content type='html'></content><link rel='replies' type='application/atom+xml' href='http://electronicexperiments.blogspot.com/feeds/5641220771730555707/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://electronicexperiments.blogspot.com/2021/12/555-timer-turn-off-delay-circuit.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4799470828225918099/posts/default/5641220771730555707'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4799470828225918099/posts/default/5641220771730555707'/><link rel='alternate' type='text/html' href='http://electronicexperiments.blogspot.com/2021/12/555-timer-turn-off-delay-circuit.html' title='555 Timer - Turn off delay circuit'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4799470828225918099.post-5971258840702956721</id><published>2021-12-04T13:00:00.001+02:00</published><updated>2021-12-31T14:38:36.619+02:00</updated><title type='text'>555 Timer - Turn on delay circuit</title><content type='html'></content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4799470828225918099/posts/default/5971258840702956721'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4799470828225918099/posts/default/5971258840702956721'/><link rel='alternate' type='text/html' href='http://electronicexperiments.blogspot.com/2021/12/555-timer-turn-on-delay-circuit.html' title='555 Timer - Turn on delay circuit'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-4799470828225918099.post-8288757209594070503</id><published>2020-12-27T03:31:00.000+02:00</published><updated>2020-12-27T03:31:24.993+02:00</updated><title type='text'>ESP8266 (ESP-12E)</title><content type='html'>&lt;p&gt;&amp;nbsp;...stay tuned.&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://electronicexperiments.blogspot.com/feeds/8288757209594070503/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://electronicexperiments.blogspot.com/2020/12/esp8266-esp-12e.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4799470828225918099/posts/default/8288757209594070503'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4799470828225918099/posts/default/8288757209594070503'/><link rel='alternate' type='text/html' href='http://electronicexperiments.blogspot.com/2020/12/esp8266-esp-12e.html' title='ESP8266 (ESP-12E)'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4799470828225918099.post-4101409512217247423</id><published>2019-01-13T02:02:00.000+02:00</published><updated>2019-01-13T02:02:35.399+02:00</updated><title type='text'>Multi-function Shield</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzAwFRePy9RB_yUatw_vMpFMEtv5A-ql41GmmTQFm8SUhjHhI6MccchdcKQ5z8ISIVz9yqSoMHizpplW-YHoejftSubZdNSIMsWRCRPf9DPsxmzzNIKlhbnSMeKX_ZbjUeMFu75vwf6eo/s1600/IMG_2624_v2.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1600&quot; data-original-width=&quot;1311&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzAwFRePy9RB_yUatw_vMpFMEtv5A-ql41GmmTQFm8SUhjHhI6MccchdcKQ5z8ISIVz9yqSoMHizpplW-YHoejftSubZdNSIMsWRCRPf9DPsxmzzNIKlhbnSMeKX_ZbjUeMFu75vwf6eo/s320/IMG_2624_v2.jpg&quot; width=&quot;262&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
The Multi-function Shield&amp;nbsp;(HCARDU0085) designed for Arduino Uno / Leonardo board has&amp;nbsp;a large range of features which makes&amp;nbsp;it ideal for experiments, learning and advanced projects development.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
Besides the feature rich range of components fitted to the shield, there are also a range of expansion headers for convenient interfacing of external modules and components. The shield includes R3 type headers for easy connection to Arduino boards.&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;color: red;&quot;&gt;Note:&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: red;&quot;&gt;This shield includes a header for attaching an IR reciver (U4-IR-2). The pinout order &lt;/span&gt;&lt;b style=&quot;color: red;&quot;&gt;is not&lt;/b&gt;&lt;span style=&quot;color: red;&quot;&gt; suitable for directly connecting a &lt;/span&gt;&lt;b style=&quot;color: red;&quot;&gt;SFH506-38&lt;/b&gt;&lt;span style=&quot;color: red;&quot;&gt;. However the order &lt;/span&gt;&lt;b style=&quot;color: red;&quot;&gt;is compatible&lt;/b&gt;&lt;span style=&quot;color: red;&quot;&gt; with &lt;/span&gt;&lt;b style=&quot;color: red;&quot;&gt;1838B&lt;/b&gt;&lt;span style=&quot;color: red;&quot;&gt; Infrared IR receiver (HCSENS0014).&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: red;&quot;&gt;Please always check the schematic before connecting external components.&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;b&gt;Features&lt;/b&gt;&lt;br /&gt;
&lt;div&gt;
&lt;ul&gt;
&lt;li&gt;An LED display module (four-digit, seven-segment)&lt;/li&gt;
&lt;li&gt;Two serial LED display driver ICs(74HC595)&lt;/li&gt;
&lt;li&gt;Four LEDs&lt;/li&gt;
&lt;li&gt;A multi-turn trimpot (10KOhm)&lt;/li&gt;
&lt;li&gt;Three pushbuttons&lt;/li&gt;
&lt;li&gt;A piezo-buzzer&lt;/li&gt;
&lt;li&gt;A port for DS18B20 temperature sensor&lt;/li&gt;
&lt;li&gt;A port for TSOP1838 infrared receiver module&lt;/li&gt;
&lt;li&gt;A APC220 wireless module interface (serial/UART interface)&lt;/li&gt;
&lt;li&gt;A reset button&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;/div&gt;
&lt;b&gt;&lt;/b&gt;&lt;br /&gt;
&lt;div&gt;
&lt;b&gt;Pin Layout&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;ul&gt;
&lt;li&gt;Serial LED display driver (74HC595) -&amp;nbsp;&lt;b&gt;Latch 4, Clock 7, Data 8&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;Four LEDs -&amp;nbsp;&lt;b&gt;Pin 10,11,12,13&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;Trimpot (10KOhm)-&lt;b&gt;Pin A0&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;Three pushbuttons -&lt;b&gt; Pin A1,A2,A3&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;Piezo-buzzer - &lt;b&gt;Pin 3&amp;nbsp;&lt;/b&gt;(digital on/off)&lt;/li&gt;
&lt;li&gt;DS18B20/LM35 temperature sensor - &lt;b&gt;Pin A4&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;Infrared receiver module (remote control) -&amp;nbsp;&lt;b&gt;Pin 2&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;Header for APC220 shield - &lt;b&gt;Gnd, 5V , 0, 1 (rx/tx)&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;Reset pushbutton&amp;nbsp;-&amp;nbsp;&lt;b&gt;Gnd&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;Free pins header (PWM) -&amp;nbsp;&lt;b&gt;5, 6, 9, A5&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;b&gt;Circuit diagram&lt;/b&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;background-color: white; color: #414042; font-family: &amp;quot;martel&amp;quot; , serif; font-size: 16px;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgYLY9yCgjEROct5EPVJBd43zYqMsKT_jzL2cRNKXHctHGnN11PB7ZehNdfisD0DRUjiFDx7qPyhA3ASj_HZDybuG23o6waabDp4bwu2F1LeGbOOguvniwAMspsshbgDV4iAyWLPfBp-ps/s1600/Schematic.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;588&quot; data-original-width=&quot;1124&quot; height=&quot;332&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgYLY9yCgjEROct5EPVJBd43zYqMsKT_jzL2cRNKXHctHGnN11PB7ZehNdfisD0DRUjiFDx7qPyhA3ASj_HZDybuG23o6waabDp4bwu2F1LeGbOOguvniwAMspsshbgDV4iAyWLPfBp-ps/s640/Schematic.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;background-color: white; color: #414042; font-family: &amp;quot;martel&amp;quot; , serif; font-size: 16px;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
Looking at the schematic, it looks like using the DS18B20 temperature sensor (and the infrared receiver module) requires a bit of research. As indicated in the top silkscreen layout, the flat (labeled) side of the temperature sensor must face the bottom side of the Multi-function shield fronting the three pushbuttons. Also, the legend “U5-18b20-LM35-A4” has an arrow pointing up toward the middle pin (A4) of the temperature sensor header (GND on the left, DQ in the middle, and 5 V on the right). The jumper J1 feeds 5 V to the middle pin DQ through a 10K resistor (pull-up configuration). Similarly, pin notation for the infrared receiver module is OUT (D2) - GND - 5V.&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEizvkC_vkX3RNiTJ_wyFm7nGqz1epw5h7ENHIUJR3hWj8QtEz_UihKjTwqSyfyPuYOmsYx05qAdCi_eCqaImtArzxcf8-4XRSw2dtPDOfD5CHSBSbcnjSB90CqJVlKfOmMAhPFMsQKct4I/s1600/3-Sensor-Port-Pinout.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;206&quot; data-original-width=&quot;570&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEizvkC_vkX3RNiTJ_wyFm7nGqz1epw5h7ENHIUJR3hWj8QtEz_UihKjTwqSyfyPuYOmsYx05qAdCi_eCqaImtArzxcf8-4XRSw2dtPDOfD5CHSBSbcnjSB90CqJVlKfOmMAhPFMsQKct4I/s1600/3-Sensor-Port-Pinout.jpg&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;b&gt;Some Pictures:&lt;/b&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEibFa5svcjx8K4HYQFGpQBII1zolKspYZoSpzPwaooF19FqSsFJeikNNXXAd1B3lImORU32us_cuAcWuTbH5ZnBhJTopEAc0ZmIepljXbnQX4pKTSRzDgzgpCT68l2NR6NvIaq9EP-uyPc/s1600/IMG_2621.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 0em; margin-right: 0em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1600&quot; data-original-width=&quot;1200&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEibFa5svcjx8K4HYQFGpQBII1zolKspYZoSpzPwaooF19FqSsFJeikNNXXAd1B3lImORU32us_cuAcWuTbH5ZnBhJTopEAc0ZmIepljXbnQX4pKTSRzDgzgpCT68l2NR6NvIaq9EP-uyPc/s320/IMG_2621.JPG&quot; width=&quot;240&quot; /&gt;&lt;/a&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0pOyWf8JsG8mobn8UIADCEy1oq-vTTyYQ8CwvECIuUD9UKv0x_rOD2YCjH3ZeZeAzW0BYQEvnROSM8L2-LR7dMqQ_Kxb1E4neDihUSnmeQUCqjdA4X1_PQbR5tNYoL1dL0DklgQn7jkM/s1600/IMG_2623.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 0em; margin-right: 0em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1600&quot; data-original-width=&quot;1200&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0pOyWf8JsG8mobn8UIADCEy1oq-vTTyYQ8CwvECIuUD9UKv0x_rOD2YCjH3ZeZeAzW0BYQEvnROSM8L2-LR7dMqQ_Kxb1E4neDihUSnmeQUCqjdA4X1_PQbR5tNYoL1dL0DklgQn7jkM/s320/IMG_2623.JPG&quot; width=&quot;240&quot; /&gt;&lt;/a&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXvkp71zrLs9x9TGI-L8LTDax9op8n8XsA2KOa9e9s8nZxcs_-_7ij6f3khy3BGIdFe_Cbgu378VMmr2IkDfUJmzo39A1RxIZSaVsVpYLqwtzCSSLmuw1J6KarfzuG9iOthvqc3oP9fjw/s1600/IMG_2654.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 0em; margin-right: 0em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1600&quot; data-original-width=&quot;1200&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXvkp71zrLs9x9TGI-L8LTDax9op8n8XsA2KOa9e9s8nZxcs_-_7ij6f3khy3BGIdFe_Cbgu378VMmr2IkDfUJmzo39A1RxIZSaVsVpYLqwtzCSSLmuw1J6KarfzuG9iOthvqc3oP9fjw/s320/IMG_2654.JPG&quot; width=&quot;240&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;
&lt;b&gt;The Multifunction Shield Library&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;a href=&quot;http://files.cohesivecomputing.co.uk/MultiFuncShield-Library.zip&quot;&gt;http://files.cohesivecomputing.co.uk/MultiFuncShield-Library.zip&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;Code examples from the source&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;a href=&quot;http://arduinolearning.com/code/multi-function-shield-examples.php&quot;&gt;http://arduinolearning.com/code/multi-function-shield-examples.php&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div style=&quot;background-color: white; box-sizing: border-box; color: #414042; font-family: Martel, serif; font-size: 16px; margin-bottom: 10px;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://electronicexperiments.blogspot.com/feeds/4101409512217247423/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://electronicexperiments.blogspot.com/2019/01/multi-function-shield.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4799470828225918099/posts/default/4101409512217247423'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4799470828225918099/posts/default/4101409512217247423'/><link rel='alternate' type='text/html' href='http://electronicexperiments.blogspot.com/2019/01/multi-function-shield.html' title='Multi-function Shield'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzAwFRePy9RB_yUatw_vMpFMEtv5A-ql41GmmTQFm8SUhjHhI6MccchdcKQ5z8ISIVz9yqSoMHizpplW-YHoejftSubZdNSIMsWRCRPf9DPsxmzzNIKlhbnSMeKX_ZbjUeMFu75vwf6eo/s72-c/IMG_2624_v2.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4799470828225918099.post-7717317949214232957</id><published>2018-12-31T02:39:00.000+02:00</published><updated>2018-12-31T03:22:40.742+02:00</updated><title type='text'>PCF8574 [I2C Module] &amp; LCD Display  </title><content type='html'>&lt;div&gt;
&lt;b&gt;&lt;span style=&quot;color: red;&quot;&gt;Overview&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhu5nX-BZgwYdNgZ0hW8UW2Hn9gS7Lw5t-tG-GIJe8i2YwRfqMCsCs2QamTzUxnk_b6cWqQog6padLqjYGj0BhZtCZyMyS-Fa7ubueZohdByWpEJBDanaswDto7ipNUOzuCHqLuIhmp8g0/s1600/IMG_07.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1441&quot; data-original-width=&quot;1141&quot; height=&quot;120&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhu5nX-BZgwYdNgZ0hW8UW2Hn9gS7Lw5t-tG-GIJe8i2YwRfqMCsCs2QamTzUxnk_b6cWqQog6padLqjYGj0BhZtCZyMyS-Fa7ubueZohdByWpEJBDanaswDto7ipNUOzuCHqLuIhmp8g0/s200/IMG_07.jpg&quot; width=&quot;118&quot; /&gt;&lt;/a&gt;The &lt;a href=&quot;http://www.ti.com/lit/ds/symlink/pcf8574.pdf&quot; target=&quot;_blank&quot;&gt;PCF8574&lt;/a&gt; is a silicon CMOS circuit. It provides general purpose remote I/O expansion for most microcontroller families by way of the I2C interface [serial clock (SCL), serial data (SDA)].&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
The device features an 8-bit quasi-bidirectional I/O port (P0–P7), including latched outputs with high-current drive capability for directly driving LEDs. Each quasi-bidirectional I/O can be used as an input or output without the use of a data-direction control signal. At power on, the I/Os are high. In this mode, only a current source to VCC is active.&lt;br /&gt;
&lt;br /&gt;
This 8-bit input/output (I/O) expander for the two-line bidirectional bus (I2C) is designed for 2.5-V to 6-V VCC operation.&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjcI7fWy7lRLoteJ27FEuwhd8DRN59tBXHRW4BGZ-3yeHBHAbLao-o7kYa1ECc0uEw5bCFnkmvBViKr__3DOnXOtsLKPBbPp1JhW_FSGKBr1UokOBQQJBvM_Pwb4r5eXbHhOteslXK5KNc/s1600/IMG_10.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;209&quot; data-original-width=&quot;517&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjcI7fWy7lRLoteJ27FEuwhd8DRN59tBXHRW4BGZ-3yeHBHAbLao-o7kYa1ECc0uEw5bCFnkmvBViKr__3DOnXOtsLKPBbPp1JhW_FSGKBr1UokOBQQJBvM_Pwb4r5eXbHhOteslXK5KNc/s1600/IMG_10.PNG&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;&lt;span style=&quot;color: red;&quot;&gt;Features&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;ul&gt;
&lt;li&gt;Low Standby-Current Consumption of 10 µA Max&lt;/li&gt;
&lt;li&gt;I2C to Parallel-Port Expander&lt;/li&gt;
&lt;li&gt;Open-Drain Interrupt Output&lt;/li&gt;
&lt;li&gt;Compatible With Most Microcontrollers&lt;/li&gt;
&lt;li&gt;Latched Outputs With High-Current Drive&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Capability for Directly Driving LEDs&lt;/li&gt;
&lt;li&gt;Latch-Up Performance Exceeds 100 mA&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Per JESD 78, Class II&lt;/li&gt;
&lt;li&gt;Package: DIP16, SO16 and SSOP20.&lt;/li&gt;
&lt;/ul&gt;
&lt;b&gt;&lt;span style=&quot;color: red;&quot;&gt;Applications&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;div&gt;
&lt;ul&gt;
&lt;li&gt;Telecom Shelters: Filter Units&lt;/li&gt;
&lt;li&gt;Servers&lt;/li&gt;
&lt;li&gt;Routers (Telecom Switching Equipment)&lt;/li&gt;
&lt;li&gt;Personal Computers&lt;/li&gt;
&lt;li&gt;Personal Electronics&lt;/li&gt;
&lt;li&gt;Industrial Automation&lt;/li&gt;
&lt;li&gt;Products with GPIO-Limited Processors&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;&lt;span style=&quot;color: red;&quot;&gt;Diagram&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;&lt;span style=&quot;color: red;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0yiSxKto79sAfysfF2geuvPasQx8ZZZ0JYQ-Sl6WE8h_L-h99YR97E3ZeYKxVDBU4gJlZqHPd50EwTvpyR4Ch-3YNQoVOE01FNNzm4c2kYjL5B6vfIIE2z9ON2iiLBbCo5h9v5RTwExA/s1600/IMG_01.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;338&quot; data-original-width=&quot;471&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0yiSxKto79sAfysfF2geuvPasQx8ZZZ0JYQ-Sl6WE8h_L-h99YR97E3ZeYKxVDBU4gJlZqHPd50EwTvpyR4Ch-3YNQoVOE01FNNzm4c2kYjL5B6vfIIE2z9ON2iiLBbCo5h9v5RTwExA/s1600/IMG_01.PNG&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: red;&quot;&gt;Pinning&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;color: red;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg3Tr3iEiMQfS6m7JOqRneYLAM_QwTWqrqepmX267TIeotvScRHKTYS4Dh6j2u-RbL_KARa8nG2GLibkM7UpkaMY06LIW3jji4GLycn9Ln9Y-6FZbrTrCjozacJdOGxHuiXn5FAG_GKdBw/s1600/IMG_02.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;321&quot; data-original-width=&quot;468&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg3Tr3iEiMQfS6m7JOqRneYLAM_QwTWqrqepmX267TIeotvScRHKTYS4Dh6j2u-RbL_KARa8nG2GLibkM7UpkaMY06LIW3jji4GLycn9Ln9Y-6FZbrTrCjozacJdOGxHuiXn5FAG_GKdBw/s1600/IMG_02.PNG&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;span style=&quot;color: red;&quot;&gt;&lt;b&gt; Functional Description&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: red;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiiQjyba9yAg3hYQg6ueG0lWBj67qI9oH_vROty1saQrpHQwbPMHD-XDG1qqvFpIPJak_2XjAAAqpE4sUirK4ulcQQ7xc0NzWESuijM2Vt26jnduijg_qxa1rPkoaeYHT-C6GmDEHKwajs/s1600/IMG_04.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;378&quot; data-original-width=&quot;628&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiiQjyba9yAg3hYQg6ueG0lWBj67qI9oH_vROty1saQrpHQwbPMHD-XDG1qqvFpIPJak_2XjAAAqpE4sUirK4ulcQQ7xc0NzWESuijM2Vt26jnduijg_qxa1rPkoaeYHT-C6GmDEHKwajs/s1600/IMG_04.PNG&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;b&gt;&lt;span style=&quot;color: red;&quot;&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;div&gt;
&lt;b&gt;&lt;span style=&quot;color: red;&quot;&gt;Addressing&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
We have to pay real attention on this section if we want to communicate with the chip without spending a lot of time to understand why it doesn&#39;t work.&lt;br /&gt;
&lt;br /&gt;
In my particular case the chip address, generated by &lt;a href=&quot;https://playground.arduino.cc/Main/I2cScanner&quot; target=&quot;_blank&quot;&gt;Arduino I2C Scanner&lt;/a&gt;, was &lt;b&gt;111111&lt;/b&gt; =&amp;nbsp;&lt;b&gt;0x3F&lt;/b&gt; and it works well with Arduino Uno board.&lt;br /&gt;
The things got messy when I had tried to use the chip with a PIC controller on the regular hardware. I had dug into the issue and I&#39;ve discovered that string address wasn&#39;t complete because it doesn&#39;t contained the last state bit (R/W function), which in my case was &lt;b&gt;0&lt;/b&gt; logic. So the complete string become &lt;b&gt;1111110&lt;/b&gt; = &lt;b&gt;0x7E&lt;/b&gt;, and the module has revived.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiiYSBTgnNo-kKA89_hp1DSOGY2lxPJ020Uo-euYnfh8Ygk_viV6bdJm6Qfjv3CItfR7296aGWdCut5BlCIWqGn05jMFJlP5GDdy0pI0_MMjoj3_NvREu0rq5p5aJsqq6GSiTetrwEk7xE/s1600/IMG_04.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;142&quot; data-original-width=&quot;479&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiiYSBTgnNo-kKA89_hp1DSOGY2lxPJ020Uo-euYnfh8Ygk_viV6bdJm6Qfjv3CItfR7296aGWdCut5BlCIWqGn05jMFJlP5GDdy0pI0_MMjoj3_NvREu0rq5p5aJsqq6GSiTetrwEk7xE/s1600/IMG_04.PNG&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjurI3-0hzqsgPhtQbxLS39pStrpOcFdPU1M9jMuHPYvQHqWSeYWHP_DjF5BhJXmKGSsqq_9ZB3mZQn0IlyR7oGHoyN92uyYlOOtCrLhgz4lZR-48mE4IJh91wgkD72dh50Lim0J33239s/s1600/IMG_05.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;289&quot; data-original-width=&quot;739&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjurI3-0hzqsgPhtQbxLS39pStrpOcFdPU1M9jMuHPYvQHqWSeYWHP_DjF5BhJXmKGSsqq_9ZB3mZQn0IlyR7oGHoyN92uyYlOOtCrLhgz4lZR-48mE4IJh91wgkD72dh50Lim0J33239s/s1600/IMG_05.PNG&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgcObaKYiAPoiRRwzzcc6jGlhpnJqYtGW8TevCtdN6yh4WFcNqlgi11ZcAlvRVCu-Wnx4SRjqmfxjmaIP4uhDib4d6YvEdcCM_R15S3cvRpQm6Oracpzm3KPDZbQ1m0wehqE3ehOP12JYw/s1600/IMG_06.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;319&quot; data-original-width=&quot;759&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgcObaKYiAPoiRRwzzcc6jGlhpnJqYtGW8TevCtdN6yh4WFcNqlgi11ZcAlvRVCu-Wnx4SRjqmfxjmaIP4uhDib4d6YvEdcCM_R15S3cvRpQm6Oracpzm3KPDZbQ1m0wehqE3ehOP12JYw/s1600/IMG_06.PNG&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;&lt;span style=&quot;color: red;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;b&gt;&lt;span style=&quot;color: red;&quot;&gt;Interrupt output&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Interrupts are used when we want to use more than one device via I2C bus.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgo1EUwfS3Su9qpnI0DYPS7uRXiddEZGfesrq7wGh8LX3i09QcbEDJgj4YpB3sSEaG49A69b6qD-vmnb2pJitgbYa_fRqDx7XQU8idAjXrQJ3_CYQx9ijMQYc-wBCcKGY5x1r1Wp6kKDvc/s1600/IMG_07.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;160&quot; data-original-width=&quot;407&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgo1EUwfS3Su9qpnI0DYPS7uRXiddEZGfesrq7wGh8LX3i09QcbEDJgj4YpB3sSEaG49A69b6qD-vmnb2pJitgbYa_fRqDx7XQU8idAjXrQJ3_CYQx9ijMQYc-wBCcKGY5x1r1Wp6kKDvc/s1600/IMG_07.PNG&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZkQJZ63ow1f4fAZl752i2mUB-7WG9WksxTb5J_nb4zHWgMw1Jlr3tBlRpn39sY9Pgvqq19SrxV-GIlDU1N6UhyphenhyphenHj8a3pnwAWJ7T6FBoRHqmJzjQOn1XVwIdWUMjwCJUe5ZK7D-PSVabM/s1600/IMG_08.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;257&quot; data-original-width=&quot;547&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZkQJZ63ow1f4fAZl752i2mUB-7WG9WksxTb5J_nb4zHWgMw1Jlr3tBlRpn39sY9Pgvqq19SrxV-GIlDU1N6UhyphenhyphenHj8a3pnwAWJ7T6FBoRHqmJzjQOn1XVwIdWUMjwCJUe5ZK7D-PSVabM/s1600/IMG_08.PNG&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZz05Uq6Fubp0QzzNuWU6LGxjwXJIYppQKbu6bNzjiYS0T1HP44xUQ30O02j-p6qX9yC8hEt1z4nZGpnZz32DkpUkkpONgj7dcwy9GnSelsle3kxiQEL4kv7MOX3QDHzUswfQPPRCXcGY/s1600/IMG_09.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;279&quot; data-original-width=&quot;681&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZz05Uq6Fubp0QzzNuWU6LGxjwXJIYppQKbu6bNzjiYS0T1HP44xUQ30O02j-p6qX9yC8hEt1z4nZGpnZz32DkpUkkpONgj7dcwy9GnSelsle3kxiQEL4kv7MOX3QDHzUswfQPPRCXcGY/s1600/IMG_09.PNG&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;&lt;span style=&quot;color: red;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;b&gt;&lt;span style=&quot;color: red;&quot;&gt;Application Example&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;br /&gt;
I2C Module for LCD 1602, 1604, 2004 Displays.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEipOIfPXwlXPYPp4klEbq-eoYmBbRQlS4UokstJ5Qf7slyMlvzZ5lpBjfjfVSVYxEFHCB7dF-WKeK156ssSZr-Z9fMYqZyChN-1T6kh5cRVDjQAieBRc6xDcM353proTFBAmAVxQTlfkPw/s1600/IMG_03.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 0em; margin-right: 0em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;204&quot; data-original-width=&quot;541&quot; height=&quot;126&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEipOIfPXwlXPYPp4klEbq-eoYmBbRQlS4UokstJ5Qf7slyMlvzZ5lpBjfjfVSVYxEFHCB7dF-WKeK156ssSZr-Z9fMYqZyChN-1T6kh5cRVDjQAieBRc6xDcM353proTFBAmAVxQTlfkPw/s320/IMG_03.PNG&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjanlu5Lynwc6ZS72guIETzdCmDmXioKROrKizmF_Y7YDEJttNMI3x0jA5gxvcNWMxWbSDHirlaDLdpeouIxKFIp-V9tXruyPM95dOpM47HqLLZ6UbzbTNIxaAup1-Na3WBryDas9773s4/s1600/IMG_05.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 0em; margin-right: 0em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;211&quot; data-original-width=&quot;535&quot; height=&quot;126&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjanlu5Lynwc6ZS72guIETzdCmDmXioKROrKizmF_Y7YDEJttNMI3x0jA5gxvcNWMxWbSDHirlaDLdpeouIxKFIp-V9tXruyPM95dOpM47HqLLZ6UbzbTNIxaAup1-Na3WBryDas9773s4/s320/IMG_05.PNG&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLti9JiFi2_Khx5JMwPlhkGkCLFPeD4qb8RXaD6jLjHnnwt_V7VtBMi3V2gqXhyCJ53RQTqrC45JTC5aelqGt9LlCDZi95-b9KCH74yeXjz4VdmjRz1Pb-QxnDfKbYnxyEZVgLDtV0Tq8/s1600/IMG_03.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 0em; margin-right: 0em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1200&quot; data-original-width=&quot;1600&quot; height=&quot;200&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLti9JiFi2_Khx5JMwPlhkGkCLFPeD4qb8RXaD6jLjHnnwt_V7VtBMi3V2gqXhyCJ53RQTqrC45JTC5aelqGt9LlCDZi95-b9KCH74yeXjz4VdmjRz1Pb-QxnDfKbYnxyEZVgLDtV0Tq8/s320/IMG_03.JPG&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjDbpfSQTS4JdBaBS0AFHhP00Uuaetu3TNHrD-N14LYEO-dDq_4R_6AldwenWnxPK9nQ7MML23_ZTtJ31HvXYO34NAO5fkKXbWw81KMtpVyETQ3w6gsJ8iwrtH5q6Ft13bvSMGVG-VzYq0/s1600/IMG_08.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 0em; margin-right: 0em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;951&quot; data-original-width=&quot;1600&quot; height=&quot;200&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjDbpfSQTS4JdBaBS0AFHhP00Uuaetu3TNHrD-N14LYEO-dDq_4R_6AldwenWnxPK9nQ7MML23_ZTtJ31HvXYO34NAO5fkKXbWw81KMtpVyETQ3w6gsJ8iwrtH5q6Ft13bvSMGVG-VzYq0/s320/IMG_08.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;color: red;&quot;&gt;Test Example&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
I have a very good confident into PicKit2 Programmer, that&#39;s why often it will be seen into my photos.&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEianePw7F2ve92UIOCzZOQCSucY2m6coVq7z79En27LPRjQHeHrj2hQb4ekRvrLV1Hr4MDirVAS9kwG85vnY0VbbVj1M9kmMuFOtWqXkyLFP9ZFEnbZx47TFm7dzZsN5vgaRNlC4xH1geY/s1600/IMG_2525.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 0em; margin-right: 0em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1600&quot; data-original-width=&quot;1200&quot; height=&quot;400&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEianePw7F2ve92UIOCzZOQCSucY2m6coVq7z79En27LPRjQHeHrj2hQb4ekRvrLV1Hr4MDirVAS9kwG85vnY0VbbVj1M9kmMuFOtWqXkyLFP9ZFEnbZx47TFm7dzZsN5vgaRNlC4xH1geY/s400/IMG_2525.JPG&quot; width=&quot;300&quot; /&gt;&lt;/a&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhoU9PXkMPEQzt-Oe6mSE2-IeIpNJePcDe77_dxV81i2umiERxRyBbiDEslxs73_kAx2OCI9D4rcOV6L1qzlAuOGJhS0hRu_yjE3lrSbesDolCSfLn2nRExPkYqR1e4ms5TlzxOVwTRa2k/s1600/IMG_2529.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 0em; margin-right: 0em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1600&quot; data-original-width=&quot;1200&quot; height=&quot;400&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhoU9PXkMPEQzt-Oe6mSE2-IeIpNJePcDe77_dxV81i2umiERxRyBbiDEslxs73_kAx2OCI9D4rcOV6L1qzlAuOGJhS0hRu_yjE3lrSbesDolCSfLn2nRExPkYqR1e4ms5TlzxOVwTRa2k/s400/IMG_2529.JPG&quot; width=&quot;300&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMW8qY9g0eid2OIGDZB_EG3kFOI6tQ9IUMvsGE-4Jkuxp-jdP85eo00lhyphenhyphenZ5ZgiG6MjCrANKHVqSPgwSUlvsVmappqaElCYMoeqcDMS2sgo-c3RmjF02wxdzyRvhl_Ywrwaq9Wz8E4Vrk/s1600/IMG_2535.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 0em; margin-right: 0em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1200&quot; data-original-width=&quot;1600&quot; height=&quot;240&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMW8qY9g0eid2OIGDZB_EG3kFOI6tQ9IUMvsGE-4Jkuxp-jdP85eo00lhyphenhyphenZ5ZgiG6MjCrANKHVqSPgwSUlvsVmappqaElCYMoeqcDMS2sgo-c3RmjF02wxdzyRvhl_Ywrwaq9Wz8E4Vrk/s320/IMG_2535.JPG&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEje5JgNYFAIiCd3vK-6FSkyFaphYTk6YJ1OrqGSEcNLcA6TJY9Bq3BfTL_bfYQG4VFB9iIA85jZGKwLW1MpGkslZxPz5iDe6u2A0ZoJZo7y4P2_w8vsLhCauHofrHl-R3q_fOI0JWHkcWc/s1600/IMG_2533.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 0em; margin-right: 0em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1200&quot; data-original-width=&quot;1600&quot; height=&quot;240&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEje5JgNYFAIiCd3vK-6FSkyFaphYTk6YJ1OrqGSEcNLcA6TJY9Bq3BfTL_bfYQG4VFB9iIA85jZGKwLW1MpGkslZxPz5iDe6u2A0ZoJZo7y4P2_w8vsLhCauHofrHl-R3q_fOI0JWHkcWc/s320/IMG_2533.JPG&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgSH5NKq6xD3unRmf62XB2oUTrfPfnzGdJwOkOF_TytxW_8Lpc6-hqkAdi7AaJVLinnrLUdTs1kTN2rrfN0TlCHRK4b5b4lNlSN8HVZ71ybr0_yhD4PGOmHl6Dl76w4CDCIsATWVxYjFUg/s1600/IMG_2536.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 0em; margin-right: 0em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1200&quot; data-original-width=&quot;1600&quot; height=&quot;240&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgSH5NKq6xD3unRmf62XB2oUTrfPfnzGdJwOkOF_TytxW_8Lpc6-hqkAdi7AaJVLinnrLUdTs1kTN2rrfN0TlCHRK4b5b4lNlSN8HVZ71ybr0_yhD4PGOmHl6Dl76w4CDCIsATWVxYjFUg/s320/IMG_2536.JPG&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg692MmdKAv7Spe95mQ746pZvvnMVzyS0-_D5ZxULo5WuxO1fgDX0yK93Bc4GSwssC2O5axbmWWUJVOZVcml_EoxuTIql9XGRSGFrT1WZLgaZfF8ExFSqXhXL2uf40BWYDF2lUqLXe3WYI/s1600/IMG_2539.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 0em; margin-right: 0em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1200&quot; data-original-width=&quot;1600&quot; height=&quot;240&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg692MmdKAv7Spe95mQ746pZvvnMVzyS0-_D5ZxULo5WuxO1fgDX0yK93Bc4GSwssC2O5axbmWWUJVOZVcml_EoxuTIql9XGRSGFrT1WZLgaZfF8ExFSqXhXL2uf40BWYDF2lUqLXe3WYI/s320/IMG_2539.JPG&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;b&gt;&lt;span style=&quot;color: red;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;b&gt;&lt;span style=&quot;color: red;&quot;&gt;Code Example&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;color: red;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
Written in MikroC Pro for PIC v7.2.0
&lt;br /&gt;
&lt;pre&gt;&lt;span style=&quot;color: #2582e9;&quot;&gt;
/************************************************************************
*  Project name: I2C(PCF8574) &amp;amp; LCD1602
*  Description: Communication test
*    Hardware configuration is:
*             IC PCF8574 is connected with our microcontroller by RC3=SCL,
*             RC4=SDA (I2C Connections), +5vdc and circuit ground
*             Message example written on 16x02 LCD characters:
*             ------------------
*             |I2C LCD 16x2    |
*             |PIC16F876A 8 MHz|
*             ------------------
*  Adapted by:
*    Aureliu Raducu Macovei, 2018.
*  Test configuration:
*    MCU:                        PIC16F876A;
*    Test.Board:                 WB-106 Breadboard 2420 dots;
*    SW:                         MikroC PRO for PIC 2018 (version v7.2.0);
*  Configuration Word:
*    Oscillator:                 HS (8Mhz)on pins 9 and 10;
*    Watchdog Timer:             OFF;
*    Power up Timer:             OFF;
*    Browun Out Detect:          ON;
*    Low Voltage Program:        Disabled;
*    Data EE Read Protect:       OFF;
*    Flash Program Write:        Write Protection OFF;
*    Background Debug:           Disabled;
*    Code Protect:               OFF
************************************************************************/
#define _LCD_FIRST_ROW          0x80     //Move cursor to the 1st row
#define _LCD_SECOND_ROW         0xC0     //Move cursor to the 2nd row
#define _LCD_THIRD_ROW          0x94     //Move cursor to the 3rd row
#define _LCD_FOURTH_ROW         0xD4     //Move cursor to the 4th row
#define _LCD_CLEAR              0x01     //Clear display
#define _LCD_RETURN_HOME        0x02     //Return cursor to home position, returns a shifted display to
                                         //its original position. Display data RAM is unaffected.
#define _LCD_CURSOR_OFF         0x0C     //Turn off cursor
#define _LCD_UNDERLINE_ON       0x0E     //Underline cursor on
#define _LCD_BLINK_CURSOR_ON    0x0F     //Blink cursor on
#define _LCD_MOVE_CURSOR_LEFT   0x10     //Move cursor left without changing display data RAM
#define _LCD_MOVE_CURSOR_RIGHT  0x14     //Move cursor right without changing display data RAM
#define _LCD_TURN_ON            0x0C     //Turn Lcd display on
#define _LCD_TURN_OFF           0x08     //Turn Lcd display off
#define _LCD_SHIFT_LEFT         0x18     //Shift display left without changing display data RAM
#define _LCD_SHIFT_RIGHT        0x1E     //Shift display right without changing display data RAM

// LCD Definitions
#define LCD_ADDR 0x7E                    // This is PCF8574 adress. On mine pcb &quot;MH&quot; series the adress is 0x3F or 0x7E

// Lcd constants
char txt1[] = &quot;I2C LCD 16x2&quot;;
char txt2[] = &quot;PIC16F876A 8 MHz&quot;;

void I2C_LCD_Cmd(char out_char) {

    char hi_n, lo_n;
    char rs = 0x00;

    hi_n = out_char &amp;amp; 0xF0;
    lo_n = (out_char &amp;lt;&amp;lt; 4) &amp;amp; 0xF0;

    I2C1_Start();
    I2C1_Is_Idle();
    I2C1_Wr(LCD_ADDR);
    I2C1_Is_Idle();
    I2C1_Wr(hi_n | rs | 0x04 | 0x08);
    I2C1_Is_Idle();
    Delay_us(50);
    I2C1_Wr(hi_n | rs | 0x00 | 0x08);
    I2C1_Is_Idle();
    Delay_us(100);
    I2C1_Wr(lo_n | rs | 0x04 | 0x08);
    I2C1_Is_Idle();
    Delay_us(50);
    I2C1_Wr(lo_n | rs | 0x00 | 0x08);
    I2C1_Is_Idle();
    I2C1_stop();

    if(out_char == 0x01)Delay_ms(2);
}

void I2C_LCD_Chr(char row, char column, char out_char) {

    char hi_n, lo_n;
    char rs = 0x01;

    switch(row){

        case 1:
        I2C_LCD_Cmd(0x80 + (column - 1));
        break;
        case 2:
        I2C_LCD_Cmd(0xC0 + (column - 1));
        break;
        case 3:
        I2C_LCD_Cmd(0x94 + (column - 1));
        break;
        case 4:
        I2C_LCD_Cmd(0xD4 + (column - 1));
        break;
    };

    hi_n = out_char &amp;amp; 0xF0;
    lo_n = (out_char &amp;lt;&amp;lt; 4) &amp;amp; 0xF0;

    I2C1_Start();
    I2C1_Is_Idle();
    I2C1_Wr(LCD_ADDR);
    I2C1_Is_Idle();
    I2C1_Wr(hi_n | rs | 0x04 | 0x08);
    I2C1_Is_Idle();
    Delay_us(50);
    I2C1_Wr(hi_n | rs | 0x00 | 0x08);
    I2C1_Is_Idle();
    Delay_us(100);
    I2C1_Wr(lo_n | rs | 0x04 | 0x08);
    I2C1_Is_Idle();
    Delay_us(50);
    I2C1_Wr(lo_n | rs | 0x00 | 0x08);
    I2C1_Is_Idle();
    I2C1_stop();
}

void I2C_LCD_Chr_Cp(char out_char) {

    char hi_n, lo_n;
    char rs = 0x01;

    hi_n = out_char &amp;amp; 0xF0;
    lo_n = (out_char &amp;lt;&amp;lt; 4) &amp;amp; 0xF0;

    I2C1_Start();
    I2C1_Is_Idle();
    I2C1_Wr(LCD_ADDR);
    I2C1_Is_Idle();
    I2C1_Wr(hi_n | rs | 0x04 | 0x08);
    I2C1_Is_Idle();
    Delay_us(50);
    I2C1_Wr(hi_n | rs | 0x00 | 0x08);
    I2C1_Is_Idle();
    Delay_us(100);
    I2C1_Wr(lo_n | rs | 0x04 | 0x08);
    I2C1_Is_Idle();
    Delay_us(50);
    I2C1_Wr(lo_n | rs | 0x00 | 0x08);
    I2C1_Is_Idle();
    I2C1_stop();
}

void I2C_LCD_Init() {

    char rs = 0x00;

    I2C1_Start();
    I2C1_Is_Idle();
    I2C1_Wr(LCD_ADDR);
    I2C1_Is_Idle();

    Delay_ms(30);

    I2C1_Wr(0x30 | rs | 0x04 | 0x08);
    I2C1_Is_Idle();
    Delay_us(50);
    I2C1_Wr(0x30 | rs | 0x00 | 0x08);
    I2C1_Is_Idle();

    Delay_ms(10);

    I2C1_Wr(0x30 | rs | 0x04 | 0x08);
    I2C1_Is_Idle();
    Delay_us(50);
    I2C1_Wr(0x30 | rs | 0x00 | 0x08);
    I2C1_Is_Idle();

    Delay_ms(10);

    I2C1_Wr(0x30 | rs | 0x04 | 0x08);
    I2C1_Is_Idle();
    Delay_us(50);
    I2C1_Wr(0x30 | rs | 0x00 | 0x08);
    I2C1_Is_Idle();

    Delay_ms(10);

    I2C1_Wr(0x20 | rs | 0x04 | 0x08);
    I2C1_Is_Idle();
    Delay_us(50);
    I2C1_Wr(0x20 | rs | 0x00 | 0x08);
    I2C1_Is_Idle();
    I2C1_Stop();

    Delay_ms(10);

    I2C_LCD_Cmd(0x28);
    I2C_LCD_Cmd(0x06);
}

void I2C_LCD_Out(char row, char col, char *text) {
    while(*text)
    I2C_LCD_Chr(row, col++, *text++);
}

void I2C_LCD_Out_Cp(char *text) {
    while(*text)
    I2C_LCD_Chr_Cp(*text++);
}

void main() {

    TRISA = 0x00;
    PORTA = 0x00;

    I2C1_Init(100000);

    I2C_LCD_Init();
    I2C_LCD_Cmd(_LCD_CURSOR_OFF);
    I2C_LCD_Cmd(_LCD_CLEAR);
    I2C_Lcd_Out(1,1,txt1);                 // Write text in first row
    I2C_Lcd_Out(2,1,txt2);                 // Write text in second row

    while(1) {

    }
}&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://electronicexperiments.blogspot.com/feeds/7717317949214232957/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://electronicexperiments.blogspot.com/2018/12/pcf8574-i2c-module-lcd-display.html#comment-form' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4799470828225918099/posts/default/7717317949214232957'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4799470828225918099/posts/default/7717317949214232957'/><link rel='alternate' type='text/html' href='http://electronicexperiments.blogspot.com/2018/12/pcf8574-i2c-module-lcd-display.html' title='PCF8574 [I2C Module] &amp; LCD Display  '/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhu5nX-BZgwYdNgZ0hW8UW2Hn9gS7Lw5t-tG-GIJe8i2YwRfqMCsCs2QamTzUxnk_b6cWqQog6padLqjYGj0BhZtCZyMyS-Fa7ubueZohdByWpEJBDanaswDto7ipNUOzuCHqLuIhmp8g0/s72-c/IMG_07.jpg" height="72" width="72"/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4799470828225918099.post-6665543784742328941</id><published>2018-11-17T20:38:00.001+02:00</published><updated>2018-12-13T22:01:41.736+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="1602"/><category scheme="http://www.blogger.com/atom/ns#" term="1602 LCD Keypad Shield"/><category scheme="http://www.blogger.com/atom/ns#" term="Arduino"/><category scheme="http://www.blogger.com/atom/ns#" term="Arduino Uno"/><category scheme="http://www.blogger.com/atom/ns#" term="DHT"/><category scheme="http://www.blogger.com/atom/ns#" term="DHT1"/><category scheme="http://www.blogger.com/atom/ns#" term="DHT1x"/><category scheme="http://www.blogger.com/atom/ns#" term="DHT22"/><category scheme="http://www.blogger.com/atom/ns#" term="DHT2x"/><category scheme="http://www.blogger.com/atom/ns#" term="ducu"/><category scheme="http://www.blogger.com/atom/ns#" term="LCD"/><category scheme="http://www.blogger.com/atom/ns#" term="Measuring"/><category scheme="http://www.blogger.com/atom/ns#" term="Shield"/><category scheme="http://www.blogger.com/atom/ns#" term="Soldering"/><category scheme="http://www.blogger.com/atom/ns#" term="Uno"/><title type='text'>DHT22 &amp; LCD Shield</title><content type='html'>&lt;div class=&quot;MsoNormal&quot;&gt;
In this article I will describe to you, how to develop a
home weather station using the DHT22 temperature/humidity sensor.&lt;br /&gt;
&lt;b&gt;&lt;u&gt;&lt;br /&gt;&lt;/u&gt;&lt;/b&gt;
&lt;b&gt;&lt;u&gt;TECHNICAL DETAILS&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 3.0pt;&quot;&gt;
&lt;/div&gt;
&lt;table border=&quot;1&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;MsoTableGrid&quot; style=&quot;border-collapse: collapse; border: none; margin-left: 5.4pt; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-padding-alt: 0in 5.4pt 0in 5.4pt; mso-yfti-tbllook: 1184;&quot;&gt;&lt;tbody&gt;
&lt;tr style=&quot;height: 13.75pt; mso-yfti-irow: 1;&quot;&gt;&lt;td style=&quot;border: none; height: 13.75pt; padding: 0in 5.4pt 0in 5.4pt; width: 130.5pt;&quot; valign=&quot;top&quot; width=&quot;174&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;mso-layout-grid-align: none; text-autospace: none;&quot;&gt;
Model:&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;mso-layout-grid-align: none; text-autospace: none;&quot;&gt;
&lt;span style=&quot;mso-bidi-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Power supply:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border: none; height: 13.75pt; padding: 0in 5.4pt 0in 5.4pt; width: 279.0pt;&quot; valign=&quot;top&quot; width=&quot;372&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
DHT22&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;mso-bidi-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;3.3-6V
  DC (2.5mA max current use during conversion (while requesting data))&lt;b style=&quot;mso-bidi-font-weight: normal;&quot;&gt;&lt;u&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/u&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style=&quot;height: 12.4pt; mso-yfti-irow: 2;&quot;&gt;
  &lt;td style=&quot;border: none; height: 12.4pt; padding: 0in 5.4pt 0in 5.4pt; width: 130.5pt;&quot; valign=&quot;top&quot; width=&quot;174&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;mso-layout-grid-align: none; text-autospace: none;&quot;&gt;
&lt;span style=&quot;mso-bidi-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Output signal:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border: none; height: 12.4pt; padding: 0in 5.4pt 0in 5.4pt; width: 279.0pt;&quot; valign=&quot;top&quot; width=&quot;372&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;mso-bidi-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Digital
  signal via single-bus&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style=&quot;height: 12.4pt; mso-yfti-irow: 3;&quot;&gt;
  &lt;td style=&quot;border: none; height: 12.4pt; padding: 0in 5.4pt 0in 5.4pt; width: 130.5pt;&quot; valign=&quot;top&quot; width=&quot;174&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;mso-layout-grid-align: none; text-autospace: none;&quot;&gt;
&lt;span style=&quot;mso-bidi-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Sensing element:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border: none; height: 12.4pt; padding: 0in 5.4pt 0in 5.4pt; width: 279.0pt;&quot; valign=&quot;top&quot; width=&quot;372&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;mso-bidi-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Polymer
  capacitor&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style=&quot;height: 15.15pt; mso-yfti-irow: 4;&quot;&gt;
  &lt;td style=&quot;border: none; height: 15.15pt; padding: 0in 5.4pt 0in 5.4pt; width: 130.5pt;&quot; valign=&quot;top&quot; width=&quot;174&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;mso-layout-grid-align: none; text-autospace: none;&quot;&gt;
&lt;span style=&quot;mso-bidi-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Operating range:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border: none; height: 15.15pt; padding: 0in 5.4pt 0in 5.4pt; width: 279.0pt;&quot; valign=&quot;top&quot; width=&quot;372&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;mso-bidi-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Humidity:
  0-100%RH;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;mso-bidi-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Temperature:
  -40~80Celsius&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style=&quot;height: 14.25pt; mso-yfti-irow: 5;&quot;&gt;
  &lt;td style=&quot;border: none; height: 14.25pt; padding: 0in 5.4pt 0in 5.4pt; width: 130.5pt;&quot; valign=&quot;top&quot; width=&quot;174&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;mso-layout-grid-align: none; text-autospace: none;&quot;&gt;
&lt;span style=&quot;mso-bidi-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Accuracy:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border: none; height: 14.25pt; padding: 0in 5.4pt 0in 5.4pt; width: 279.0pt;&quot; valign=&quot;top&quot; width=&quot;372&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;mso-bidi-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Humidity
  +-2%RH(Max +-5%RH);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;mso-bidi-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Temperature
  &amp;lt;+-0.5 Celsius&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style=&quot;height: 15.6pt; mso-yfti-irow: 6;&quot;&gt;
  &lt;td style=&quot;border: none; height: 15.6pt; padding: 0in 5.4pt 0in 5.4pt; width: 130.5pt;&quot; valign=&quot;top&quot; width=&quot;174&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;mso-layout-grid-align: none; text-autospace: none;&quot;&gt;
&lt;span style=&quot;mso-bidi-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Resolution or sensitivity:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border: none; height: 15.6pt; padding: 0in 5.4pt 0in 5.4pt; width: 279.0pt;&quot; valign=&quot;top&quot; width=&quot;372&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;mso-bidi-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Humidity
  0.1%RH;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;mso-bidi-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Temperature
  0.1Celsius&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style=&quot;height: 17.45pt; mso-yfti-irow: 7;&quot;&gt;
  &lt;td style=&quot;border: none; height: 17.45pt; padding: 0in 5.4pt 0in 5.4pt; width: 130.5pt;&quot; valign=&quot;top&quot; width=&quot;174&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;mso-layout-grid-align: none; text-autospace: none;&quot;&gt;
&lt;span style=&quot;mso-bidi-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Repeatability:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border: none; height: 17.45pt; padding: 0in 5.4pt 0in 5.4pt; width: 279.0pt;&quot; valign=&quot;top&quot; width=&quot;372&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;mso-bidi-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Humidity
  +-1%RH;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;mso-bidi-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Temperature+-0.2Celsius&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style=&quot;height: 14.75pt; mso-yfti-irow: 8;&quot;&gt;
  &lt;td style=&quot;border: none; height: 14.75pt; padding: 0in 5.4pt 0in 5.4pt; width: 130.5pt;&quot; valign=&quot;top&quot; width=&quot;174&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;mso-layout-grid-align: none; text-autospace: none;&quot;&gt;
&lt;span style=&quot;mso-bidi-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Humidity hysteresis:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border: none; height: 14.75pt; padding: 0in 5.4pt 0in 5.4pt; width: 279.0pt;&quot; valign=&quot;top&quot; width=&quot;372&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;mso-bidi-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;+-0.3%RH&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style=&quot;height: 13.75pt; mso-yfti-irow: 9;&quot;&gt;
  &lt;td style=&quot;border: none; height: 13.75pt; padding: 0in 5.4pt 0in 5.4pt; width: 130.5pt;&quot; valign=&quot;top&quot; width=&quot;174&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;mso-layout-grid-align: none; text-autospace: none;&quot;&gt;
&lt;span style=&quot;mso-bidi-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Long-term Stability:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border: none; height: 13.75pt; padding: 0in 5.4pt 0in 5.4pt; width: 279.0pt;&quot; valign=&quot;top&quot; width=&quot;372&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;mso-bidi-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;+-0.5%RH/year&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style=&quot;height: 12.4pt; mso-yfti-irow: 10;&quot;&gt;
  &lt;td style=&quot;border: none; height: 12.4pt; padding: 0in 5.4pt 0in 5.4pt; width: 130.5pt;&quot; valign=&quot;top&quot; width=&quot;174&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;mso-layout-grid-align: none; text-autospace: none;&quot;&gt;
&lt;span style=&quot;mso-bidi-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Sensing period:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border: none; height: 12.4pt; padding: 0in 5.4pt 0in 5.4pt; width: 279.0pt;&quot; valign=&quot;top&quot; width=&quot;372&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;mso-bidi-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Average:
  2s&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style=&quot;height: 14.7pt; mso-yfti-irow: 11;&quot;&gt;
  &lt;td style=&quot;border: none; height: 14.7pt; padding: 0in 5.4pt 0in 5.4pt; width: 130.5pt;&quot; valign=&quot;top&quot; width=&quot;174&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;mso-layout-grid-align: none; text-autospace: none;&quot;&gt;
&lt;span style=&quot;mso-bidi-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Interchangeability:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border: none; height: 14.7pt; padding: 0in 5.4pt 0in 5.4pt; width: 279.0pt;&quot; valign=&quot;top&quot; width=&quot;372&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;mso-bidi-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;fully
  interchangeable&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style=&quot;height: 25.25pt; mso-yfti-irow: 12;&quot;&gt;
  &lt;td style=&quot;border: none; height: 25.25pt; padding: 0in 5.4pt 0in 5.4pt; width: 130.5pt;&quot; valign=&quot;top&quot; width=&quot;174&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;mso-bidi-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Dimensions:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border: none; height: 25.25pt; padding: 0in 5.4pt 0in 5.4pt; width: 279.0pt;&quot; valign=&quot;top&quot; width=&quot;372&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;mso-bidi-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Small
  size 14*18*5.5mm;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;mso-bidi-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Big
  size 22*28*5mm&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style=&quot;height: 19.25pt; mso-yfti-irow: 13; mso-yfti-lastrow: yes;&quot;&gt;
  &lt;td style=&quot;border: none; height: 19.25pt; padding: 0in 5.4pt 0in 5.4pt; width: 130.5pt;&quot; valign=&quot;top&quot; width=&quot;174&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
Weight (just the DHT22):&lt;span style=&quot;mso-bidi-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border: none; height: 19.25pt; padding: 0in 5.4pt 0in 5.4pt; width: 279.0pt;&quot; valign=&quot;top&quot; width=&quot;372&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
2.4g&lt;span style=&quot;mso-bidi-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;color: red;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;color: red;&quot;&gt;Hardware setup:&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
The development board used for this experiment will be the
&lt;a href=&quot;https://electronicexperiments.blogspot.com/2018/11/arduino-uno-rev3-development-board.html&quot; target=&quot;_blank&quot;&gt;Arduino UNO&lt;/a&gt; and the measured values will be displayed on 1602 LCD Keypad Shield
board.&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;!--[if gte vml 1]&gt;&lt;v:shapetype id=&quot;_x0000_t75&quot; coordsize=&quot;21600,21600&quot;
 o:spt=&quot;75&quot; o:preferrelative=&quot;t&quot; path=&quot;m@4@5l@4@11@9@11@9@5xe&quot; filled=&quot;f&quot;
 stroked=&quot;f&quot;&gt;
 &lt;v:stroke joinstyle=&quot;miter&quot;/&gt;
 &lt;v:formulas&gt;
  &lt;v:f eqn=&quot;if lineDrawn pixelLineWidth 0&quot;/&gt;
  &lt;v:f eqn=&quot;sum @0 1 0&quot;/&gt;
  &lt;v:f eqn=&quot;sum 0 0 @1&quot;/&gt;
  &lt;v:f eqn=&quot;prod @2 1 2&quot;/&gt;
  &lt;v:f eqn=&quot;prod @3 21600 pixelWidth&quot;/&gt;
  &lt;v:f eqn=&quot;prod @3 21600 pixelHeight&quot;/&gt;
  &lt;v:f eqn=&quot;sum @0 0 1&quot;/&gt;
  &lt;v:f eqn=&quot;prod @6 1 2&quot;/&gt;
  &lt;v:f eqn=&quot;prod @7 21600 pixelWidth&quot;/&gt;
  &lt;v:f eqn=&quot;sum @8 21600 0&quot;/&gt;
  &lt;v:f eqn=&quot;prod @7 21600 pixelHeight&quot;/&gt;
  &lt;v:f eqn=&quot;sum @10 21600 0&quot;/&gt;
 &lt;/v:formulas&gt;
 &lt;v:path o:extrusionok=&quot;f&quot; gradientshapeok=&quot;t&quot; o:connecttype=&quot;rect&quot;/&gt;
 &lt;o:lock v:ext=&quot;edit&quot; aspectratio=&quot;t&quot;/&gt;
&lt;/v:shapetype&gt;&lt;v:shape id=&quot;Picture_x0020_4&quot; o:spid=&quot;_x0000_s1026&quot; type=&quot;#_x0000_t75&quot;
 style=&#39;position:absolute;margin-left:370.6pt;margin-top:35.3pt;width:132.25pt;
 height:162.95pt;z-index:1;visibility:visible;mso-wrap-style:square;
 mso-wrap-distance-left:9pt;mso-wrap-distance-top:0;mso-wrap-distance-right:9pt;
 mso-wrap-distance-bottom:0;mso-position-horizontal:absolute;
 mso-position-horizontal-relative:text;mso-position-vertical:absolute;
 mso-position-vertical-relative:text&#39;&gt;
 &lt;v:imagedata src=&quot;file:///C:\Users\Gabriela\AppData\Local\Temp\msohtmlclip1\01\clip_image001.png&quot;
  o:title=&quot;&quot;/&gt;
 &lt;w:wrap type=&quot;square&quot;/&gt;
&lt;/v:shape&gt;&lt;![endif]--&gt;&lt;!--[if !vml]--&gt;&lt;!--[endif]--&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiu4nuY0UHUz3I4iH3wfYMseRZXm21Wd6fsfES546HKJRI7aXPSlKUsAHBHHnIK-F-Bi2bf-2DxrCVb1BkbGrU5FZWV1f0r0Cv-f-dh0i7W1BACMEZFXtOEIXUjAf_AFBgxEXiOe6Z338s/s1600/Arduino+ALL.PNG&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;382&quot; data-original-width=&quot;319&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiu4nuY0UHUz3I4iH3wfYMseRZXm21Wd6fsfES546HKJRI7aXPSlKUsAHBHHnIK-F-Bi2bf-2DxrCVb1BkbGrU5FZWV1f0r0Cv-f-dh0i7W1BACMEZFXtOEIXUjAf_AFBgxEXiOe6Z338s/s320/Arduino+ALL.PNG&quot; width=&quot;267&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;https://www.sparkfun.com/datasheets/Sensors/Temperature/DHT22.pdf&quot;&gt;DHT22&lt;/a&gt;
is a low-cost digital temperature and humidity sensor. It uses a capacitive
humidity sensor and a thermistor to measure the surrounding air, and generate
out a digital signal on the data pin (which means no analog input pins needed).
It&#39;s fairly simple to use, but requires careful timing to collect data. The
only real downside of this sensor is you can only get new data from it once
every 2 seconds, so when using DHT22 library, sensor readings can be up to 2
seconds old.&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;
Simply connect the first pin on the left to 3-5V power, the
second pin to your data input pin and the rightmost pin to ground. Although it
uses a single-wire to send data &lt;b&gt;it is not Dallas One Wire compatible!&lt;/b&gt; If you want multiple sensors, each one must
have its own data pin.&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;
In my particular case 1602 LCD Keypad Shield ICSP connector
(&lt;b&gt;&lt;i&gt;VCC,
D11, GND&lt;/i&gt;&lt;/b&gt;) was the easiest way to connect my DHT22 sensor. Keypad functionality
wouldn’t be used on this article.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhLoq2Yr7NH_HmombAYEy3LwYI9Av-2cB9aYtFrZJ7lp7x0rmKwYVvAt1fRwK3wKzKqZtBj_iVOChWLlbMxtXBEqyWGBVqdT5u8jaXrRf60_Esel4Y_vdEBZJEjM7LKjFMEH-bm-kUhvLw/s1600/Capture_04.PNG&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;288&quot; data-original-width=&quot;703&quot; height=&quot;100&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhLoq2Yr7NH_HmombAYEy3LwYI9Av-2cB9aYtFrZJ7lp7x0rmKwYVvAt1fRwK3wKzKqZtBj_iVOChWLlbMxtXBEqyWGBVqdT5u8jaXrRf60_Esel4Y_vdEBZJEjM7LKjFMEH-bm-kUhvLw/s320/Capture_04.PNG&quot; width=&quot;220&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZzREOx9Xgs8J2fszVYE7gerj70UT2ueEadogq4f_uS1u5X1Zpsi8UizO5oe-kIG7Viongm7w1_2oIMuP8EWOgB34-AIFSFlw9yfp3p8O6WpnjlCEqWNrdKZsgNGkj4VPePQ3_BMT-YUo/s1600/Capture02.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 0em; margin-right: 0em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;377&quot; data-original-width=&quot;588&quot; height=&quot;160&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZzREOx9Xgs8J2fszVYE7gerj70UT2ueEadogq4f_uS1u5X1Zpsi8UizO5oe-kIG7Viongm7w1_2oIMuP8EWOgB34-AIFSFlw9yfp3p8O6WpnjlCEqWNrdKZsgNGkj4VPePQ3_BMT-YUo/s200/Capture02.PNG&quot; width=&quot;230&quot; /&gt;&lt;/a&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjIRDxzJoDTlmRW_KTIqqrsO1GIa4YggpzKf6cYChcrbJ8sFGNx2LGXWKr60LaTgLOjMOfPJqq4BSgGDfHyth2wRGKsss0Non-pxuetk0uubgOMum0SPDQ84qrDx4PszBebFHWLVa2lufw/s1600/Arduino+Uno.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 0em; margin-right: 0em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;413&quot; data-original-width=&quot;579&quot; height=&quot;160&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjIRDxzJoDTlmRW_KTIqqrsO1GIa4YggpzKf6cYChcrbJ8sFGNx2LGXWKr60LaTgLOjMOfPJqq4BSgGDfHyth2wRGKsss0Non-pxuetk0uubgOMum0SPDQ84qrDx4PszBebFHWLVa2lufw/s200/Arduino+Uno.PNG&quot; width=&quot;230&quot; /&gt;&lt;/a&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEirR__wMdVT5b2dlA3vt8B07z_H5B6bgO8CPUYcF4CdMzh0iJYC2k4PcR36wBoVGWCOZXVMnZQAKZ4aASLiUkG-ecSF7H2O7wdcRZfDW1I8VnePoRy7qrlqFaIYurJ1yGIoiyF7cJTAhQY/s1600/DHT22.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 0em; margin-right: 0em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;423&quot; data-original-width=&quot;449&quot; height=&quot;160&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEirR__wMdVT5b2dlA3vt8B07z_H5B6bgO8CPUYcF4CdMzh0iJYC2k4PcR36wBoVGWCOZXVMnZQAKZ4aASLiUkG-ecSF7H2O7wdcRZfDW1I8VnePoRy7qrlqFaIYurJ1yGIoiyF7cJTAhQY/s200/DHT22.PNG&quot; width=&quot;170&quot; /&gt;&lt;/a&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;
Some pictures from the surgery.&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8DPNZq2f6KgZ8ITDzFPDwPztGXL4rTHIMtLrJKUPYRFu2YVO6aV8Zys0PQ80HrEp94hD5_iWA_eb2j-_1__oeLwvbUzIEL1aJX9H5Hosw37PMdiYIaA1uDD_FsXBogG2iqUUIOEcW7ao/s1600/IMG070.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 0em; margin-right: 0em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1200&quot; data-original-width=&quot;1600&quot; height=&quot;240&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8DPNZq2f6KgZ8ITDzFPDwPztGXL4rTHIMtLrJKUPYRFu2YVO6aV8Zys0PQ80HrEp94hD5_iWA_eb2j-_1__oeLwvbUzIEL1aJX9H5Hosw37PMdiYIaA1uDD_FsXBogG2iqUUIOEcW7ao/s320/IMG070.JPG&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;

&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgY3q7Ethze9ZdszCE0b6UnrEC5Grrdw1D-v8JmDu3jkomAICzzsChLcgnbLTOTn4z4UgftWIkK8tjrRnYiCryYMqzbaSO6ZhbZSnWcW739dxT7JnpbHZeTq3YzJ1eZ4UgmE3qWfUktenI/s1600/IMG076.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 0em; margin-right: 0em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1200&quot; data-original-width=&quot;1600&quot; height=&quot;240&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgY3q7Ethze9ZdszCE0b6UnrEC5Grrdw1D-v8JmDu3jkomAICzzsChLcgnbLTOTn4z4UgftWIkK8tjrRnYiCryYMqzbaSO6ZhbZSnWcW739dxT7JnpbHZeTq3YzJ1eZ4UgmE3qWfUktenI/s320/IMG076.JPG&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;

&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgRFA4a9zP88NMZ48Z6GQ-uu17og6ccH8MlOpuwmRdRGk1E-J6Y5u8j0XEj9_77cE0o4zVUczNsQiUWeg2-njdf64fdVtjeoR_epUxCv7RqXziT6Ah27upyiEPq46QD5nlK-Hs1d82OIt8/s1600/IMG089.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 0em; margin-right: 0em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1200&quot; data-original-width=&quot;1600&quot; height=&quot;240&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgRFA4a9zP88NMZ48Z6GQ-uu17og6ccH8MlOpuwmRdRGk1E-J6Y5u8j0XEj9_77cE0o4zVUczNsQiUWeg2-njdf64fdVtjeoR_epUxCv7RqXziT6Ah27upyiEPq46QD5nlK-Hs1d82OIt8/s320/IMG089.JPG&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;

&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiihXyrDHGkxwnfucA8D-mZI_o5pCE5mXiTf5qLHAECp36xRetLcvcynf9bXChgPZux99SgXIbv7Cv5NZIvhzC10sBjDxelKTVmkAZij2ZSTM2L5gHpcnuFtp8-Y8jv4dITZQtJ9P5KY20/s1600/IMG093.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 0em; margin-right: 0em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1200&quot; data-original-width=&quot;1600&quot; height=&quot;240&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiihXyrDHGkxwnfucA8D-mZI_o5pCE5mXiTf5qLHAECp36xRetLcvcynf9bXChgPZux99SgXIbv7Cv5NZIvhzC10sBjDxelKTVmkAZij2ZSTM2L5gHpcnuFtp8-Y8jv4dITZQtJ9P5KY20/s320/IMG093.JPG&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
On below video we can see the Arduino UNO board in action.&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;iframe allow=&quot;accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture&quot; allowfullscreen=&quot;&quot; frameborder=&quot;0&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/rgdH5EAy3m8&quot; width=&quot;560&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;br /&gt;
&lt;span style=&quot;color: red;&quot;&gt;Software:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
The program is written in &lt;a href=&quot;https://www.arduino.cc/en/Main/Software&quot;&gt;Arduino IDE software&lt;/a&gt; (version
v1.8.7).&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
Libraries used:&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;a href=&quot;https://www.arduinolibraries.info/libraries/dht-sensor-library&quot;&gt;DHT 22
library&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;a href=&quot;https://www.arduino.cc/en/Reference/LiquidCrystal&quot;&gt;LiquidCrystal
build in library&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
Below is presented the software approach for this project:&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;pre&gt;&lt;span style=&quot;color: #2582e9;&quot;&gt;
/*
&#39;*******************************************************************************
&#39;  Project name: DHT22 &amp;amp; LCD Shield
&#39;  Description:
&#39;   In this experiment i will describe to you, how to develop a home weather 
&#39;   station using the DHT22 temperature/humidity sensor.       
&#39;   Temperature will be displayed in Celsius Degree and the Umidity in percent
&#39;   The delay between two consecutive reads is set to about 2.1 seconds.
&#39;          Ex. of viewing display: 
&#39;               ________________                         
&#39;              |TEMP.: 24.60 C  |     
&#39;              |Humy.: 54.40 %__|
&#39;
&#39;   Hardware configuration is:
&#39;             DHS22 is connected to 1602 LCD Keypad Shield ICSP connector (vdc, d11,gnd).
&#39;             The 1602 LCD Keypad Shield board is inserted into Arduino UNO standard connectors.
&#39;
&#39;  Written by:
&#39;          Aureliu Raducu Macovei, 2018 (www.electronicexperiments.blogspot.com).
&#39;
&#39;  Test configuration:
&#39;    MCU:                        ATmega328P;
&#39;    Test.Board:                 Arduino UNO;
&#39;    SW:                         Arduino IDE software (version v1.8.7);
&#39;                                DHT Library from Arduino official website:
&#39;                                https://playground.arduino.cc/Main/DHTLib
&#39;*******************************************************************************
 */
 
#include LiquidCrystal.h&lt;liquidcrystal .h=&quot;&quot;&gt;&lt;liquidcrystal .h=&quot;&quot;&gt; // includes the LiquidCrystal Library
#include DHT22.h&lt;dht22 .h=&quot;&quot;&gt;         // includes the DHT22 Library
&lt;dht22 .h=&quot;&quot;&gt;
#define DHT22_PIN 11

// Setup a DHT22 instance
DHT22 myDHT22(DHT22_PIN);

// initialize the library by associating any needed LCD interface pin
// with the arduino pin number it is connected to
const int rs = 8, en = 9, d4 = 4, d5 = 5, d6 = 6, d7 = 7;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

void setup() {
  // set up the LCD&#39;s number of columns and rows:
  lcd.begin(16, 2);
  lcd.setCursor(0,0);
  lcd.print(&quot;    -DHT22 &amp;amp;-   &quot;);
  lcd.setCursor(0,1);
  lcd.print(&quot;  --LCD 2x16--  &quot;);
  delay(5000);
  lcd.setCursor(0,0);
  lcd.print(&quot;                &quot;);
  delay(100);
  lcd.setCursor(0,1);
  lcd.print(&quot;                &quot;);
  delay(500);
}

void loop(void)
{ 
  DHT22_ERROR_t errorCode;
  // The sensor can only be read from every 1-2s, and requires a minimum
  // 2s warm-up after power-on.
  delay(2100);

  errorCode = myDHT22.readData();
  switch(errorCode)
  {
    case DHT_ERROR_NONE:
      lcd.setCursor(0,0);     // Set the first row (location at which subsequent text written to the LCD will be displayed)
      lcd.print(&quot;Temp.: &quot;);   // Print &quot;Temp.:&quot; on the LCD
      lcd.print(myDHT22.getTemperatureC());     // Print string temperature
      lcd.print(&quot; C&quot;);                          // Prints &quot;C&quot; on the LCD
      lcd.setCursor(0,1);     // Set the second row (location at which subsequent text written to the LCD will be displayed)
      lcd.print(&quot;Humi.: &quot;);   // Print &quot;Humi.:&quot; on the LCD
      lcd.print(myDHT22.getHumidity());         // Print string humidity
      lcd.print(&quot; %&quot;);        // Prints &quot;%&quot; on the LCD
      break;
    case DHT_ERROR_CHECKSUM:
      lcd.print(&quot;check sum error &quot;);
      lcd.print(myDHT22.getTemperatureC());
      lcd.print(&quot;C &quot;);
      lcd.print(myDHT22.getHumidity());
       lcd.println(&quot;%&quot;);
      break;
    case DHT_BUS_HUNG:
      lcd.println(&quot;BUS Hung &quot;);
      break;
    case DHT_ERROR_NOT_PRESENT:
      lcd.println(&quot;Not Present &quot;);
      break;
    case DHT_ERROR_ACK_TOO_LONG:
      lcd.println(&quot;ACK time out &quot;);
      break;
    case DHT_ERROR_SYNC_TIMEOUT:
      lcd.println(&quot;Sync Timeout &quot;);
      break;
    case DHT_ERROR_DATA_TIMEOUT:
      lcd.println(&quot;Data Timeout &quot;);
      break;
    case DHT_ERROR_TOOQUICK:
      lcd.println(&quot;Polled to quick &quot;);
      break;
  }
}&lt;/dht22&gt;&lt;/dht22&gt;&lt;/liquidcrystal&gt;&lt;/liquidcrystal&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://electronicexperiments.blogspot.com/feeds/6665543784742328941/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://electronicexperiments.blogspot.com/2018/11/dht22-lcd-shield.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4799470828225918099/posts/default/6665543784742328941'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4799470828225918099/posts/default/6665543784742328941'/><link rel='alternate' type='text/html' href='http://electronicexperiments.blogspot.com/2018/11/dht22-lcd-shield.html' title='DHT22 &amp; LCD Shield'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiu4nuY0UHUz3I4iH3wfYMseRZXm21Wd6fsfES546HKJRI7aXPSlKUsAHBHHnIK-F-Bi2bf-2DxrCVb1BkbGrU5FZWV1f0r0Cv-f-dh0i7W1BACMEZFXtOEIXUjAf_AFBgxEXiOe6Z338s/s72-c/Arduino+ALL.PNG" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4799470828225918099.post-2626761829479117603</id><published>2018-11-17T16:53:00.000+02:00</published><updated>2018-11-17T16:53:49.386+02:00</updated><title type='text'>Arduino Uno (Rev.3) Development Board</title><content type='html'>&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjIRDxzJoDTlmRW_KTIqqrsO1GIa4YggpzKf6cYChcrbJ8sFGNx2LGXWKr60LaTgLOjMOfPJqq4BSgGDfHyth2wRGKsss0Non-pxuetk0uubgOMum0SPDQ84qrDx4PszBebFHWLVa2lufw/s1600/Arduino+Uno.PNG&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;413&quot; data-original-width=&quot;579&quot; height=&quot;142&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjIRDxzJoDTlmRW_KTIqqrsO1GIa4YggpzKf6cYChcrbJ8sFGNx2LGXWKr60LaTgLOjMOfPJqq4BSgGDfHyth2wRGKsss0Non-pxuetk0uubgOMum0SPDQ84qrDx4PszBebFHWLVa2lufw/s200/Arduino+Uno.PNG&quot; width=&quot;200&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;https://store.arduino.cc/arduino-uno-rev3&quot;&gt;&lt;b&gt;Arduino Uno&lt;/b&gt;&lt;/a&gt;&amp;nbsp;is a development board based on the&amp;nbsp;&lt;a href=&quot;http://www.atmel.com/Images/doc8161.pdf&quot;&gt;ATmega328P&lt;/a&gt;&amp;nbsp;microcontroller. It has 14 digital input/output pins (of which 6 can be used as PWM outputs), 6 analog inputs, a 16 MHz quartz crystal, a USB connection, a power jack, an ICSP header and a reset button. It contains everything needed to support the microcontroller; simply connect it to a computer with a USB cable or power it with a AC-to-DC adapter or battery to get started.&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEizt8LDZV7I2F8hlESRU3xuyb1950NE33am8TLP4oEl6_5VkSeDX9yZPyX9sRx07F66evUbX5o0eMXP9Z2YJAGPbLgzM3hT8VeKx98bBNmXdf3LytWvjqDSRmFwn8KRvUFB5NPRTAwq4JI/s1600/Arduino_04.PNG&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; display: inline; float: right; margin-bottom: 1em; margin-left: 1em; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;420&quot; data-original-width=&quot;586&quot; height=&quot;143&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEizt8LDZV7I2F8hlESRU3xuyb1950NE33am8TLP4oEl6_5VkSeDX9yZPyX9sRx07F66evUbX5o0eMXP9Z2YJAGPbLgzM3hT8VeKx98bBNmXdf3LytWvjqDSRmFwn8KRvUFB5NPRTAwq4JI/s200/Arduino_04.PNG&quot; width=&quot;200&quot; /&gt;&lt;/a&gt;You can tinker with your UNO without worrying too much about doing something wrong, in worst case scenario you can replace the chip for a few dollars and start over again.&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&quot;Uno&quot; means one in Italian and was chosen to mark the release of Arduino Software (IDE) 1.0. The&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
Uno board and version 1.0 of Arduino Software (IDE) were the reference versions of Arduino, now evolved to newer releases. The Uno board is the first in a series of USB Arduino boards, and the reference model for the Arduino platform; for an extensive list of current, past or outdated boards see the&amp;nbsp;&lt;a href=&quot;https://www.arduino.cc/en/Main/Products&quot;&gt;Arduino index of boards&lt;/a&gt;.&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;&lt;u&gt;Tech Specs:&lt;/u&gt;&lt;/b&gt;&lt;u&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/u&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;table border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;MsoNormalTable&quot; style=&quot;border-collapse: collapse; mso-yfti-tbllook: 1184; width: 547px;&quot;&gt;&lt;tbody&gt;
&lt;tr style=&quot;mso-yfti-firstrow: yes; mso-yfti-irow: 0;&quot;&gt;&lt;td style=&quot;padding: 0.75pt; width: 140.25pt;&quot; width=&quot;187&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
Microcontroller&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;padding: 0.75pt; width: 3.75in;&quot; width=&quot;360&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;a href=&quot;http://www.atmel.com/Images/Atmel-42735-8-bit-AVR-Microcontroller-ATmega328-328P_Datasheet.pdf&quot; target=&quot;_blank&quot;&gt;ATmega328P&lt;/a&gt;&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;mso-yfti-irow: 1;&quot;&gt;&lt;td style=&quot;padding: 0.75pt; width: 140.25pt;&quot; width=&quot;187&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
Operating Voltage&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;padding: 0.75pt; width: 3.75in;&quot; width=&quot;360&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
5V&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;mso-yfti-irow: 2;&quot;&gt;&lt;td style=&quot;padding: 0.75pt; width: 140.25pt;&quot; width=&quot;187&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
Input Voltage (recommended)&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;padding: 0.75pt; width: 3.75in;&quot; width=&quot;360&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
7-12V&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;mso-yfti-irow: 3;&quot;&gt;&lt;td style=&quot;padding: 0.75pt; width: 140.25pt;&quot; width=&quot;187&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
Input Voltage (limit)&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;padding: 0.75pt; width: 3.75in;&quot; width=&quot;360&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
6-20V&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;mso-yfti-irow: 4;&quot;&gt;&lt;td style=&quot;padding: 0.75pt; width: 140.25pt;&quot; width=&quot;187&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
Digital I/O Pins&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;padding: 0.75pt; width: 3.75in;&quot; width=&quot;360&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
14 (of which 6 provide PWM output)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;mso-yfti-irow: 5;&quot;&gt;&lt;td style=&quot;padding: 0.75pt; width: 140.25pt;&quot; width=&quot;187&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span lang=&quot;IT&quot; style=&quot;mso-ansi-language: IT;&quot;&gt;PWM Digital I/O Pins&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;padding: 0.75pt; width: 3.75in;&quot; width=&quot;360&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
6&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;mso-yfti-irow: 6;&quot;&gt;&lt;td style=&quot;padding: 0.75pt; width: 140.25pt;&quot; width=&quot;187&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
Analog Input Pins&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;padding: 0.75pt; width: 3.75in;&quot; width=&quot;360&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
6&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;mso-yfti-irow: 7;&quot;&gt;&lt;td style=&quot;padding: 0.75pt; width: 140.25pt;&quot; width=&quot;187&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span lang=&quot;IT&quot; style=&quot;mso-ansi-language: IT;&quot;&gt;DC Current per I/O Pin&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;padding: 0.75pt; width: 3.75in;&quot; width=&quot;360&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
20 mA&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;mso-yfti-irow: 8;&quot;&gt;&lt;td style=&quot;padding: 0.75pt; width: 140.25pt;&quot; width=&quot;187&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
DC Current for 3.3V Pin&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;padding: 0.75pt; width: 3.75in;&quot; width=&quot;360&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
50 mA&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;mso-yfti-irow: 9;&quot;&gt;&lt;td style=&quot;padding: 0.75pt; width: 140.25pt;&quot; width=&quot;187&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
Flash Memory&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;padding: 0.75pt; width: 3.75in;&quot; width=&quot;360&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
32 KB (ATmega328P) of which 0.5 KB used by bootloader&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;mso-yfti-irow: 10;&quot;&gt;&lt;td style=&quot;padding: 0.75pt; width: 140.25pt;&quot; width=&quot;187&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
SRAM&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;padding: 0.75pt; width: 3.75in;&quot; width=&quot;360&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
2 KB (ATmega328P)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;mso-yfti-irow: 11;&quot;&gt;&lt;td style=&quot;padding: 0.75pt; width: 140.25pt;&quot; width=&quot;187&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
EEPROM&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;padding: 0.75pt; width: 3.75in;&quot; width=&quot;360&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
1 KB (ATmega328P)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;mso-yfti-irow: 12;&quot;&gt;&lt;td style=&quot;padding: 0.75pt; width: 140.25pt;&quot; width=&quot;187&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
Clock Speed&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;padding: 0.75pt; width: 3.75in;&quot; width=&quot;360&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
16 MHz&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;mso-yfti-irow: 13;&quot;&gt;&lt;td style=&quot;padding: 0.75pt; width: 140.25pt;&quot; width=&quot;187&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
LED_BUILTIN&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;padding: 0.75pt; width: 3.75in;&quot; width=&quot;360&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
13&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;mso-yfti-irow: 14;&quot;&gt;&lt;td style=&quot;padding: 0.75pt; width: 140.25pt;&quot; width=&quot;187&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
Length&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;padding: 0.75pt; width: 3.75in;&quot; width=&quot;360&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
68.6 mm&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;mso-yfti-irow: 15;&quot;&gt;&lt;td style=&quot;padding: 0.75pt; width: 140.25pt;&quot; width=&quot;187&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
Width&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;padding: 0.75pt; width: 3.75in;&quot; width=&quot;360&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
53.4 mm&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;mso-yfti-irow: 16; mso-yfti-lastrow: yes;&quot;&gt;&lt;td style=&quot;padding: 0.75pt; width: 140.25pt;&quot; width=&quot;187&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
Weight&lt;/div&gt;
&lt;/td&gt;&lt;td style=&quot;padding: 0.75pt; width: 3.75in;&quot; width=&quot;360&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
25 g&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;&lt;u&gt;Schematics:&lt;/u&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;a href=&quot;https://content.arduino.cc/assets/UNO-TH_Rev3e.zip&quot;&gt;Eagle Files.zip&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;tab-stops: 96.7pt;&quot;&gt;
&lt;a href=&quot;https://content.arduino.cc/assets/UNO-TH_Rev3e_sch.pdf&quot;&gt;Schematics.pdf&lt;/a&gt;&lt;span style=&quot;mso-tab-count: 1;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;tab-stops: 96.7pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;tab-stops: 96.7pt;&quot;&gt;
For more details please visit the&amp;nbsp;&lt;a href=&quot;http://www.arduino.cc/&quot; target=&quot;_blank&quot;&gt;Arduino website&lt;/a&gt;.&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://electronicexperiments.blogspot.com/feeds/2626761829479117603/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://electronicexperiments.blogspot.com/2018/11/arduino-uno-rev3-development-board.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4799470828225918099/posts/default/2626761829479117603'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4799470828225918099/posts/default/2626761829479117603'/><link rel='alternate' type='text/html' href='http://electronicexperiments.blogspot.com/2018/11/arduino-uno-rev3-development-board.html' title='Arduino Uno (Rev.3) Development Board'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjIRDxzJoDTlmRW_KTIqqrsO1GIa4YggpzKf6cYChcrbJ8sFGNx2LGXWKr60LaTgLOjMOfPJqq4BSgGDfHyth2wRGKsss0Non-pxuetk0uubgOMum0SPDQ84qrDx4PszBebFHWLVa2lufw/s72-c/Arduino+Uno.PNG" height="72" width="72"/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4799470828225918099.post-8555722967099416835</id><published>2018-11-14T23:09:00.002+02:00</published><updated>2018-11-17T20:42:08.785+02:00</updated><title type='text'>Arduino</title><content type='html'>&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgJe_-an1jdpbXKu1DnP5P5-LeLgdepvaIC5koeLIB4vk95xLjtVpEcAV2DOL4Msf294qY9gLf55tvRCceEyoCZ5avSmCer-Ip0R3pPCY8vcKsUAdibkoU9GpLaC2KAHMgP2CMZIYVMKZs/s1600/Arduino+Logo.PNG&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;87&quot; data-original-width=&quot;123&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgJe_-an1jdpbXKu1DnP5P5-LeLgdepvaIC5koeLIB4vk95xLjtVpEcAV2DOL4Msf294qY9gLf55tvRCceEyoCZ5avSmCer-Ip0R3pPCY8vcKsUAdibkoU9GpLaC2KAHMgP2CMZIYVMKZs/s1600/Arduino+Logo.PNG&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://www.arduino.cc/&quot; target=&quot;_blank&quot;&gt;Arduino&lt;/a&gt; is an Italian
open source electronic platform. The keystone of this amazing platform is the easiest
way of using the hardware and the software tools (libraries, etc.).&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
Basically you
can create everything you purpose, by sending a set of instructions to the microcontroller on the
board. To be able to achieve
that, you must use &lt;a href=&quot;http://www.arduino.cc/en/Reference/HomePage&quot; target=&quot;_blank&quot;&gt;Arduino programming language&lt;/a&gt;&amp;nbsp;(based
on &lt;a href=&quot;http://wiring.org.co/&quot; target=&quot;_blank&quot;&gt;Wiring&lt;/a&gt;),
and the&amp;nbsp;&lt;a href=&quot;https://www.arduino.cc/en/Main/Software&quot; target=&quot;_blank&quot;&gt;Arduino Software (IDE)&lt;/a&gt;, based on&amp;nbsp;&lt;a href=&quot;https://processing.org/&quot; target=&quot;_blank&quot;&gt;Processing&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Over the years Arduino
has proved to be an excellent core for thousands of projects, from everyday
objects to complex scientific instruments.&lt;br /&gt;
&lt;br /&gt;
A worldwide community of enthusiasts - students, hobbyists,
artists, programmers, and professionals has gathered around this open-source
platform, their contributions have added&lt;span style=&quot;mso-bidi-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;of&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;http://forum.arduino.cc/&quot; target=&quot;_blank&quot;&gt;accessible knowledge&lt;/a&gt;&amp;nbsp;that can be of great
help to novices up to an incredible amount and experts alike.&lt;/div&gt;
&lt;div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;
Arduino
was born at the Ivrea Interaction Design Institute as an easy tool for fast
prototyping, aimed at students without a background in electronics and
programming. As soon as it reached a wider community, the Arduino board started
changing to adapt to new needs and challenges, differentiating its offer from
simple 8-bit boards to products for&amp;nbsp;&lt;span class=&quot;wikiword&quot;&gt;&lt;span style=&quot;box-sizing: border-box;&quot;&gt;IoT&lt;/span&gt;&lt;/span&gt;&amp;nbsp;applications, wearable,
3D printing, and embedded environments.&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;mso-bidi-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;mso-bidi-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;All
Arduino boards are completely open-source, empowering users to build them
independently and eventually adapt them to their particular needs. The&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;https://www.arduino.cc/en/Main/Software&quot; target=&quot;_blank&quot;&gt;software&lt;/a&gt;, too, is
open-source, and it is growing through the contributions of users worldwide.&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;mso-bidi-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
Arduino also simplifies the process of working with
microcontrollers by offering some advantage for teachers, students, and
interested amateurs over other systems:&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b style=&quot;text-indent: -0.25in;&quot;&gt;Inexpensive
&lt;/b&gt;&lt;span style=&quot;text-indent: -0.25in;&quot;&gt;Arduino boards are relatively inexpensive compared to other microcontroller
platforms. The least expensive version of the Arduino module can be assembled
by hand, and even the pre-assembled Arduino modules cost less than &lt;b&gt;40€&lt;/b&gt;.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;b style=&quot;text-indent: -0.25in;&quot;&gt;Cross-platform&lt;/b&gt;&lt;span style=&quot;color: #4f4e4e; font-family: &amp;quot;typoninesans text 16&amp;quot; , serif; font-size: 9.5pt; text-indent: -0.25in;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;text-indent: -0.25in;&quot;&gt; The
Arduino Software (IDE) runs on Windows, Macintosh OSX, and Linux operating
systems. Most microcontroller systems are limited to Windows.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;b style=&quot;text-indent: -0.25in;&quot;&gt;Simple,
clear programming environment&lt;/b&gt;&lt;span style=&quot;color: #4f4e4e; font-family: &amp;quot;verdana&amp;quot; , sans-serif; font-size: 9.5pt; text-indent: -0.25in;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;text-indent: -0.25in;&quot;&gt;- The
Arduino Software (IDE) is easy-to-use for beginners, yet flexible enough for
advanced users to take advantage of as well. For teachers, it&#39;s conveniently
based on the Processing programming environment, so students learning to
program in that environment will be familiar with how the Arduino IDE works.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;b style=&quot;text-indent: -0.25in;&quot;&gt;Open
source and extensible software&lt;/b&gt;&lt;b style=&quot;text-indent: -0.25in;&quot;&gt;&lt;span style=&quot;color: #4f4e4e; font-family: &amp;quot;verdana&amp;quot; , &amp;quot;sans-serif&amp;quot;; font-size: 9.5pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;text-indent: -0.25in;&quot;&gt; The Arduino software is
published as open source tools, available for extension by experienced
programmers. The language can be expanded through C++ libraries, and people
wanting to understand the technical details can make the leap from Arduino to
the AVR C programming language on which it&#39;s based. Similarly, you can add
AVR-C code directly into your Arduino programs if you want to.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;b style=&quot;text-indent: -0.25in;&quot;&gt;Open
source and extensible hardware&amp;nbsp;&lt;/b&gt;&lt;span style=&quot;text-indent: -0.25in;&quot;&gt;- The plans of the Arduino boards are
published under a Creative Commons license, so experienced circuit designers
can make their own version of the module, extending it and improving it. Even
relatively inexperienced users can build the &lt;a href=&quot;https://www.arduino.cc/en/Main/Standalone&quot; target=&quot;_blank&quot;&gt;breadboard version of the module&lt;/a&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;text-indent: -0.25in;&quot;&gt;in
order to understand how it works and save money.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;b&gt;&lt;/b&gt;&lt;br /&gt;
&lt;div style=&quot;font-style: italic;&quot;&gt;
&lt;b&gt;&lt;b&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/b&gt;&lt;/b&gt;&lt;/div&gt;
&lt;b&gt;
&lt;u&gt;&lt;i&gt;How to start with Arduino ?!&lt;/i&gt;&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;
&lt;ul&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
See the&amp;nbsp;&lt;a href=&quot;https://www.arduino.cc/en/Guide/HomePage&quot;&gt;getting started guide&lt;/a&gt;.&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
If
you are looking for inspiration you can find a great variety of Tutorials
on&amp;nbsp;&lt;a href=&quot;https://create.arduino.cc/projecthub&quot;&gt;Arduino Project Hub&lt;/a&gt;.&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
Enjoy !!!&lt;/div&gt;
&lt;/div&gt;
</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4799470828225918099/posts/default/8555722967099416835'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4799470828225918099/posts/default/8555722967099416835'/><link rel='alternate' type='text/html' href='http://electronicexperiments.blogspot.com/2018/11/arduino.html' title='Arduino'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgJe_-an1jdpbXKu1DnP5P5-LeLgdepvaIC5koeLIB4vk95xLjtVpEcAV2DOL4Msf294qY9gLf55tvRCceEyoCZ5avSmCer-Ip0R3pPCY8vcKsUAdibkoU9GpLaC2KAHMgP2CMZIYVMKZs/s72-c/Arduino+Logo.PNG" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-4799470828225918099.post-4681308385387418479</id><published>2018-11-07T01:15:00.001+02:00</published><updated>2018-11-07T01:15:35.272+02:00</updated><title type='text'>Ohm&#39;s Law</title><content type='html'>&lt;h3 class=&quot;r&quot; style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: medium; font-weight: normal; margin: 0px; overflow: hidden; padding: 0px; text-overflow: ellipsis; white-space: nowrap;&quot;&gt;
&lt;a href=&quot;http://en.wikipedia.org/wiki/Ohm&#39;s_law&quot; style=&quot;color: #660099; cursor: pointer;&quot;&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Ohm&#39;s law&lt;/span&gt;&lt;/a&gt;&lt;/h3&gt;
</content><link rel='replies' type='application/atom+xml' href='http://electronicexperiments.blogspot.com/feeds/4681308385387418479/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://electronicexperiments.blogspot.com/2018/11/ohms-law.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4799470828225918099/posts/default/4681308385387418479'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4799470828225918099/posts/default/4681308385387418479'/><link rel='alternate' type='text/html' href='http://electronicexperiments.blogspot.com/2018/11/ohms-law.html' title='Ohm&#39;s Law'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4799470828225918099.post-7294957841109184548</id><published>2017-12-31T12:21:00.004+02:00</published><updated>2018-11-07T01:48:00.815+02:00</updated><title type='text'>ICL7107</title><content type='html'>&lt;a href=&quot;http://www.google.ro/&quot;&gt;test&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://www.mikroe.com/&quot; target=&quot;_blank&quot;&gt;TEST 2&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://electronicexperiments.blogspot.com/feeds/7294957841109184548/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://electronicexperiments.blogspot.com/2017/12/icl7107.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4799470828225918099/posts/default/7294957841109184548'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4799470828225918099/posts/default/7294957841109184548'/><link rel='alternate' type='text/html' href='http://electronicexperiments.blogspot.com/2017/12/icl7107.html' title='ICL7107'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4799470828225918099.post-2966244595474921150</id><published>2017-12-31T12:21:00.002+02:00</published><updated>2017-12-31T12:21:45.164+02:00</updated><title type='text'>ICL7106</title><content type='html'></content><link rel='replies' type='application/atom+xml' href='http://electronicexperiments.blogspot.com/feeds/2966244595474921150/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://electronicexperiments.blogspot.com/2017/12/icl7106.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4799470828225918099/posts/default/2966244595474921150'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4799470828225918099/posts/default/2966244595474921150'/><link rel='alternate' type='text/html' href='http://electronicexperiments.blogspot.com/2017/12/icl7106.html' title='ICL7106'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4799470828225918099.post-5557344796073828140</id><published>2017-12-31T12:04:00.000+02:00</published><updated>2017-12-31T12:04:16.218+02:00</updated><title type='text'>Adjustable Linear DC Bench Power Supply 0-40V/0-5A</title><content type='html'></content><link rel='replies' type='application/atom+xml' href='http://electronicexperiments.blogspot.com/feeds/5557344796073828140/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://electronicexperiments.blogspot.com/2017/12/adjustable-linear-dc-bench-power-supply.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4799470828225918099/posts/default/5557344796073828140'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4799470828225918099/posts/default/5557344796073828140'/><link rel='alternate' type='text/html' href='http://electronicexperiments.blogspot.com/2017/12/adjustable-linear-dc-bench-power-supply.html' title='Adjustable Linear DC Bench Power Supply 0-40V/0-5A'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4799470828225918099.post-5158559108232689099</id><published>2016-12-30T17:31:00.003+02:00</published><updated>2016-12-30T17:31:41.754+02:00</updated><title type='text'>Measuring the DC current with a Microcontroller</title><content type='html'>&lt;div class=&quot;MsoNormal&quot;&gt;
Basically the microcontrollers doesn’t have specific ports
for measuring “dc” current or “ac”&amp;nbsp;
current, but they do have ADC (Analog to Digital Converter) and we can
take advantage from this point of view so we can measure analog voltages of a
certain range (usually 0-5vcc). The way of doing this is to place a resistance
in series with the current path and measure the voltage drop across it. For
this trick we need to use a resistor with a very low value just to not affect
the original current of the load.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
Resistors with a value less than 1 ohm are necessary and can
be found in electronic stores. For a proper resistor placed into the circuit we
have to pay attention for maximum current used. So, let’s say that you pick
0,47Ohm and the maximum current in the circuit is about 5 A, then the resistor
should have the capacity of dissipation equal with: I&lt;span style=&quot;font-family: &amp;quot;Arial&amp;quot;,sans-serif;&quot;&gt;²&lt;/span&gt;xR =&amp;gt;
25 x 0,47 = 12 Watts of heat.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
The appropriate design for the resistor is to create by
yourself a coil from an Cu wire. For&amp;nbsp;
this test I have create one from 1,5 meter Ø 1,3 mm with enameled insulation on outer side, as
shown below.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div align=&quot;center&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: center;&quot;&gt;
&lt;v:shapetype coordsize=&quot;21600,21600&quot; filled=&quot;f&quot; id=&quot;_x0000_t75&quot; o:preferrelative=&quot;t&quot; o:spt=&quot;75&quot; path=&quot;m@4@5l@4@11@9@11@9@5xe&quot; stroked=&quot;f&quot;&gt;
 &lt;v:stroke joinstyle=&quot;miter&quot;&gt;
 &lt;v:formulas&gt;
  &lt;v:f eqn=&quot;if lineDrawn pixelLineWidth 0&quot;&gt;
  &lt;v:f eqn=&quot;sum @0 1 0&quot;&gt;
  &lt;v:f eqn=&quot;sum 0 0 @1&quot;&gt;
  &lt;v:f eqn=&quot;prod @2 1 2&quot;&gt;
  &lt;v:f eqn=&quot;prod @3 21600 pixelWidth&quot;&gt;
  &lt;v:f eqn=&quot;prod @3 21600 pixelHeight&quot;&gt;
  &lt;v:f eqn=&quot;sum @0 0 1&quot;&gt;
  &lt;v:f eqn=&quot;prod @6 1 2&quot;&gt;
  &lt;v:f eqn=&quot;prod @7 21600 pixelWidth&quot;&gt;
  &lt;v:f eqn=&quot;sum @8 21600 0&quot;&gt;
  &lt;v:f eqn=&quot;prod @7 21600 pixelHeight&quot;&gt;
  &lt;v:f eqn=&quot;sum @10 21600 0&quot;&gt;
 &lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:formulas&gt;
 &lt;v:path gradientshapeok=&quot;t&quot; o:connecttype=&quot;rect&quot; o:extrusionok=&quot;f&quot;&gt;
 &lt;o:lock aspectratio=&quot;t&quot; v:ext=&quot;edit&quot;&gt;
&lt;/o:lock&gt;&lt;/v:path&gt;&lt;/v:stroke&gt;&lt;/v:shapetype&gt;&lt;v:shape alt=&quot;http://ecx.images-amazon.com/images/I/31vTNF3hU1L._SX342_.jpg&quot; id=&quot;Picture_x0020_1&quot; o:spid=&quot;_x0000_i1028&quot; style=&quot;height: 114.75pt; mso-wrap-style: square; visibility: visible; width: 171.75pt;&quot; type=&quot;#_x0000_t75&quot;&gt;
 &lt;v:imagedata o:title=&quot;31vTNF3hU1L._SX342_&quot; src=&quot;file:///C:/Users/Marcel/AppData/Local/Temp/msohtmlclip1/01/clip_image001.jpg&quot;&gt;
&lt;/v:imagedata&gt;&lt;/v:shape&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div align=&quot;center&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: center;&quot;&gt;
Coil&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
Now let’s measure its resistance, for example directly with
an multimeter. My digital multimeter shows a value equal with 0,4 Ohm. Of
course this measurement can have uncertainty, because of very small value which
we measure and we don’t had to forget the fact that usually the digital
multimeters does not show values beyond 1 decimal digit. Our resistance can be
measured respecting the ohm’s law. We can connect in series with the coil
resistance (Rs), a known resistor for example 47 ohm and supply a 5vcc as shown
below. Next, measure the voltage across Rs and current through it separately
using the multimeter. In the current case, I foud the measured voltage and
current values to be 25.6mV and 88.6mA. This gives the resistance of the coil
equal with 0.289 Ohm. (Rs = V/I).&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div align=&quot;center&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: center;&quot;&gt;
&lt;v:shape id=&quot;Picture_x0020_8&quot; o:spid=&quot;_x0000_i1027&quot; style=&quot;height: 141pt; mso-wrap-style: square; visibility: visible; width: 141.75pt;&quot; type=&quot;#_x0000_t75&quot;&gt;
 &lt;v:imagedata o:title=&quot;Untitled&quot; src=&quot;file:///C:/Users/Marcel/AppData/Local/Temp/msohtmlclip1/01/clip_image002.png&quot;&gt;
&lt;/v:imagedata&gt;&lt;/v:shape&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
Now, suppose that the range of current to be measured using
this coil resistance is from 0-5A. Then the voltage drop across the coil
resistance will be somewhere from 0 – 1.44 V. Because of its low range, this
voltage signal may not be accurately measured with a microcontroller’s ADC
module. In this case we will use an operational amplifier circuit for a voltage
scaling mode. The entire schematic for this design is shown below.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div align=&quot;center&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: center;&quot;&gt;
&lt;v:shape id=&quot;Picture_x0020_10&quot; o:spid=&quot;_x0000_i1026&quot; style=&quot;height: 172.5pt; mso-wrap-style: square; visibility: visible; width: 298.5pt;&quot; type=&quot;#_x0000_t75&quot;&gt;
 &lt;v:imagedata o:title=&quot;Untitled1&quot; src=&quot;file:///C:/Users/Marcel/AppData/Local/Temp/msohtmlclip1/01/clip_image003.png&quot;&gt;
&lt;/v:imagedata&gt;&lt;/v:shape&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
As a description: in the above circuit Rs represent the low
value current sensing resistor (our coil resistor) which is connected in series
with the consumer (load resistor). Our purpose is to derive the load current
(I). The low voltage drop across Rs is amplified by the non-inverting amplifier
with &lt;b&gt;3.5&lt;/b&gt;. This is enough to linearly
scale &lt;b&gt;Vs (0 – 1.44 V)&lt;/b&gt; to &lt;b&gt;Vo (0-5vcc)&lt;/b&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
At this point we have 0-5vcc signal that corresponds to 0-5A
current through Rs. This voltage signal is now more appropriate for ADC
conversion with &lt;b&gt;Vref = 5vcc&lt;/b&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;&lt;span lang=&quot;IT&quot;&gt;Vo= 3.5 x I x RS = 1I (Rs=0,289) &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span lang=&quot;IT&quot;&gt;=&amp;gt; I = Vo/1.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
For
10-bit ADC with Vref = 5vcc:&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoListParagraphCxSpFirst&quot; style=&quot;mso-list: l0 level1 lfo1; text-indent: -.25in;&quot;&gt;
&lt;!--[if !supportLists]--&gt;&lt;span style=&quot;font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;&quot;&gt;·&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;; font-size: 7pt; font-stretch: normal; font-variant-numeric: normal; line-height: normal;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;Our
resolution will be equal with: &lt;b&gt;resolution
= 5/1024 = 0.0049 (5mA)&lt;/b&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoListParagraphCxSpMiddle&quot; style=&quot;mso-list: l0 level1 lfo1; text-indent: -.25in;&quot;&gt;
&lt;!--[if !supportLists]--&gt;&lt;span style=&quot;font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;&quot;&gt;·&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;; font-size: 7pt; font-stretch: normal; font-variant-numeric: normal; line-height: normal;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;For
input signal Vo, the ADC O/P will be &lt;b&gt;Vo
x 0,0049&lt;/b&gt;,&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoListParagraphCxSpLast&quot; style=&quot;mso-list: l0 level1 lfo1; text-indent: -.25in;&quot;&gt;
&lt;!--[if !supportLists]--&gt;&lt;span lang=&quot;IT&quot; style=&quot;font-family: Symbol; mso-ansi-language: IT; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;&quot;&gt;·&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;; font-size: 7pt; font-stretch: normal; font-variant-numeric: normal; line-height: normal;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span lang=&quot;IT&quot;&gt;Then &lt;b&gt;I = ADC O/P x
0,0049/1 = ADC O/P x 0.0049&lt;/b&gt;.&lt;/span&gt;&lt;span lang=&quot;IT&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div align=&quot;center&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: center;&quot;&gt;
&lt;v:shape alt=&quot;http://stylecab.com/wp-content/uploads/2014/09/stayTuned-1.jpg&quot; id=&quot;Picture_x0020_4&quot; o:spid=&quot;_x0000_i1025&quot; style=&quot;height: 59.25pt; mso-wrap-style: square; visibility: visible; width: 77.25pt;&quot; type=&quot;#_x0000_t75&quot;&gt;
 &lt;v:imagedata o:title=&quot;stayTuned-1&quot; src=&quot;file:///C:/Users/Marcel/AppData/Local/Temp/msohtmlclip1/01/clip_image004.jpg&quot;&gt;
&lt;/v:imagedata&gt;&lt;/v:shape&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
Practical pictures with the experiments.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://electronicexperiments.blogspot.com/feeds/5158559108232689099/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://electronicexperiments.blogspot.com/2016/12/measuring-dc-current-with.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4799470828225918099/posts/default/5158559108232689099'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4799470828225918099/posts/default/5158559108232689099'/><link rel='alternate' type='text/html' href='http://electronicexperiments.blogspot.com/2016/12/measuring-dc-current-with.html' title='Measuring the DC current with a Microcontroller'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4799470828225918099.post-8487609948021694417</id><published>2016-12-30T17:30:00.001+02:00</published><updated>2016-12-30T17:30:06.621+02:00</updated><title type='text'>Logic Gates</title><content type='html'>&lt;div class=&quot;MsoNormal&quot;&gt;
In this article I will put on the paper some theoretical
knowledge about the Logic Gates.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
I will discuss about:&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoListParagraphCxSpFirst&quot; style=&quot;mso-list: l1 level1 lfo1; text-indent: -.25in;&quot;&gt;
&lt;!--[if !supportLists]--&gt;&lt;span style=&quot;font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;&quot;&gt;·&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;; font-size: 7pt; font-stretch: normal; font-variant-numeric: normal; line-height: normal;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;Logic Gates&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoListParagraphCxSpMiddle&quot; style=&quot;mso-list: l1 level1 lfo1; text-indent: -.25in;&quot;&gt;
&lt;!--[if !supportLists]--&gt;&lt;span style=&quot;font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;&quot;&gt;·&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;; font-size: 7pt; font-stretch: normal; font-variant-numeric: normal; line-height: normal;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;Truth Table&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoListParagraphCxSpLast&quot; style=&quot;mso-list: l1 level1 lfo1; text-indent: -.25in;&quot;&gt;
&lt;!--[if !supportLists]--&gt;&lt;span style=&quot;font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;&quot;&gt;·&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;; font-size: 7pt; font-stretch: normal; font-variant-numeric: normal; line-height: normal;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;Logic circuits/network&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-top: 5.0pt;&quot;&gt;
I will explain how logic gates are
used and how truth tables are used to check if combinations of logic gates
carry out the required functions.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-top: 5.0pt;&quot;&gt;
&lt;b&gt;&lt;u&gt;Logic Gates&lt;o:p&gt;&lt;/o:p&gt;&lt;/u&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
A large number of electronic circuits (in computers, control
units, embedded systems etc.) are made up of logic gates. These process signals
are represented by true or false flag. Signals can be represented as ON or OFF,
1 or 0 as well.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-top: 5.0pt;&quot;&gt;
The most common symbols used to
represent logic gates are shown below. For sure there are many different logic
gates but we will concentrate on these.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div align=&quot;center&quot; class=&quot;MsoNormal&quot; style=&quot;margin-top: 5.0pt; text-align: center;&quot;&gt;
&lt;v:shapetype coordsize=&quot;21600,21600&quot; filled=&quot;f&quot; id=&quot;_x0000_t75&quot; o:preferrelative=&quot;t&quot; o:spt=&quot;75&quot; path=&quot;m@4@5l@4@11@9@11@9@5xe&quot; stroked=&quot;f&quot;&gt;
 &lt;v:stroke joinstyle=&quot;miter&quot;&gt;
 &lt;v:formulas&gt;
  &lt;v:f eqn=&quot;if lineDrawn pixelLineWidth 0&quot;&gt;
  &lt;v:f eqn=&quot;sum @0 1 0&quot;&gt;
  &lt;v:f eqn=&quot;sum 0 0 @1&quot;&gt;
  &lt;v:f eqn=&quot;prod @2 1 2&quot;&gt;
  &lt;v:f eqn=&quot;prod @3 21600 pixelWidth&quot;&gt;
  &lt;v:f eqn=&quot;prod @3 21600 pixelHeight&quot;&gt;
  &lt;v:f eqn=&quot;sum @0 0 1&quot;&gt;
  &lt;v:f eqn=&quot;prod @6 1 2&quot;&gt;
  &lt;v:f eqn=&quot;prod @7 21600 pixelWidth&quot;&gt;
  &lt;v:f eqn=&quot;sum @8 21600 0&quot;&gt;
  &lt;v:f eqn=&quot;prod @7 21600 pixelHeight&quot;&gt;
  &lt;v:f eqn=&quot;sum @10 21600 0&quot;&gt;
 &lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:formulas&gt;
 &lt;v:path gradientshapeok=&quot;t&quot; o:connecttype=&quot;rect&quot; o:extrusionok=&quot;f&quot;&gt;
 &lt;o:lock aspectratio=&quot;t&quot; v:ext=&quot;edit&quot;&gt;
&lt;/o:lock&gt;&lt;/v:path&gt;&lt;/v:stroke&gt;&lt;/v:shapetype&gt;&lt;v:shape id=&quot;Picture_x0020_1&quot; o:spid=&quot;_x0000_i1029&quot; style=&quot;height: 145.5pt; mso-wrap-style: square; visibility: visible; width: 357.75pt;&quot; type=&quot;#_x0000_t75&quot;&gt;
 &lt;v:imagedata o:title=&quot;&quot; src=&quot;file:///C:/Users/Marcel/AppData/Local/Temp/msohtmlclip1/01/clip_image001.png&quot;&gt;
&lt;/v:imagedata&gt;&lt;/v:shape&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div align=&quot;center&quot; class=&quot;MsoNormal&quot; style=&quot;margin-top: 20.0pt; text-align: center;&quot;&gt;
&lt;v:shape id=&quot;Picture_x0020_5&quot; o:spid=&quot;_x0000_i1028&quot; style=&quot;height: 66pt; mso-wrap-style: square; visibility: visible; width: 359.25pt;&quot; type=&quot;#_x0000_t75&quot;&gt;
 &lt;v:imagedata o:title=&quot;&quot; src=&quot;file:///C:/Users/Marcel/AppData/Local/Temp/msohtmlclip1/01/clip_image002.png&quot;&gt;
&lt;/v:imagedata&gt;&lt;/v:shape&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-top: 20.0pt;&quot;&gt;
&lt;b&gt;&lt;u&gt;Truth Table&lt;o:p&gt;&lt;/o:p&gt;&lt;/u&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
Truth tables are used to show logic gate functions. The NOT
gate has only one input, but all the others have two inputs.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
When constructing a truth table, the binary values 1 and 0
are used. Every possible combination, depending on number of inputs, is
produced. Basically, the number of possible combinations of 1s and 0s is 2n
where n&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
= number of inputs. For example, 2 inputs have &lt;!--[if gte msEquation 12]&gt;&lt;m:oMath&gt;&lt;m:sSup&gt;&lt;m:sSupPr&gt;&lt;span
   style=&#39;font-family:&quot;Cambria Math&quot;,serif;mso-ascii-font-family:&quot;Cambria Math&quot;;
   mso-hansi-font-family:&quot;Cambria Math&quot;;font-style:italic;mso-bidi-font-style:
   normal&#39;&gt;&lt;m:ctrlPr&gt;&lt;/m:ctrlPr&gt;&lt;/span&gt;&lt;/m:sSupPr&gt;&lt;m:e&gt;&lt;i style=&#39;mso-bidi-font-style:
   normal&#39;&gt;&lt;span style=&#39;font-family:&quot;Cambria Math&quot;,serif&#39;&gt;&lt;m:r&gt;2&lt;/m:r&gt;&lt;/span&gt;&lt;/i&gt;&lt;/m:e&gt;&lt;m:sup&gt;&lt;i
   style=&#39;mso-bidi-font-style:normal&#39;&gt;&lt;span style=&#39;font-family:&quot;Cambria Math&quot;,serif&#39;&gt;&lt;m:r&gt;2&lt;/m:r&gt;&lt;/span&gt;&lt;/i&gt;&lt;/m:sup&gt;&lt;/m:sSup&gt;&lt;/m:oMath&gt;&lt;![endif]--&gt;&lt;!--[if !msEquation]--&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt; mso-bidi-language: AR-SA; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-fareast-language: EN-US; mso-fareast-theme-font: minor-latin; mso-text-raise: -3.0pt; position: relative; top: 3.0pt;&quot;&gt;&lt;v:shape id=&quot;_x0000_i1025&quot; style=&quot;height: 14.25pt; width: 12pt;&quot; type=&quot;#_x0000_t75&quot;&gt;
 &lt;v:imagedata chromakey=&quot;white&quot; o:title=&quot;&quot; src=&quot;file:///C:/Users/Marcel/AppData/Local/Temp/msohtmlclip1/01/clip_image003.png&quot;&gt;
&lt;/v:imagedata&gt;&lt;/v:shape&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&amp;nbsp;combinations,
3 inputs have &lt;!--[if gte msEquation 12]&gt;&lt;m:oMath&gt;&lt;m:sSup&gt;&lt;m:sSupPr&gt;&lt;span
   style=&#39;font-family:&quot;Cambria Math&quot;,serif;mso-ascii-font-family:&quot;Cambria Math&quot;;
   mso-hansi-font-family:&quot;Cambria Math&quot;;font-style:italic;mso-bidi-font-style:
   normal&#39;&gt;&lt;m:ctrlPr&gt;&lt;/m:ctrlPr&gt;&lt;/span&gt;&lt;/m:sSupPr&gt;&lt;m:e&gt;&lt;i style=&#39;mso-bidi-font-style:
   normal&#39;&gt;&lt;span style=&#39;font-family:&quot;Cambria Math&quot;,serif&#39;&gt;&lt;m:r&gt;2&lt;/m:r&gt;&lt;/span&gt;&lt;/i&gt;&lt;/m:e&gt;&lt;m:sup&gt;&lt;i
   style=&#39;mso-bidi-font-style:normal&#39;&gt;&lt;span style=&#39;font-family:&quot;Cambria Math&quot;,serif&#39;&gt;&lt;m:r&gt;3&lt;/m:r&gt;&lt;/span&gt;&lt;/i&gt;&lt;/m:sup&gt;&lt;/m:sSup&gt;&lt;/m:oMath&gt;&lt;![endif]--&gt;&lt;!--[if !msEquation]--&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt; mso-bidi-language: AR-SA; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-fareast-language: EN-US; mso-fareast-theme-font: minor-latin; mso-text-raise: -3.0pt; position: relative; top: 3.0pt;&quot;&gt;&lt;v:shape id=&quot;_x0000_i1025&quot; style=&quot;height: 14.25pt; width: 12pt;&quot; type=&quot;#_x0000_t75&quot;&gt;
 &lt;v:imagedata chromakey=&quot;white&quot; o:title=&quot;&quot; src=&quot;file:///C:/Users/Marcel/AppData/Local/Temp/msohtmlclip1/01/clip_image004.png&quot;&gt;
&lt;/v:imagedata&gt;&lt;/v:shape&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&amp;nbsp;combinations
and so on. The next section shows how these truth tables are used.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-top: 5.0pt;&quot;&gt;
&lt;v:shape id=&quot;Picture_x0020_6&quot; o:spid=&quot;_x0000_s1037&quot; style=&quot;height: 125.5pt; margin-left: 211.35pt; margin-top: 554.05pt; mso-position-horizontal-relative: margin; mso-position-horizontal: absolute; mso-position-vertical-relative: margin; mso-position-vertical: absolute; mso-wrap-distance-bottom: 0; mso-wrap-distance-left: 9pt; mso-wrap-distance-right: 9pt; mso-wrap-distance-top: 0; mso-wrap-style: square; position: absolute; visibility: visible; width: 117.35pt; z-index: 251611648;&quot; type=&quot;#_x0000_t75&quot;&gt;
 &lt;v:imagedata o:title=&quot;&quot; src=&quot;file:///C:/Users/Marcel/AppData/Local/Temp/msohtmlclip1/01/clip_image005.png&quot;&gt;
 &lt;w:wrap anchorx=&quot;margin&quot; anchory=&quot;margin&quot; type=&quot;square&quot;&gt;
&lt;/w:wrap&gt;&lt;/v:imagedata&gt;&lt;/v:shape&gt;&lt;b&gt;&lt;i&gt;Description of the logic gates&lt;o:p&gt;&lt;/o:p&gt;&lt;/i&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-top: 5.0pt;&quot;&gt;
&lt;b&gt;NOT gate&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
The output (X) is true (1 or ON) if:&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
Input A is NOT TRUE (0 or OFF)&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-top: 5.0pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-top: 5.0pt;&quot;&gt;
Truth table for: &lt;b&gt;X = NOT A&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-top: 5.0pt;&quot;&gt;
&lt;v:shape id=&quot;Picture_x0020_7&quot; o:spid=&quot;_x0000_s1036&quot; style=&quot;height: 53.35pt; margin-left: 220.45pt; margin-top: 4.65pt; mso-position-horizontal-relative: margin; mso-position-horizontal: absolute; mso-position-vertical-relative: margin; mso-position-vertical: absolute; mso-wrap-distance-bottom: 0; mso-wrap-distance-left: 9pt; mso-wrap-distance-right: 9pt; mso-wrap-distance-top: 0; mso-wrap-style: square; position: absolute; visibility: visible; width: 108.25pt; z-index: 251613696;&quot; type=&quot;#_x0000_t75&quot;&gt;
 &lt;v:imagedata o:title=&quot;&quot; src=&quot;file:///C:/Users/Marcel/AppData/Local/Temp/msohtmlclip1/01/clip_image006.png&quot;&gt;
 &lt;w:wrap anchorx=&quot;margin&quot; anchory=&quot;margin&quot; type=&quot;square&quot;&gt;
&lt;/w:wrap&gt;&lt;/v:imagedata&gt;&lt;/v:shape&gt;&lt;b&gt;AND gate&lt;/b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
The output (X) is true (1 or ON) if:&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
INPUT A AND INPUT B are BOTH&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
TRUE (1 or ON).&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;v:shape id=&quot;Picture_x0020_8&quot; o:spid=&quot;_x0000_s1035&quot; style=&quot;height: 71.3pt; margin-left: 206pt; margin-top: 66.7pt; mso-height-percent: 0; mso-height-percent: 0; mso-height-relative: margin; mso-position-horizontal-relative: margin; mso-position-horizontal: absolute; mso-position-vertical-relative: margin; mso-position-vertical: absolute; mso-wrap-distance-bottom: 0; mso-wrap-distance-left: 9pt; mso-wrap-distance-right: 9pt; mso-wrap-distance-top: 0; mso-wrap-style: square; position: absolute; visibility: visible; width: 131.6pt; z-index: 251622912;&quot; type=&quot;#_x0000_t75&quot;&gt;
 &lt;v:imagedata o:title=&quot;&quot; src=&quot;file:///C:/Users/Marcel/AppData/Local/Temp/msohtmlclip1/01/clip_image007.png&quot;&gt;
 &lt;w:wrap anchorx=&quot;margin&quot; anchory=&quot;margin&quot; type=&quot;square&quot;&gt;
&lt;/w:wrap&gt;&lt;/v:imagedata&gt;&lt;/v:shape&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-top: 6.0pt;&quot;&gt;
Truth table for: &lt;b&gt;X = A AND B&lt;/b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-top: 5.0pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-top: 5.0pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-top: 5.0pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-top: 5.0pt;&quot;&gt;
&lt;v:shape id=&quot;Picture_x0020_9&quot; o:spid=&quot;_x0000_s1034&quot; style=&quot;height: 56.25pt; margin-left: 220.65pt; margin-top: 180.05pt; mso-height-percent: 0; mso-height-percent: 0; mso-height-relative: margin; mso-position-horizontal-relative: margin; mso-position-horizontal: absolute; mso-position-vertical-relative: margin; mso-position-vertical: absolute; mso-width-percent: 0; mso-width-percent: 0; mso-width-relative: margin; mso-wrap-distance-bottom: 0; mso-wrap-distance-left: 9pt; mso-wrap-distance-right: 9pt; mso-wrap-distance-top: 0; mso-wrap-style: square; position: absolute; visibility: visible; width: 115.3pt; z-index: 251629056;&quot; type=&quot;#_x0000_t75&quot;&gt;
 &lt;v:imagedata o:title=&quot;&quot; src=&quot;file:///C:/Users/Marcel/AppData/Local/Temp/msohtmlclip1/01/clip_image008.png&quot;&gt;
 &lt;w:wrap anchorx=&quot;margin&quot; anchory=&quot;margin&quot; type=&quot;square&quot;&gt;
&lt;/w:wrap&gt;&lt;/v:imagedata&gt;&lt;/v:shape&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-top: 5.0pt;&quot;&gt;
&lt;b&gt;OR gate&lt;/b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-top: 5.0pt;&quot;&gt;
The output (X) is true (1 or ON)
if:&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-top: 5.0pt;&quot;&gt;
INPUT A OR INPUT B is &lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-top: 5.0pt;&quot;&gt;
&lt;v:shape id=&quot;Picture_x0020_10&quot; o:spid=&quot;_x0000_s1033&quot; style=&quot;height: 69.35pt; margin-left: 207.65pt; margin-top: 244pt; mso-height-percent: 0; mso-height-percent: 0; mso-height-relative: margin; mso-position-horizontal-relative: margin; mso-position-horizontal: absolute; mso-position-vertical-relative: margin; mso-position-vertical: absolute; mso-width-percent: 0; mso-width-percent: 0; mso-width-relative: margin; mso-wrap-distance-bottom: 0; mso-wrap-distance-left: 9pt; mso-wrap-distance-right: 9pt; mso-wrap-distance-top: 0; mso-wrap-style: square; position: absolute; visibility: visible; width: 129.95pt; z-index: 251641344;&quot; type=&quot;#_x0000_t75&quot;&gt;
 &lt;v:imagedata o:title=&quot;&quot; src=&quot;file:///C:/Users/Marcel/AppData/Local/Temp/msohtmlclip1/01/clip_image009.png&quot;&gt;
 &lt;w:wrap anchorx=&quot;margin&quot; anchory=&quot;margin&quot; type=&quot;square&quot;&gt;
&lt;/w:wrap&gt;&lt;/v:imagedata&gt;&lt;/v:shape&gt;TRUE (1 or ON).&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-top: 5.0pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-top: 5.0pt;&quot;&gt;
Truth table for:&lt;b&gt; X = A OR B&lt;/b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-top: 5.0pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-top: 5.0pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-top: 5.0pt;&quot;&gt;
&lt;v:shape id=&quot;Picture_x0020_11&quot; o:spid=&quot;_x0000_s1032&quot; style=&quot;height: 55.3pt; margin-left: 215.9pt; margin-top: 341.8pt; mso-height-percent: 0; mso-height-percent: 0; mso-height-relative: margin; mso-position-horizontal-relative: margin; mso-position-horizontal: absolute; mso-position-vertical-relative: margin; mso-position-vertical: absolute; mso-width-percent: 0; mso-width-percent: 0; mso-width-relative: margin; mso-wrap-distance-bottom: 0; mso-wrap-distance-left: 9pt; mso-wrap-distance-right: 9pt; mso-wrap-distance-top: 0; mso-wrap-style: square; position: absolute; visibility: visible; width: 112.95pt; z-index: 251654656;&quot; type=&quot;#_x0000_t75&quot;&gt;
 &lt;v:imagedata o:title=&quot;&quot; src=&quot;file:///C:/Users/Marcel/AppData/Local/Temp/msohtmlclip1/01/clip_image010.png&quot;&gt;
 &lt;w:wrap anchorx=&quot;margin&quot; anchory=&quot;margin&quot; type=&quot;square&quot;&gt;
&lt;/w:wrap&gt;&lt;/v:imagedata&gt;&lt;/v:shape&gt;&lt;b&gt;NAND
gate&lt;/b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-top: 5.0pt;&quot;&gt;
The
output (X) is &lt;b&gt;true&lt;/b&gt; (1 or ON) if:&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-top: 5.0pt;&quot;&gt;
&lt;b&gt;INPUT A AND INPUT B &lt;/b&gt;are&lt;b&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-top: 5.0pt;&quot;&gt;
&lt;b&gt;NOT BOTH TRUE&lt;/b&gt; (1 or ON)&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-top: 5.0pt;&quot;&gt;
&lt;v:shape id=&quot;Picture_x0020_12&quot; o:spid=&quot;_x0000_s1031&quot; style=&quot;height: 61.4pt; margin-left: 206.6pt; margin-top: 408.35pt; mso-height-percent: 0; mso-height-percent: 0; mso-height-relative: margin; mso-position-horizontal-relative: margin; mso-position-horizontal: absolute; mso-position-vertical-relative: margin; mso-position-vertical: absolute; mso-width-percent: 0; mso-width-percent: 0; mso-width-relative: margin; mso-wrap-distance-bottom: 0; mso-wrap-distance-left: 9pt; mso-wrap-distance-right: 9pt; mso-wrap-distance-top: 0; mso-wrap-style: square; position: absolute; visibility: visible; width: 129.95pt; z-index: 251664896;&quot; type=&quot;#_x0000_t75&quot;&gt;
 &lt;v:imagedata o:title=&quot;&quot; src=&quot;file:///C:/Users/Marcel/AppData/Local/Temp/msohtmlclip1/01/clip_image011.png&quot;&gt;
 &lt;w:wrap anchorx=&quot;margin&quot; anchory=&quot;margin&quot; type=&quot;square&quot;&gt;
&lt;/w:wrap&gt;&lt;/v:imagedata&gt;&lt;/v:shape&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-top: 5.0pt;&quot;&gt;
Truth
table for: &lt;b&gt;X = NOT A AND B&lt;/b&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-top: 5.0pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-top: 5.0pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-top: 5.0pt;&quot;&gt;
&lt;v:shape id=&quot;Picture_x0020_13&quot; o:spid=&quot;_x0000_s1030&quot; style=&quot;height: 49.3pt; margin-left: 220.65pt; margin-top: 491.95pt; mso-height-percent: 0; mso-height-percent: 0; mso-height-relative: margin; mso-position-horizontal-relative: margin; mso-position-horizontal: absolute; mso-position-vertical-relative: margin; mso-position-vertical: absolute; mso-width-percent: 0; mso-width-percent: 0; mso-width-relative: margin; mso-wrap-distance-bottom: 0; mso-wrap-distance-left: 9pt; mso-wrap-distance-right: 9pt; mso-wrap-distance-top: 0; mso-wrap-style: square; position: absolute; visibility: visible; width: 107.75pt; z-index: 251673088;&quot; type=&quot;#_x0000_t75&quot;&gt;
 &lt;v:imagedata o:title=&quot;&quot; src=&quot;file:///C:/Users/Marcel/AppData/Local/Temp/msohtmlclip1/01/clip_image012.png&quot;&gt;
 &lt;w:wrap anchorx=&quot;margin&quot; anchory=&quot;margin&quot; type=&quot;square&quot;&gt;
&lt;/w:wrap&gt;&lt;/v:imagedata&gt;&lt;/v:shape&gt;&lt;b&gt;NOR
gate&lt;/b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
The output (X) is &lt;b&gt;true&lt;/b&gt; (1 or ON) if:&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;INPUT A OR INPUT B&lt;/b&gt; are &lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;v:shape id=&quot;Picture_x0020_14&quot; o:spid=&quot;_x0000_s1029&quot; style=&quot;height: 63.85pt; margin-left: 205.95pt; margin-top: 546pt; mso-height-percent: 0; mso-height-percent: 0; mso-height-relative: margin; mso-position-horizontal-relative: margin; mso-position-horizontal: absolute; mso-position-vertical-relative: margin; mso-position-vertical: absolute; mso-width-percent: 0; mso-width-percent: 0; mso-width-relative: margin; mso-wrap-distance-bottom: 0; mso-wrap-distance-left: 9pt; mso-wrap-distance-right: 9pt; mso-wrap-distance-top: 0; mso-wrap-style: square; position: absolute; visibility: visible; width: 128.6pt; z-index: 251685376;&quot; type=&quot;#_x0000_t75&quot;&gt;
 &lt;v:imagedata o:title=&quot;&quot; src=&quot;file:///C:/Users/Marcel/AppData/Local/Temp/msohtmlclip1/01/clip_image013.png&quot;&gt;
 &lt;w:wrap anchorx=&quot;margin&quot; anchory=&quot;margin&quot; type=&quot;square&quot;&gt;
&lt;/w:wrap&gt;&lt;/v:imagedata&gt;&lt;/v:shape&gt;&lt;b&gt;NOT
BOTH TRUE&lt;/b&gt; (1 or ON)&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-top: 24.0pt;&quot;&gt;
Truth
table for: &lt;b&gt;X = NOT A OR B&lt;/b&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-top: 24.0pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-top: 24.0pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-top: 24.0pt;&quot;&gt;
&lt;v:shape id=&quot;Picture_x0020_15&quot; o:spid=&quot;_x0000_s1028&quot; style=&quot;height: 52pt; margin-left: 238.4pt; margin-top: 2.7pt; mso-height-percent: 0; mso-height-percent: 0; mso-height-relative: margin; mso-position-horizontal-relative: margin; mso-position-horizontal: absolute; mso-position-vertical-relative: margin; mso-position-vertical: absolute; mso-width-percent: 0; mso-width-percent: 0; mso-width-relative: margin; mso-wrap-distance-bottom: 0; mso-wrap-distance-left: 9pt; mso-wrap-distance-right: 9pt; mso-wrap-distance-top: 0; mso-wrap-style: square; position: absolute; visibility: visible; width: 106.1pt; z-index: 251698688;&quot; type=&quot;#_x0000_t75&quot;&gt;
 &lt;v:imagedata o:title=&quot;&quot; src=&quot;file:///C:/Users/Marcel/AppData/Local/Temp/msohtmlclip1/01/clip_image014.png&quot;&gt;
 &lt;w:wrap anchorx=&quot;margin&quot; anchory=&quot;margin&quot; type=&quot;square&quot;&gt;
&lt;/w:wrap&gt;&lt;/v:imagedata&gt;&lt;/v:shape&gt;&lt;b&gt;XOR
gate&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
The output (X) is &lt;b&gt;true&lt;/b&gt; (1 or ON) if:&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;INPUT A OR (NOT INPUT B) &lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;OR (NOT INPUT A) OR INPUT B&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;v:shape id=&quot;Picture_x0020_16&quot; o:spid=&quot;_x0000_s1027&quot; style=&quot;height: 65.05pt; margin-left: 220.65pt; margin-top: 57.95pt; mso-height-percent: 0; mso-height-percent: 0; mso-height-relative: margin; mso-position-horizontal-relative: margin; mso-position-horizontal: absolute; mso-position-vertical-relative: margin; mso-position-vertical: absolute; mso-width-percent: 0; mso-width-percent: 0; mso-width-relative: margin; mso-wrap-distance-bottom: 0; mso-wrap-distance-left: 9pt; mso-wrap-distance-right: 9pt; mso-wrap-distance-top: 0; mso-wrap-style: square; position: absolute; visibility: visible; width: 128.6pt; z-index: 251704832;&quot; type=&quot;#_x0000_t75&quot;&gt;
 &lt;v:imagedata o:title=&quot;&quot; src=&quot;file:///C:/Users/Marcel/AppData/Local/Temp/msohtmlclip1/01/clip_image015.png&quot;&gt;
 &lt;w:wrap anchorx=&quot;margin&quot; anchory=&quot;margin&quot; type=&quot;square&quot;&gt;
&lt;/w:wrap&gt;&lt;/v:imagedata&gt;&lt;/v:shape&gt;is TRUE (1 or ON)&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
Truth table for: &lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;X = A OR (NOT B) OR (NOT A) OR B&lt;/b&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;&lt;u&gt;Logic circuits/network&lt;/u&gt;&lt;/b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
Logic gates can be combined
together to produce more complex logic circuits (networks).&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
The output from a logic
circuit (network) is checked by producing a truth table.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
Two different types of
problem are considered here:&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoListParagraphCxSpFirst&quot; style=&quot;mso-list: l0 level1 lfo2; text-indent: -.25in;&quot;&gt;
&lt;!--[if !supportLists]--&gt;&lt;span style=&quot;font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol; mso-no-proof: yes;&quot;&gt;·&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;; font-size: 7pt; font-stretch: normal; font-variant-numeric: normal; line-height: normal;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;drawing the truth
table from a given logic circuit (network)&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoListParagraphCxSpLast&quot; style=&quot;mso-list: l0 level1 lfo2; text-indent: -.25in;&quot;&gt;
&lt;!--[if !supportLists]--&gt;&lt;span style=&quot;font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol; mso-no-proof: yes;&quot;&gt;·&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;; font-size: 7pt; font-stretch: normal; font-variant-numeric: normal; line-height: normal;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;designing a logic
circuit (network) from a given problem and testing it by also drawing a truth
table.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
Example:&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
Produce a truth table from
the following logic circuit (network).&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;v:shape id=&quot;Picture_x0020_17&quot; o:spid=&quot;_x0000_s1026&quot; style=&quot;height: 121.35pt; margin-left: 268.8pt; margin-top: 296.9pt; mso-position-horizontal-relative: margin; mso-position-horizontal: absolute; mso-position-vertical-relative: margin; mso-position-vertical: absolute; mso-width-percent: 0; mso-width-percent: 0; mso-width-relative: margin; mso-wrap-distance-bottom: 0; mso-wrap-distance-left: 9pt; mso-wrap-distance-right: 9pt; mso-wrap-distance-top: 0; mso-wrap-style: square; position: absolute; visibility: visible; width: 236.85pt; z-index: 251709952;&quot; type=&quot;#_x0000_t75&quot;&gt;
 &lt;v:imagedata o:title=&quot;&quot; src=&quot;file:///C:/Users/Marcel/AppData/Local/Temp/msohtmlclip1/01/clip_image016.png&quot;&gt;
 &lt;w:wrap anchorx=&quot;margin&quot; anchory=&quot;margin&quot; type=&quot;square&quot;&gt;
&lt;/w:wrap&gt;&lt;/v:imagedata&gt;&lt;/v:shape&gt;&lt;i&gt;Note:
&lt;o:p&gt;&lt;/o:p&gt;&lt;/i&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;i&gt;To show how this works, we will split&lt;o:p&gt;&lt;/o:p&gt;&lt;/i&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;i&gt;the logic circuit into two parts (shown by&lt;o:p&gt;&lt;/o:p&gt;&lt;/i&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;i&gt;the dotted line).&lt;/i&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;First part&lt;/b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
There are 3 inputs; thus we
must have &lt;!--[if gte msEquation 12]&gt;&lt;m:oMath&gt;&lt;m:sSup&gt;&lt;m:sSupPr&gt;&lt;span
   style=&#39;font-family:&quot;Cambria Math&quot;,serif;mso-ascii-font-family:&quot;Cambria Math&quot;;
   mso-hansi-font-family:&quot;Cambria Math&quot;;font-style:italic;mso-bidi-font-style:
   normal&#39;&gt;&lt;m:ctrlPr&gt;&lt;/m:ctrlPr&gt;&lt;/span&gt;&lt;/m:sSupPr&gt;&lt;m:e&gt;&lt;i style=&#39;mso-bidi-font-style:
   normal&#39;&gt;&lt;span style=&#39;font-family:&quot;Cambria Math&quot;,serif&#39;&gt;&lt;m:r&gt;2&lt;/m:r&gt;&lt;/span&gt;&lt;/i&gt;&lt;/m:e&gt;&lt;m:sup&gt;&lt;i
   style=&#39;mso-bidi-font-style:normal&#39;&gt;&lt;span style=&#39;font-family:&quot;Cambria Math&quot;,serif&#39;&gt;&lt;m:r&gt;3&lt;/m:r&gt;&lt;/span&gt;&lt;/i&gt;&lt;/m:sup&gt;&lt;/m:sSup&gt;&lt;/m:oMath&gt;&lt;![endif]--&gt;&lt;!--[if !msEquation]--&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt; mso-bidi-language: AR-SA; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-fareast-language: EN-US; mso-fareast-theme-font: minor-latin; mso-text-raise: -3.0pt; position: relative; top: 3.0pt;&quot;&gt;&lt;v:shape id=&quot;_x0000_i1025&quot; style=&quot;height: 14.25pt; width: 12pt;&quot; type=&quot;#_x0000_t75&quot;&gt;
 &lt;v:imagedata chromakey=&quot;white&quot; o:title=&quot;&quot; src=&quot;file:///C:/Users/Marcel/AppData/Local/Temp/msohtmlclip1/01/clip_image004.png&quot;&gt;
&lt;/v:imagedata&gt;&lt;/v:shape&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&amp;nbsp;(8) possible combinations of 1s and 0s.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
To find the values (outputs)
at points &lt;b&gt;P&lt;/b&gt; and &lt;b&gt;Q&lt;/b&gt;, it is necessary to consider the truth tables for the &lt;b&gt;NOR gate&lt;/b&gt; (output &lt;b&gt;P&lt;/b&gt;) and the &lt;b&gt;AND gate&lt;/b&gt;
(output &lt;b&gt;Q&lt;/b&gt;).&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
P = A &lt;b&gt;NOR&lt;/b&gt; B&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
Q = B &lt;b&gt;AND&lt;/b&gt; C&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
We get:&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div align=&quot;center&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: center;&quot;&gt;
&lt;v:shape id=&quot;Picture_x0020_18&quot; o:spid=&quot;_x0000_i1027&quot; style=&quot;height: 128.25pt; mso-wrap-style: square; visibility: visible; width: 264pt;&quot; type=&quot;#_x0000_t75&quot;&gt;
 &lt;v:imagedata o:title=&quot;&quot; src=&quot;file:///C:/Users/Marcel/AppData/Local/Temp/msohtmlclip1/01/clip_image017.png&quot;&gt;
&lt;/v:imagedata&gt;&lt;/v:shape&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 12.0pt; mso-ansi-language: EN-US; mso-bidi-font-size: 11.0pt; mso-bidi-language: AR-SA; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-fareast-language: EN-US; mso-fareast-theme-font: minor-latin; mso-no-proof: yes;&quot;&gt;&lt;br clear=&quot;all&quot; style=&quot;mso-special-character: line-break; page-break-before: always;&quot; /&gt;
&lt;/span&gt;&lt;/b&gt;

&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;Second part&lt;/b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
There are 8 values from &lt;b&gt;P&lt;/b&gt; and &lt;b&gt;Q&lt;/b&gt; which form the inputs to the last OR gate.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
Hence we get &lt;b&gt;X = P OR Q&lt;/b&gt; which gives the following
truth table:&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div align=&quot;center&quot; class=&quot;MsoNormal&quot; style=&quot;margin-top: 6.0pt; text-align: center;&quot;&gt;
&lt;v:shape id=&quot;Picture_x0020_19&quot; o:spid=&quot;_x0000_i1026&quot; style=&quot;height: 147pt; mso-wrap-style: square; visibility: visible; width: 141pt;&quot; type=&quot;#_x0000_t75&quot;&gt;
 &lt;v:imagedata o:title=&quot;&quot; src=&quot;file:///C:/Users/Marcel/AppData/Local/Temp/msohtmlclip1/01/clip_image018.png&quot;&gt;
&lt;/v:imagedata&gt;&lt;/v:shape&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-top: 6.0pt;&quot;&gt;
Which
now gives us the final truth table for the logic circuit given at the start of
the example:&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div align=&quot;center&quot; class=&quot;MsoNormal&quot; style=&quot;margin-top: 6.0pt; text-align: center;&quot;&gt;
&lt;v:shape id=&quot;Picture_x0020_20&quot; o:spid=&quot;_x0000_i1025&quot; style=&quot;height: 138.75pt; mso-wrap-style: square; visibility: visible; width: 179.25pt;&quot; type=&quot;#_x0000_t75&quot;&gt;
 &lt;v:imagedata o:title=&quot;&quot; src=&quot;file:///C:/Users/Marcel/AppData/Local/Temp/msohtmlclip1/01/clip_image019.png&quot;&gt;
&lt;/v:imagedata&gt;&lt;/v:shape&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-top: 6.0pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-top: 6.0pt;&quot;&gt;
So
as you can see the possibilities are unlimited. You can design which circuit
you like. Good luck.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://electronicexperiments.blogspot.com/feeds/8487609948021694417/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://electronicexperiments.blogspot.com/2016/12/logic-gates.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4799470828225918099/posts/default/8487609948021694417'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4799470828225918099/posts/default/8487609948021694417'/><link rel='alternate' type='text/html' href='http://electronicexperiments.blogspot.com/2016/12/logic-gates.html' title='Logic Gates'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4799470828225918099.post-657046406024154048</id><published>2016-12-30T17:28:00.004+02:00</published><updated>2016-12-30T17:28:49.218+02:00</updated><title type='text'>Linear vs. Switch-Mode Power Supplies</title><content type='html'>&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;&lt;i&gt;&lt;u&gt;Intro&lt;o:p&gt;&lt;/o:p&gt;&lt;/u&gt;&lt;/i&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
Linear power supplies were the mainstay of power conversion
until the late 1970’s when the first&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
commercial switch-mode became available. Now apart from very
low power wall mount linear power&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
supplies used for powering consumer items like cell phones
and toys, switch-mode power supplies are&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
dominant.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;&lt;i&gt;&lt;u&gt;So what is the difference in how they work?&lt;o:p&gt;&lt;/o:p&gt;&lt;/u&gt;&lt;/i&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
Linear power supplies have a bulky steel or iron laminated
transformer. This transformer has two purposes&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
- It provides a safety barrier for the low voltage output
from the AC input and reduces and the input from&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
typically 115V or 230VAC to a much lower voltage around say
30VAC.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
The low voltage AC output from the transformer is then
rectified by two or four diodes and smoothed into&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
low voltage DC by large electrolytic capacitors.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
That low voltage DC is then regulated into the output
voltage of choice by a dropping the difference in&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
voltage across transistor or IC (the shunt regulator).&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
Switch-mode supplies are a lot more complicated. The 115V or
230VAC voltage is rectified and smoothed&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
by diodes and capacitors resulting in a high voltage DC.
That DC is then converted into a safe, low&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
voltage, high frequency (typically switching at 100kHz to
500kHz) voltage using a much smaller ferrite&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
transformer and FETs or transistors. That voltage is then
converted into the DC output voltage of choice by&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
another set of diodes, capacitors and inductors. Corrections
to the output voltage due to load or input&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
changes are achieved by adjusting the pulse width of the
high frequency waveform.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
Sounds complicated? Yes, but the payoff is worth it!&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;&lt;i&gt;&lt;u&gt;The advantages and drawbacks of both technologies&lt;o:p&gt;&lt;/o:p&gt;&lt;/u&gt;&lt;/i&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;Size:&lt;/b&gt; - A 50W
linear power supply is typically 3 x 5 x 5.5”, whereas a 50W switch-mode can be
as small as&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
3 x 5 x 1”. That’s a size reduction of 80%.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;Weight:&lt;/b&gt; - A 50W
linear weighs 4lbs, a corresponding switcher is 0.75lb. As the power level
increases, so&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
does the weight. I personally remember a two-man lift needed
for a 1000W linear. Today I carry a 2000W&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
in my carry-on luggage when I fly!&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;Input Voltage Range:&lt;/b&gt;
- A linear has a very limited input range requiring that the transformer taps
be&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
changed between different countries. Normally on the
specification you will see&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
100/120/220/230/240VAC. This is because when input voltage
drops more than 10%, the DC voltage to&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
the shunt regulator drops too low &amp;amp; the power supply
cannot deliver the required output voltage. At input&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
voltages greater than 10%, too much voltage is delivered to
the regulator resulting in overheating.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
If a piece of equipment is tested in the US and shipped to
Europe, or even to Mexico in some cases, the&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
transformer “taps” have to be manually changed. Forget to
set the taps? The power supply will most&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
certainly blow the fuse, or may well be damaged.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
Most switch-mode supplies will operate anywhere in the world
(85 to 264VAC), from industrial areas in&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
Japan to the outback of Australia without any adjustment.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
The switch-mode supply will also be able to withstand small
losses of AC power in the range of 10-20ms&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
without affecting the outputs. A linear will not. No one
will care if the AC goes missing for 1/100th of a&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
second when charging your phone, it will take 100 of these
interruptions to delay the charge by one second!&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
Having a piece of equipment reboot 100 times a day will
cause some heartbreak!&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;Efficiency:&lt;/b&gt; - A
linear power supply because of its design will normally operate at around 60%
efficiency&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
for 24V outputs, whereas a switch-mode is normally 80% or
more. Efficiency is a measure of how much&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
energy the power supply wastes. This has to be removed with
fans or heat sinks from the system.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
For a 100W output linear, that waste would be 67W. A 100W
switch-mode would be just 25W.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div align=&quot;center&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: center;&quot;&gt;
67W – 25W = 42W is
the extra power lost&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
Doesn’t sound much, but don’t try touching a 40W light bulb!
If the equipment were running 24 hours a&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
day, then the extra losses would be 367kW hours, even at
$0.1 per kW hour, that’s an extra $37 a year for a&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
power supply that costs around $80.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
As a quick note, in Europe, they are trying to limit those
losses of all power supplies used by consumers&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
particularly when operating off load (as many products are
left plugged in 24 hours a day). Imagine 250&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
million power supplies eating up a couple Watts. That
equates to the output of a whole power station!&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;Reliability:&lt;/b&gt; - If
reliability is calculated using a part count method, then the linear power
supply will win.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
With the design &amp;amp; quality improvements made in the last
few years with switch-mode parts &amp;amp; technology,&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
in reality this advantage has been negated. I have
demonstrated life testing data showing no failures after&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
over 1,000,000 hours on some Lambda products.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;Electrical Ripple and
Noise:&lt;/b&gt; - This is where the linear really scores!&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div align=&quot;center&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: center;&quot;&gt;
&lt;v:shapetype coordsize=&quot;21600,21600&quot; filled=&quot;f&quot; id=&quot;_x0000_t75&quot; o:preferrelative=&quot;t&quot; o:spt=&quot;75&quot; path=&quot;m@4@5l@4@11@9@11@9@5xe&quot; stroked=&quot;f&quot;&gt;
 &lt;v:stroke joinstyle=&quot;miter&quot;&gt;
 &lt;v:formulas&gt;
  &lt;v:f eqn=&quot;if lineDrawn pixelLineWidth 0&quot;&gt;
  &lt;v:f eqn=&quot;sum @0 1 0&quot;&gt;
  &lt;v:f eqn=&quot;sum 0 0 @1&quot;&gt;
  &lt;v:f eqn=&quot;prod @2 1 2&quot;&gt;
  &lt;v:f eqn=&quot;prod @3 21600 pixelWidth&quot;&gt;
  &lt;v:f eqn=&quot;prod @3 21600 pixelHeight&quot;&gt;
  &lt;v:f eqn=&quot;sum @0 0 1&quot;&gt;
  &lt;v:f eqn=&quot;prod @6 1 2&quot;&gt;
  &lt;v:f eqn=&quot;prod @7 21600 pixelWidth&quot;&gt;
  &lt;v:f eqn=&quot;sum @8 21600 0&quot;&gt;
  &lt;v:f eqn=&quot;prod @7 21600 pixelHeight&quot;&gt;
  &lt;v:f eqn=&quot;sum @10 21600 0&quot;&gt;
 &lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:formulas&gt;
 &lt;v:path gradientshapeok=&quot;t&quot; o:connecttype=&quot;rect&quot; o:extrusionok=&quot;f&quot;&gt;
 &lt;o:lock aspectratio=&quot;t&quot; v:ext=&quot;edit&quot;&gt;
&lt;/o:lock&gt;&lt;/v:path&gt;&lt;/v:stroke&gt;&lt;/v:shapetype&gt;&lt;v:shape id=&quot;Picture_x0020_6&quot; o:spid=&quot;_x0000_i1027&quot; style=&quot;height: 183pt; mso-wrap-style: square; visibility: visible; width: 244.5pt;&quot; type=&quot;#_x0000_t75&quot;&gt;
 &lt;v:imagedata o:title=&quot;&quot; src=&quot;file:///C:/Users/Marcel/AppData/Local/Temp/msohtmlclip1/01/clip_image001.emz&quot;&gt;
&lt;/v:imagedata&gt;&lt;/v:shape&gt;&lt;v:shape id=&quot;Picture_x0020_7&quot; o:spid=&quot;_x0000_i1026&quot; style=&quot;height: 183.75pt; mso-wrap-style: square; visibility: visible; width: 244.5pt;&quot; type=&quot;#_x0000_t75&quot;&gt;
 &lt;v:imagedata o:title=&quot;&quot; src=&quot;file:///C:/Users/Marcel/AppData/Local/Temp/msohtmlclip1/01/clip_image002.emz&quot;&gt;
&lt;/v:imagedata&gt;&lt;/v:shape&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style=&quot;color: red;&quot;&gt;5v Linear&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style=&quot;color: red;&quot;&gt;5v Switch-mode&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
The linear obviously is a lot “quieter”, by up to a 10,000
times. The topology of the switch-mode supply&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
with its high frequency switching technology had to have a
downside right? So if the noise is 10,000 times&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
worse, how can anyone use it? Sounds so bad.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
In truth, there are some applications (studio mixers and
very sensitive test equipment) where low electrical&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
noise is critical. The others? One of my first sales calls
in the USA was to a manufacturer who built&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
semiconductor fabrication equipment. They used 8 really big
linear units in a large box measuring 2x3x4&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
feet, it was heavy &amp;amp; actually being dictating the size
of their end equipment. I told the engineer that I could&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
replace all eight units with two modular products measuring
5x5x10”. He laughed and said the noise&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
would be too great. I sent him samples and went to visit
three weeks later. He was delighted with the&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
performance and has been a long term Lambda customer ever
since.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;Transient Response:&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
Transient response is how a power supply reacts to a (fast)
change in load.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
If the output load quickly changes from say full load to
half load, the output voltage of the power supply&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
will rise (overshoot) before the internal control circuit
has time to compensate, and then undershoot a little&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
less as the circuit over compensates. The length of time is
takes from the instant of the load change to the&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
time the output voltage settles back into the load
regulation limits can be critical to some loads. Here the&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
linear again outperforms the switch-mode.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
For a 50% change in load the switch-mode will often take
3000us to recover. A linear supply will recover&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
in 50us.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
Is this critical for all applications? There are a few
specialized technologies where this is important and&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
most engineers will advise you if this is critical. For the
other instances on board capacitors at the end load&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&amp;amp; the inductance of cables is enough to reduce overshoot
down ten-fold to where it no longer is a concern.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;Low leakage currents
and Conducted EMI:&lt;/b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
A widely used technique in the design of switch-mode power
supplies is to connect special capacitors from&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
the AC input terminals to Earth. This is a cost effective
method to reduce noise from being fed back&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
through the input wires and potentially affecting other
equipment.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
These capacitors have a side effect of allowing a “leakage
current” to be passed through the Earth or&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
ground cable. Many safety specifications have limits on the
amount of this current that is allowed.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
UL1950 allows 3mA, medical industrials less than a tenth of
that. The gaming industry is even tighter.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
As linear power supplies are “quieter” and do not need these
capacitors, they simplify the system filtering,&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
and allow more of the system leakage current “budget” to be
used for other parts like monitors. The overall&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
size of the system filter can also be reduced. How much that
impacts cost &amp;amp; performance varies from&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
customer to customer.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
Some switch-mode power supplies (like Lambda’s Vega series)
are now available with increased internal&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
filtering that allows for low leakage versions to be offered
to meet medical specifications.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;In Summary:&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/div&gt;
&lt;table border=&quot;1&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;MsoTableGrid&quot; style=&quot;border-collapse: collapse; border: none; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 0in 5.4pt 0in 5.4pt; mso-yfti-tbllook: 1184; width: 709px;&quot;&gt;
 &lt;tbody&gt;
&lt;tr&gt;
  &lt;td style=&quot;border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 1.7in;&quot; valign=&quot;top&quot; width=&quot;163&quot;&gt;
  &lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-left: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 81.0pt;&quot; valign=&quot;top&quot; width=&quot;108&quot;&gt;
  &lt;div align=&quot;center&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: center;&quot;&gt;
Linear&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-left: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 81.0pt;&quot; valign=&quot;top&quot; width=&quot;108&quot;&gt;
  &lt;div align=&quot;center&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: center;&quot;&gt;
Switch-mode&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-left: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 247.5pt;&quot; valign=&quot;top&quot; width=&quot;330&quot;&gt;
  &lt;div class=&quot;MsoNormal&quot;&gt;
Comments&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr&gt;
  &lt;td style=&quot;border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 1.7in;&quot; valign=&quot;top&quot; width=&quot;163&quot;&gt;
  &lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
Size&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 81.0pt;&quot; valign=&quot;top&quot; width=&quot;108&quot;&gt;
  &lt;div align=&quot;center&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: center;&quot;&gt;
x&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 81.0pt;&quot; valign=&quot;top&quot; width=&quot;108&quot;&gt;
  &lt;div align=&quot;center&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: center;&quot;&gt;
OK&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 247.5pt;&quot; valign=&quot;top&quot; width=&quot;330&quot;&gt;
  &lt;div class=&quot;MsoNormal&quot;&gt;
Typically, 80% smaller&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr&gt;
  &lt;td style=&quot;border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 1.7in;&quot; valign=&quot;top&quot; width=&quot;163&quot;&gt;
  &lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
Weight&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 81.0pt;&quot; valign=&quot;top&quot; width=&quot;108&quot;&gt;
  &lt;div align=&quot;center&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: center;&quot;&gt;
x&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 81.0pt;&quot; valign=&quot;top&quot; width=&quot;108&quot;&gt;
  &lt;div align=&quot;center&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: center;&quot;&gt;
OK&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 247.5pt;&quot; valign=&quot;top&quot; width=&quot;330&quot;&gt;
  &lt;div class=&quot;MsoNormal&quot;&gt;
Typically, 80% lighter&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr&gt;
  &lt;td style=&quot;border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 1.7in;&quot; valign=&quot;top&quot; width=&quot;163&quot;&gt;
  &lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
Input Voltage Range&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 81.0pt;&quot; valign=&quot;top&quot; width=&quot;108&quot;&gt;
  &lt;div align=&quot;center&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: center;&quot;&gt;
x&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 81.0pt;&quot; valign=&quot;top&quot; width=&quot;108&quot;&gt;
  &lt;div align=&quot;center&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: center;&quot;&gt;
OK&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 247.5pt;&quot; valign=&quot;top&quot; width=&quot;330&quot;&gt;
  &lt;div class=&quot;MsoNormal&quot;&gt;
10% vs. up to 300% range&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr&gt;
  &lt;td style=&quot;border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 1.7in;&quot; valign=&quot;top&quot; width=&quot;163&quot;&gt;
  &lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
Efficiency&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 81.0pt;&quot; valign=&quot;top&quot; width=&quot;108&quot;&gt;
  &lt;div align=&quot;center&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: center;&quot;&gt;
x&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 81.0pt;&quot; valign=&quot;top&quot; width=&quot;108&quot;&gt;
  &lt;div align=&quot;center&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: center;&quot;&gt;
OK&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 247.5pt;&quot; valign=&quot;top&quot; width=&quot;330&quot;&gt;
  &lt;div class=&quot;MsoNormal&quot;&gt;
Calculate it long term!&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr&gt;
  &lt;td style=&quot;border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 1.7in;&quot; valign=&quot;top&quot; width=&quot;163&quot;&gt;
  &lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
Reliability&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 81.0pt;&quot; valign=&quot;top&quot; width=&quot;108&quot;&gt;
  &lt;div align=&quot;center&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: center;&quot;&gt;
OK&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 81.0pt;&quot; valign=&quot;top&quot; width=&quot;108&quot;&gt;
  &lt;div align=&quot;center&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: center;&quot;&gt;
x / OK&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 247.5pt;&quot; valign=&quot;top&quot; width=&quot;330&quot;&gt;
  &lt;div class=&quot;MsoNormal&quot;&gt;
Component count method, demonstrated probably equal&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr&gt;
  &lt;td style=&quot;border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 1.7in;&quot; valign=&quot;top&quot; width=&quot;163&quot;&gt;
  &lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
Ripple &amp;amp; Noise&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 81.0pt;&quot; valign=&quot;top&quot; width=&quot;108&quot;&gt;
  &lt;div align=&quot;center&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: center;&quot;&gt;
OK&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 81.0pt;&quot; valign=&quot;top&quot; width=&quot;108&quot;&gt;
  &lt;div align=&quot;center&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: center;&quot;&gt;
x / OK&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 247.5pt;&quot; valign=&quot;top&quot; width=&quot;330&quot;&gt;
  &lt;div class=&quot;MsoNormal&quot;&gt;
Up to 10,000 times - often possible to overcome though&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr&gt;
  &lt;td style=&quot;border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 1.7in;&quot; valign=&quot;top&quot; width=&quot;163&quot;&gt;
  &lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
Transient Response&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 81.0pt;&quot; valign=&quot;top&quot; width=&quot;108&quot;&gt;
  &lt;div align=&quot;center&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: center;&quot;&gt;
OK&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 81.0pt;&quot; valign=&quot;top&quot; width=&quot;108&quot;&gt;
  &lt;div align=&quot;center&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: center;&quot;&gt;
x&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 247.5pt;&quot; valign=&quot;top&quot; width=&quot;330&quot;&gt;
  &lt;div class=&quot;MsoNormal&quot;&gt;
Up to 100 times - necessary in specialized areas&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr&gt;
  &lt;td style=&quot;border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 1.7in;&quot; valign=&quot;top&quot; width=&quot;163&quot;&gt;
  &lt;div class=&quot;MsoNormal&quot;&gt;
Low leakage Current&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 81.0pt;&quot; valign=&quot;top&quot; width=&quot;108&quot;&gt;
  &lt;div align=&quot;center&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: center;&quot;&gt;
OK&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 81.0pt;&quot; valign=&quot;top&quot; width=&quot;108&quot;&gt;
  &lt;div align=&quot;center&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: center;&quot;&gt;
x / OK&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 247.5pt;&quot; valign=&quot;top&quot; width=&quot;330&quot;&gt;
  &lt;div class=&quot;MsoNormal&quot;&gt;
Often used in medical systems, switch-mode gaining share&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
Hope that is useful all those aspects presented here.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
As reference for the entire document, you can take a look on
&lt;a href=&quot;https://us.tdk-lambda.com/&quot;&gt;https://us.tdk-lambda.com&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
In this section, below I will share all tests and additional
research made so far.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div align=&quot;center&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: center;&quot;&gt;
&lt;v:shape alt=&quot;http://stylecab.com/wp-content/uploads/2014/09/stayTuned-1.jpg&quot; id=&quot;Picture_x0020_4&quot; o:spid=&quot;_x0000_i1025&quot; style=&quot;height: 59.25pt; mso-wrap-style: square; visibility: visible; width: 77.25pt;&quot; type=&quot;#_x0000_t75&quot;&gt;
 &lt;v:imagedata o:title=&quot;stayTuned-1&quot; src=&quot;file:///C:/Users/Marcel/AppData/Local/Temp/msohtmlclip1/01/clip_image003.jpg&quot;&gt;
&lt;/v:imagedata&gt;&lt;/v:shape&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://electronicexperiments.blogspot.com/feeds/657046406024154048/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://electronicexperiments.blogspot.com/2016/12/linear-vs-switch-mode-power-supplies.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4799470828225918099/posts/default/657046406024154048'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4799470828225918099/posts/default/657046406024154048'/><link rel='alternate' type='text/html' href='http://electronicexperiments.blogspot.com/2016/12/linear-vs-switch-mode-power-supplies.html' title='Linear vs. Switch-Mode Power Supplies'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4799470828225918099.post-4077577926486867319</id><published>2016-12-30T17:27:00.004+02:00</published><updated>2016-12-30T17:27:32.873+02:00</updated><title type='text'>Quad 405-2</title><content type='html'>&lt;div class=&quot;MsoNormal&quot;&gt;
With this article I intend to open the discussion about audio
power amplifiers. My last passion about the world of microcontroller makes me
to let a little bit behind the old and forever passion, probably for most of
you, for audio amplifiers.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
Theory about this sector can be found in all the internet
corners, so here I will put into discussion a couple of schematics and designs
which impressed me so far. If some of you come with something new or if it&#39;s
seen from other angles, let me know, I’m open for discussions and if I will
consider the information as valuable one, I&#39;ll put it here.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;&lt;u&gt;Quad 405-2&lt;/u&gt;&lt;/b&gt;&lt;u&gt;
a piece of art.&lt;o:p&gt;&lt;/o:p&gt;&lt;/u&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
For those who doesn&#39;t have any idea about what does it mean
quad or 405, I will initiate whit a little introduction:&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
The company called Quad Electroacoustic founded by Peter J.
Walker in 1936 in London is a British manufacturer of hi-fi equipment, based in
Huntingdon, England. &lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
The company initially produced only public address equipment
but after the war they began to produce equipment designed for use in the home
as a result of the rising demand for high quality domestic sound reproduction.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
The name &quot;QUAD&quot; is an acronym for &quot;Quality
Unit Amplifier Domestic&quot;, used to describe the QUAD amplifier. In 1983,
when having become known for their QUAD range of products, the Acoustical
Manufacturing Co. Ltd changed its name to QUAD Electroacoustic Ltd.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
The famous Quad “Current Dumping” amplifier launched in the
mid 1970’s, and featured feed forward error correction that effectively removed
the class B cross over distortion that plagues this type of output circuit
structure. &lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
The design caused a stir in the audio industry at the time
of its release, and was the subject of a patent and a paper at an AES
convention a year earlier. Although the 0.005% midband distortion placed it
firmly in the upper echelons of measured performance in the industry at the
time, some reviewers failed to warm to the sound. Nevertheless, this was a
landmark design that creatively solved the cross over distortion problem.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;Productions:&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;u&gt;Current Dumping Power Amplifiers&lt;/u&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
Quad 405 – 1975 to 1982 – 64,000 units&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
Quad 405–2 1982 to 1993 – 100,000 units&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
Quad 405-2 is one of the most known audio power amplifier
for its audio performance.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;v:shapetype coordsize=&quot;21600,21600&quot; filled=&quot;f&quot; id=&quot;_x0000_t75&quot; o:preferrelative=&quot;t&quot; o:spt=&quot;75&quot; path=&quot;m@4@5l@4@11@9@11@9@5xe&quot; stroked=&quot;f&quot;&gt;
 &lt;v:stroke joinstyle=&quot;miter&quot;&gt;
 &lt;v:formulas&gt;
  &lt;v:f eqn=&quot;if lineDrawn pixelLineWidth 0&quot;&gt;
  &lt;v:f eqn=&quot;sum @0 1 0&quot;&gt;
  &lt;v:f eqn=&quot;sum 0 0 @1&quot;&gt;
  &lt;v:f eqn=&quot;prod @2 1 2&quot;&gt;
  &lt;v:f eqn=&quot;prod @3 21600 pixelWidth&quot;&gt;
  &lt;v:f eqn=&quot;prod @3 21600 pixelHeight&quot;&gt;
  &lt;v:f eqn=&quot;sum @0 0 1&quot;&gt;
  &lt;v:f eqn=&quot;prod @6 1 2&quot;&gt;
  &lt;v:f eqn=&quot;prod @7 21600 pixelWidth&quot;&gt;
  &lt;v:f eqn=&quot;sum @8 21600 0&quot;&gt;
  &lt;v:f eqn=&quot;prod @7 21600 pixelHeight&quot;&gt;
  &lt;v:f eqn=&quot;sum @10 21600 0&quot;&gt;
 &lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:formulas&gt;
 &lt;v:path gradientshapeok=&quot;t&quot; o:connecttype=&quot;rect&quot; o:extrusionok=&quot;f&quot;&gt;
 &lt;o:lock aspectratio=&quot;t&quot; v:ext=&quot;edit&quot;&gt;
&lt;/o:lock&gt;&lt;/v:path&gt;&lt;/v:stroke&gt;&lt;/v:shapetype&gt;&lt;v:shape id=&quot;Picture_x0020_1&quot; o:spid=&quot;_x0000_i1029&quot; style=&quot;height: 100.5pt; mso-wrap-style: square; visibility: visible; width: 252.75pt;&quot; type=&quot;#_x0000_t75&quot;&gt;
 &lt;v:imagedata o:title=&quot;&quot; src=&quot;file:///C:/Users/Marcel/AppData/Local/Temp/msohtmlclip1/01/clip_image001.png&quot;&gt;
&lt;/v:imagedata&gt;&lt;/v:shape&gt;&lt;v:shape id=&quot;Picture_x0020_3&quot; o:spid=&quot;_x0000_i1028&quot; style=&quot;height: 99.75pt; mso-wrap-style: square; visibility: visible; width: 250.5pt;&quot; type=&quot;#_x0000_t75&quot;&gt;
 &lt;v:imagedata o:title=&quot;&quot; src=&quot;file:///C:/Users/Marcel/AppData/Local/Temp/msohtmlclip1/01/clip_image002.png&quot;&gt;
&lt;/v:imagedata&gt;&lt;/v:shape&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div align=&quot;center&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: center;&quot;&gt;
&lt;i&gt;&lt;span style=&quot;font-size: 10.0pt;&quot;&gt;Quad 405-2 Front/Rear&lt;/span&gt;&lt;/i&gt;&lt;span style=&quot;font-size: 10.0pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;i&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,serif; font-size: 10.0pt; mso-ansi-language: EN-US; mso-bidi-language: AR-SA; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-fareast-language: EN-US; mso-fareast-theme-font: minor-latin;&quot;&gt;&lt;br clear=&quot;all&quot; style=&quot;page-break-before: always;&quot; /&gt;
&lt;/span&gt;&lt;/i&gt;

&lt;br /&gt;
&lt;div align=&quot;center&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: center;&quot;&gt;
&lt;span style=&quot;font-size: 10.0pt; mso-no-proof: yes;&quot;&gt;&lt;v:shape id=&quot;Picture_x0020_5&quot; o:spid=&quot;_x0000_i1027&quot; style=&quot;height: 156pt; mso-wrap-style: square; visibility: visible; width: 270pt;&quot; type=&quot;#_x0000_t75&quot;&gt;
 &lt;v:imagedata o:title=&quot;&quot; src=&quot;file:///C:/Users/Marcel/AppData/Local/Temp/msohtmlclip1/01/clip_image003.png&quot;&gt;
&lt;/v:imagedata&gt;&lt;/v:shape&gt;&lt;/span&gt;&lt;i&gt;&lt;span style=&quot;font-size: 10.0pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;
&lt;div align=&quot;center&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: center;&quot;&gt;
&lt;i&gt;&lt;span style=&quot;font-size: 10.0pt;&quot;&gt;Quad 405-2 Inside view&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div align=&quot;center&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: center;&quot;&gt;
&lt;v:shape alt=&quot;http://www.net-audio.co.uk/jpgs/405mk3.jpg&quot; id=&quot;Picture_x0020_6&quot; o:spid=&quot;_x0000_i1026&quot; style=&quot;height: 194.25pt; mso-wrap-style: square; visibility: visible; width: 273pt;&quot; type=&quot;#_x0000_t75&quot;&gt;
 &lt;v:imagedata o:title=&quot;405mk3&quot; src=&quot;file:///C:/Users/Marcel/AppData/Local/Temp/msohtmlclip1/01/clip_image004.jpg&quot;&gt;
&lt;/v:imagedata&gt;&lt;/v:shape&gt;&lt;u&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/u&gt;&lt;/div&gt;
&lt;div align=&quot;center&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: center;&quot;&gt;
&lt;i&gt;&lt;span style=&quot;font-size: 10.0pt;&quot;&gt;Quad405-2 PCB-Channel&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;u&gt;Technical Specifications&lt;o:p&gt;&lt;/o:p&gt;&lt;/u&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
Power output: 100 watts per channel into 8Ω (stereo)&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
Frequency response:&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoListParagraphCxSpFirst&quot; style=&quot;margin-left: 103.5pt; mso-add-space: auto; mso-list: l1 level1 lfo1; text-indent: -.25in;&quot;&gt;
&lt;!--[if !supportLists]--&gt;1.&lt;span style=&quot;font-size: 7pt; font-stretch: normal; font-variant-numeric: normal; line-height: normal;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;!--[endif]--&gt;1dB at 20Hz&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoListParagraphCxSpMiddle&quot; style=&quot;margin-left: 103.5pt; mso-add-space: auto; mso-list: l1 level1 lfo1; text-indent: -.25in;&quot;&gt;
&lt;!--[if !supportLists]--&gt;2.&lt;span style=&quot;font-size: 7pt; font-stretch: normal; font-variant-numeric: normal; line-height: normal;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;!--[endif]--&gt;0.5dB at 20kHz&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoListParagraphCxSpLast&quot; style=&quot;margin-left: 103.5pt; mso-add-space: auto; mso-list: l1 level1 lfo1; text-indent: -.25in;&quot;&gt;
&lt;!--[if !supportLists]--&gt;3.&lt;span style=&quot;font-size: 7pt; font-stretch: normal; font-variant-numeric: normal; line-height: normal;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;!--[endif]--&gt;3dB at 50kHz&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
Total harmonic distortion: &amp;lt; 0.01%&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
Hum and Noise:&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
‘A’ weighted -96dB ref full power&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
Unweighted -93dB ref full power (15.7kHz measurement bandwidth)&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
Left/Right Channel Crosstalk:&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoListParagraphCxSpFirst&quot; style=&quot;margin-left: 103.5pt; mso-add-space: auto; mso-list: l0 level1 lfo2; text-indent: -.25in;&quot;&gt;
&lt;!--[if !supportLists]--&gt;1.&lt;span style=&quot;font-size: 7pt; font-stretch: normal; font-variant-numeric: normal; line-height: normal;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;!--[endif]--&gt;80dB @ 100Hz&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoListParagraphCxSpMiddle&quot; style=&quot;margin-left: 103.5pt; mso-add-space: auto; mso-list: l0 level1 lfo2; text-indent: -.25in;&quot;&gt;
&lt;!--[if !supportLists]--&gt;2.&lt;span style=&quot;font-size: 7pt; font-stretch: normal; font-variant-numeric: normal; line-height: normal;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;!--[endif]--&gt;70dB @ 1kHz&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoListParagraphCxSpLast&quot; style=&quot;margin-left: 103.5pt; mso-add-space: auto; mso-list: l0 level1 lfo2; text-indent: -.25in;&quot;&gt;
&lt;!--[if !supportLists]--&gt;3.&lt;span style=&quot;font-size: 7pt; font-stretch: normal; font-variant-numeric: normal; line-height: normal;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;!--[endif]--&gt;60dB @10kHz&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
Input sensitivity: 0.5V for 100 watts into 8 ohm load&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
Speaker load: 4 to 16 ohms (nominal)&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
Signal to noise ratio: 95dB&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
Speaker load impedance: 4Ω to 16Ω&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
Dimensions: 115 x 340.5 x 195mm&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
Weight: 9kg&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;u&gt;MODIFICATIONS &lt;o:p&gt;&lt;/o:p&gt;&lt;/u&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
Throughout time a lot of electronic engineers and hi-fi
audio hobbyist around the world, start to modify this audio power amplifier
from redesigning the electronic schematic, paying attention from quality of
components and in/out connectors to the percentage of Ag consistency from the
soldering material, at the end to succeed improvements of sound response.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
Below I will post a series of electronic schematics starting
with the original one and ending with those who has the most significant
modifications. All of them are fully functional.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;v:shape id=&quot;Picture_x0020_7&quot; o:spid=&quot;_x0000_i1025&quot; style=&quot;height: 357pt; mso-wrap-style: square; visibility: visible; width: 540pt;&quot; type=&quot;#_x0000_t75&quot;&gt;
 &lt;v:imagedata o:title=&quot;&quot; src=&quot;file:///C:/Users/Marcel/AppData/Local/Temp/msohtmlclip1/01/clip_image005.emz&quot;&gt;
&lt;/v:imagedata&gt;&lt;/v:shape&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://electronicexperiments.blogspot.com/feeds/4077577926486867319/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://electronicexperiments.blogspot.com/2016/12/quad-405-2.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4799470828225918099/posts/default/4077577926486867319'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4799470828225918099/posts/default/4077577926486867319'/><link rel='alternate' type='text/html' href='http://electronicexperiments.blogspot.com/2016/12/quad-405-2.html' title='Quad 405-2'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4799470828225918099.post-6598386413112225190</id><published>2015-12-31T17:47:00.002+02:00</published><updated>2015-12-31T17:47:25.906+02:00</updated><title type='text'>Switch mode power supply (S.M.P.S.)</title><content type='html'>Theory about what is and what does the Switch mode power supply (S.M.P.S.).&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-eicAiwwzHkbRUHsu1FNUXojSmddaSu_XaLvY2JdjSh0a81TYM1i7REWTe0a8Lus3NnrPzjyg4eSFIzPIXbdj5UIFWsyPIJ9wa5hSPZ4fSbqBy2T36uxmjx6MydC5FRLFzv_Rkwf3Qzo/s1600/SMPS3k.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;265&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-eicAiwwzHkbRUHsu1FNUXojSmddaSu_XaLvY2JdjSh0a81TYM1i7REWTe0a8Lus3NnrPzjyg4eSFIzPIXbdj5UIFWsyPIJ9wa5hSPZ4fSbqBy2T36uxmjx6MydC5FRLFzv_Rkwf3Qzo/s400/SMPS3k.jpg&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://electronicexperiments.blogspot.com/feeds/6598386413112225190/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://electronicexperiments.blogspot.com/2015/12/switch-mode-power-supply-smps.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4799470828225918099/posts/default/6598386413112225190'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4799470828225918099/posts/default/6598386413112225190'/><link rel='alternate' type='text/html' href='http://electronicexperiments.blogspot.com/2015/12/switch-mode-power-supply-smps.html' title='Switch mode power supply (S.M.P.S.)'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-eicAiwwzHkbRUHsu1FNUXojSmddaSu_XaLvY2JdjSh0a81TYM1i7REWTe0a8Lus3NnrPzjyg4eSFIzPIXbdj5UIFWsyPIJ9wa5hSPZ4fSbqBy2T36uxmjx6MydC5FRLFzv_Rkwf3Qzo/s72-c/SMPS3k.jpg" height="72" width="72"/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4799470828225918099.post-2764281378073970343</id><published>2015-12-31T17:23:00.001+02:00</published><updated>2018-11-15T00:58:56.328+02:00</updated><title type='text'>clicker 2 PIC18FJ</title><content type='html'>&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;v:shapetype coordsize=&quot;21600,21600&quot; filled=&quot;f&quot; id=&quot;_x0000_t75&quot; o:preferrelative=&quot;t&quot; o:spt=&quot;75&quot; path=&quot;m@4@5l@4@11@9@11@9@5xe&quot; stroked=&quot;f&quot;&gt;
 &lt;v:stroke joinstyle=&quot;miter&quot;&gt;
 &lt;v:formulas&gt;
  &lt;v:f eqn=&quot;if lineDrawn pixelLineWidth 0&quot;&gt;
  &lt;v:f eqn=&quot;sum @0 1 0&quot;&gt;
  &lt;v:f eqn=&quot;sum 0 0 @1&quot;&gt;
  &lt;v:f eqn=&quot;prod @2 1 2&quot;&gt;
  &lt;v:f eqn=&quot;prod @3 21600 pixelWidth&quot;&gt;
  &lt;v:f eqn=&quot;prod @3 21600 pixelHeight&quot;&gt;
  &lt;v:f eqn=&quot;sum @0 0 1&quot;&gt;
  &lt;v:f eqn=&quot;prod @6 1 2&quot;&gt;
  &lt;v:f eqn=&quot;prod @7 21600 pixelWidth&quot;&gt;
  &lt;v:f eqn=&quot;sum @8 21600 0&quot;&gt;
  &lt;v:f eqn=&quot;prod @7 21600 pixelHeight&quot;&gt;
  &lt;v:f eqn=&quot;sum @10 21600 0&quot;&gt;
 &lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:f&gt;&lt;/v:formulas&gt;
 &lt;v:path gradientshapeok=&quot;t&quot; o:connecttype=&quot;rect&quot; o:extrusionok=&quot;f&quot;&gt;
 &lt;o:lock aspectratio=&quot;t&quot; v:ext=&quot;edit&quot;&gt;
&lt;/o:lock&gt;&lt;/v:path&gt;&lt;/v:stroke&gt;&lt;/v:shapetype&gt;&lt;v:shape id=&quot;Picture_x0020_2&quot; o:spid=&quot;_x0000_s1026&quot; style=&quot;height: 218.25pt; margin-left: 107.2pt; margin-top: 0; mso-position-horizontal-relative: margin; mso-position-horizontal: right; mso-position-vertical-relative: margin; mso-position-vertical: top; mso-wrap-distance-bottom: 0; mso-wrap-distance-left: 9pt; mso-wrap-distance-right: 9pt; mso-wrap-distance-top: 0; mso-wrap-style: square; position: absolute; visibility: visible; width: 158.4pt; z-index: 251658240;&quot; type=&quot;#_x0000_t75&quot;&gt;
 &lt;v:imagedata o:title=&quot;&quot; src=&quot;file:///C:/Users/Marcel/AppData/Local/Temp/msohtmlclip1/01/clip_image001.png&quot;&gt;
 &lt;w:wrap anchorx=&quot;margin&quot; anchory=&quot;margin&quot; type=&quot;square&quot;&gt;
&lt;/w:wrap&gt;&lt;/v:imagedata&gt;&lt;/v:shape&gt;I will start this conversation saying that this second little
development board called &lt;a href=&quot;http://www.mikroe.com/pic/clicker-2-pic18fj/&quot;&gt;Clicker
2&lt;/a&gt; is just awesome. Created by those from Mikroelektronika, support two mikroBUS™
sockets which gives you a huge potential of &lt;a href=&quot;http://www.mikroe.com/click/&quot;&gt;click boards&lt;/a&gt;, the constantly expanding
range of over 193 add-on boards. With A different design put together it came
up with new and original inventions.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;a href=&quot;http://download.mikroe.com/standards/mikrobus/mikrobus_standard_specification.pdf&quot;&gt;mikroBUS™&lt;/a&gt;
is specially designed pinout standard with SPI, I2C, Analog, UART, Interrupt,
PWM, Reset and Power supply pins.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div align=&quot;center&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: center;&quot;&gt;
&lt;v:shape alt=&quot;mikroBUS Supported&quot; id=&quot;Picture_x0020_3&quot; o:spid=&quot;_x0000_i1027&quot; style=&quot;height: 22.5pt; mso-wrap-style: square; visibility: visible; width: 63pt;&quot; type=&quot;#_x0000_t75&quot;&gt;
 &lt;v:imagedata o:title=&quot;mikroBUS Supported&quot; src=&quot;file:///C:/Users/Marcel/AppData/Local/Temp/msohtmlclip1/01/clip_image002.png&quot;&gt;
&lt;/v:imagedata&gt;&lt;/v:shape&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
Clicker 2 for PIC18FJ is powered by Microchip’s 8-bit
PIC18F87J50 MCU. It has up to 12 MIPS of operation, 128KB of program memory and
3.904 bytes of RAM.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;v:shape id=&quot;Picture_x0020_1&quot; o:spid=&quot;_x0000_i1026&quot; style=&quot;height: 197.25pt; mso-wrap-style: square; visibility: visible; width: 291pt;&quot; type=&quot;#_x0000_t75&quot;&gt;
 &lt;v:imagedata o:title=&quot;&quot; src=&quot;file:///C:/Users/Marcel/AppData/Local/Temp/msohtmlclip1/01/clip_image003.png&quot;&gt;
&lt;/v:imagedata&gt;&lt;/v:shape&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
The onboard LTC®3586-2 IC will provide 3.3V or 5V to the
clicks. It also turns the USB port into a battery charger. For convenience,
clicker 2 for PIC18FJ features a reset button and an ON/OFF switch (you can
also connect an external ON/OFF switch).&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
Clicker 2 has the same pocket-size form factor and the same
pair of 1x26 connection pads as mikromedia boards. This makes it compatible
with mikromedia shields letting you expand your device when you want.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
To make your prototyping experience as convenient as
possible, clicker 2 for PIC18FJ is preprogrammed with a USB-HID bootloader, you
just have to download the mikroBootloader application and uploaded into the
microcontroller.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
For detailed information please view the &lt;a href=&quot;http://www.mikroe.com/downloads/get/2157/clicker_2_pic18fj_manual.pdf&quot;&gt;Clicker
2 PIC18FJ manual&lt;/a&gt;. &lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
At the bottom of this section i will add all projects devepoled with this awesome development board.&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://electronicexperiments.blogspot.com/feeds/2764281378073970343/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://electronicexperiments.blogspot.com/2015/12/clicker-2-pic18fj.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4799470828225918099/posts/default/2764281378073970343'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4799470828225918099/posts/default/2764281378073970343'/><link rel='alternate' type='text/html' href='http://electronicexperiments.blogspot.com/2015/12/clicker-2-pic18fj.html' title='clicker 2 PIC18FJ'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4799470828225918099.post-5129848674025035838</id><published>2015-12-31T17:23:00.000+02:00</published><updated>2015-12-31T17:23:09.249+02:00</updated><title type='text'>PIC clicker</title><content type='html'>PIC clicker&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEje3i11FwN_-QASKtXmcjcCMRgSjSoO48okVAcuUtfc8QJZn1Hw6F5t1E-eJmtKU79Mtj-Ec-70WwRD0eWtlu-DqeCfnIh9mkZYrQw_ttyxjv9ajuu8_xDbLNMd7V-WMJ_7TZDZ5j4Ys6M/s1600/pic_clicker.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEje3i11FwN_-QASKtXmcjcCMRgSjSoO48okVAcuUtfc8QJZn1Hw6F5t1E-eJmtKU79Mtj-Ec-70WwRD0eWtlu-DqeCfnIh9mkZYrQw_ttyxjv9ajuu8_xDbLNMd7V-WMJ_7TZDZ5j4Ys6M/s320/pic_clicker.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
here i will ad detailed information about this nice pcb board.</content><link rel='replies' type='application/atom+xml' href='http://electronicexperiments.blogspot.com/feeds/5129848674025035838/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://electronicexperiments.blogspot.com/2015/12/pic-clicker.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4799470828225918099/posts/default/5129848674025035838'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4799470828225918099/posts/default/5129848674025035838'/><link rel='alternate' type='text/html' href='http://electronicexperiments.blogspot.com/2015/12/pic-clicker.html' title='PIC clicker'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEje3i11FwN_-QASKtXmcjcCMRgSjSoO48okVAcuUtfc8QJZn1Hw6F5t1E-eJmtKU79Mtj-Ec-70WwRD0eWtlu-DqeCfnIh9mkZYrQw_ttyxjv9ajuu8_xDbLNMd7V-WMJ_7TZDZ5j4Ys6M/s72-c/pic_clicker.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4799470828225918099.post-6382504221914943729</id><published>2014-11-11T02:39:00.000+02:00</published><updated>2018-11-15T01:01:50.581+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="7 Segment"/><category scheme="http://www.blogger.com/atom/ns#" term="7Segment"/><category scheme="http://www.blogger.com/atom/ns#" term="LED"/><category scheme="http://www.blogger.com/atom/ns#" term="Max 7219"/><category scheme="http://www.blogger.com/atom/ns#" term="max7219"/><category scheme="http://www.blogger.com/atom/ns#" term="MikroC"/><category scheme="http://www.blogger.com/atom/ns#" term="Mikroelektronika"/><category scheme="http://www.blogger.com/atom/ns#" term="PCB"/><category scheme="http://www.blogger.com/atom/ns#" term="Push Button"/><category scheme="http://www.blogger.com/atom/ns#" term="Tutorials"/><title type='text'>DS1307 [ RTC with Set Functions] &amp; DS18B20 &amp; MAX7219 [8 Digits]</title><content type='html'>Today I will show you how to display the values of RTC DS1307 and DS18B20 on six digits with seven segments driven by MAX7219. Obviously I designed a sort of menu (helped by three buttons) to be able to change the values on IC DS1307.&lt;br /&gt;
We have already explained, in previous projects, how works and communicate the IC DS1307 and MAX7219, so we will proceed further by developing electronic schematic and the software model.&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;color: red;&quot;&gt;Hardware setup:&lt;/span&gt;&lt;br /&gt;
I intend to display the clock and room temperature, on six digits with seven segment. The time will be displayed on digits for 5 seconds then for another 5 second it will be displayed the temperature and so on.&lt;br /&gt;
In my case, the clock and max7219 circuit are mounted separately on pcb.&lt;br /&gt;
Clock circuit is designed separately by me, but max7219 circuit is acquired from &lt;a href=&quot;http://www.mikroe.com/add-on-boards/display/serial-7seg-8-digit/&quot; target=&quot;_blank&quot;&gt;Mikroelektronika&lt;/a&gt;.&lt;br /&gt;
Electrical schematic is designed to include the complete circuit.&lt;br /&gt;
Physical realization is carried out on the breadboard with 2420 dots.&lt;br /&gt;
&lt;br /&gt;
&lt;div align=&quot;center&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiGgTdQHZguwze4JSCCawMcg-Bu7qmxd205jZmLHE12-X_BQOmk2PdLGqz1uj7zCGE-xeCLZJO6Mt-yNotVKN2FN_FXi1C6cpQLw2JAw_tVd658pyw0FfIEhZvgqmMspbpNwhwsa2CCQck/s1600/IMG_06.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin: 5px 2px;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;203&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiGgTdQHZguwze4JSCCawMcg-Bu7qmxd205jZmLHE12-X_BQOmk2PdLGqz1uj7zCGE-xeCLZJO6Mt-yNotVKN2FN_FXi1C6cpQLw2JAw_tVd658pyw0FfIEhZvgqmMspbpNwhwsa2CCQck/s1600/IMG_06.jpg&quot; width=&quot;360&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjkbZCfoFdzOmRlMTCzvMqueu1HTwnLfBo6X-G7A1jd-hVHptTlQY4F3HYNzBgY-rguN35p_3I879RMU-59e1bgK7l8BI-KONvoIuzN66D4rDQZXvw9Ner4NDXDF39GecIn_pePzWR3tcs/s1600/IMG_16.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin: 5px 2px;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;203&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjkbZCfoFdzOmRlMTCzvMqueu1HTwnLfBo6X-G7A1jd-hVHptTlQY4F3HYNzBgY-rguN35p_3I879RMU-59e1bgK7l8BI-KONvoIuzN66D4rDQZXvw9Ner4NDXDF39GecIn_pePzWR3tcs/s1600/IMG_16.jpg&quot; width=&quot;360&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0sIhsbPR-PmFzE2323L6UuCQvoM1qiDfmX3CDTRp1N56fllQkc3Lp0VNwWh77AI134YNfeGWIG6xWN1AusxHml6vpUhOpK1CqiID1COWEt4TiGfnhTrr6PVbEkFuqr_cd5fvhoy8pbIw/s1600/IMG_09.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin: 5px 2px;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;203&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0sIhsbPR-PmFzE2323L6UuCQvoM1qiDfmX3CDTRp1N56fllQkc3Lp0VNwWh77AI134YNfeGWIG6xWN1AusxHml6vpUhOpK1CqiID1COWEt4TiGfnhTrr6PVbEkFuqr_cd5fvhoy8pbIw/s1600/IMG_09.jpg&quot; width=&quot;360&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbR-HBgZkAnUgb1InGExTswxxw7PMSPl4DaRIqZmErZ6OhG0_8nrQ9YEkZuZpbmeavql2BT2poBGIwbwKt0kHFRpyKoKtpmcM7nqv5wFpUaWH4mgO1Ah8VjdVBdLeJrhThzpe9T2j0nng/s1600/IMG_08.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin: 5px 2px;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;203&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbR-HBgZkAnUgb1InGExTswxxw7PMSPl4DaRIqZmErZ6OhG0_8nrQ9YEkZuZpbmeavql2BT2poBGIwbwKt0kHFRpyKoKtpmcM7nqv5wFpUaWH4mgO1Ah8VjdVBdLeJrhThzpe9T2j0nng/s1600/IMG_08.jpg&quot; width=&quot;360&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgSsjV15qfGBP5pRYR_NFhqwE7V9EP3ed_lqedDC-IMJB1Van6zFo1sv_tQu2aBqgN2TbQkII3IilQUlzbJVvd59I7X0VEGKcm90S2OMV9u1epx6vElQil4h_FDmusqfkCYN_qKp3PUS0E/s1600/IMG_12.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin: 5px 2px;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;203&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgSsjV15qfGBP5pRYR_NFhqwE7V9EP3ed_lqedDC-IMJB1Van6zFo1sv_tQu2aBqgN2TbQkII3IilQUlzbJVvd59I7X0VEGKcm90S2OMV9u1epx6vElQil4h_FDmusqfkCYN_qKp3PUS0E/s1600/IMG_12.jpg&quot; width=&quot;360&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYMV6iVzpy1G_Y05fEIAyEcTSeDAGl9DixUizCzYvEcuZ4Y9Ymr-MjfUnGugboIq6Uj-aWNfGDW0mnynUkE9qiC_cK-lS_EhUFynkN_P90ONIzbkqcy74XrEvO5KnA76Z331t1fBnK59M/s1600/IMG_11.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin: 5px 2px;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;203&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYMV6iVzpy1G_Y05fEIAyEcTSeDAGl9DixUizCzYvEcuZ4Y9Ymr-MjfUnGugboIq6Uj-aWNfGDW0mnynUkE9qiC_cK-lS_EhUFynkN_P90ONIzbkqcy74XrEvO5KnA76Z331t1fBnK59M/s1600/IMG_11.jpg&quot; width=&quot;360&quot; /&gt;&lt;/a&gt;
&lt;/div&gt;
&lt;br /&gt;
Video:&lt;br /&gt;
&lt;div align=&quot;center&quot;&gt;
&lt;iframe allowfullscreen=&quot;&quot; frameborder=&quot;0&quot; height=&quot;315&quot; src=&quot;//www.youtube.com/embed/0c8XSlMueKU&quot; width=&quot;560&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;span style=&quot;color: red;&quot;&gt;Circuit Diagram:&lt;/span&gt;&lt;br /&gt;
This schematic has a low difficulty level. Microcontroller used is PIC16F876A.&lt;br /&gt;
S1 is the master reset button, R1 is the resistor of pull-up button.&lt;br /&gt;
Crystal quartz used has 8Mhz.&lt;br /&gt;
ICSP connector is used to program the microcontroller (I use PICKIT2).&lt;br /&gt;
R1, R3, R5, R10 are pull-up resistors.&lt;br /&gt;
Diode D1 has a protective role.&lt;br /&gt;
All three buttons are part of: incrementing hour, incrementing minute and enter.&lt;br /&gt;
Communication between DS1307 and circuit board &quot;breadboard&quot; is established by five pins as follow (GND, SQW, SCL, SDA, 5VDC). SQW pin is not used in this project.&lt;br /&gt;
We used a battery of 3vcc to ensure the functioning of the internal clock of DS1307 IC&#39;s, even if it is disconnected from 5 VDC.&lt;br /&gt;
Communication between max7219 circuit and microcontroller is set by pins RC0 (CS), RC1 (CLK) and RC2 (MOSI) used for software SPI protocol.&lt;br /&gt;
IF you are planning to use the &quot;Serial 7-Seg 8-Digit Board&quot; from mikroelektronika, it is necessary to set the appropriate switches on the DIP switch SW1 to the ON position:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Switch 1-  MOSI&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Switch 4 - SCK&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Switch 7 - CS&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
Port RC7 ensure communication with DS18B20 sensor.&lt;br /&gt;
The capacitors C8-C11 serve as power filtering. Preferably is that the capacitors filters to be as near by ICs.&lt;br /&gt;
&lt;br /&gt;
&lt;div align=&quot;center&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCncHLLDJoguLiQiS8co8V-hTrrj6tOTzLwCqyBeKUMNh84wlkWdtsNfmDgbDO6Q5bgIIXYdtrtILnXqmIbC4PXL4rtrFRVPpdM49Q4IlnBiJ-YVH-VzWY-G6T2C8iKimikOvLNo90ei0/s1600/Schema+Electrica+rtc&amp;max_edited_001.bmp&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;432&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCncHLLDJoguLiQiS8co8V-hTrrj6tOTzLwCqyBeKUMNh84wlkWdtsNfmDgbDO6Q5bgIIXYdtrtILnXqmIbC4PXL4rtrFRVPpdM49Q4IlnBiJ-YVH-VzWY-G6T2C8iKimikOvLNo90ei0/s1600/Schema+Electrica+rtc&amp;max_edited_001.bmp&quot; width=&quot;800&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Electronic schematic is built in &lt;a href=&quot;http://www.cadsoftusa.com/&quot;&gt;Eagle Cad&lt;/a&gt;, free version.&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;color: red;&quot;&gt;Software:&lt;/span&gt;&lt;br /&gt;
The program is written in mikroC Pro for PIC (version v6.4.0).&lt;br /&gt;
Below is my software version:&lt;br /&gt;
&lt;pre&gt;&lt;span style=&quot;color: #2582e9;&quot;&gt;/*
&#39;*******************************************************************************
&#39;  Project name: Real Time Clock [DS1307 with Set Functions] &amp;amp; DS18B20 &amp;amp; max7219
&#39;  Description:
&#39;          With this experiment we wish to succed the next task:
&#39;          Display on 6 digits with 7 segment leds, the clock and the room 
&#39;          temperature (in Celsius Degree).
&#39;          Setting the time helped by three buttons: hours, minutes and enter.
&#39;
&#39;          The sign &quot;-&quot; to the negative temperature and the hundreds for the
&#39;          temperature value are displayed just if are used.
&#39;          The time is displayed 5 second then he display the temperature value 
&#39;          in Celsius Degrees for other 5 seconds and the loop goes to infinite.
&#39;          Our clock, displays as shown below(but just in display time,
&#39;          not in set mode).
&#39;          Ex. of viewing in 7 segment display,6 digits :
&#39;          Display time, mode:             Display temperature mode:
&#39;               __________                         _________
&#39;              |__24.59.59|     ~5 sec delay      |____23.6C|
&#39;
&#39;          Hardware configuration is:
&#39;             IC ds1307 is connected with our microcontroller trough RC3=SCL,
&#39;             RC4=SDA (I2C Connections), 
&#39;             max7219 as follow:(CS at RC0, CLK at RC1 and MOSI(SDO) at RC2)
&#39;             DS18B20 is assigned to RC7,
&#39;             RB0,RB1 and RB3 are assigned to the buttons
&#39;             Buttons Menu: RB0= Enter,  (It goes to set functions or exit from set functions)
&#39;                           RB1= Minutes,
&#39;                           RB2= Hours,
&#39;
&#39;  Written by:
&#39;          Aureliu Raducu Macovei, 2014.
&#39;  Test configuration:
&#39;    MCU:                        PIC16F876A;
&#39;    Test.Board:                 WB-106 Breadboard 2420 dots;
&#39;    SW:                         MikroC PRO for PIC 2013 (version v6.4.0);
&#39;  Configuration Word:
&#39;    Oscillator:                 HS (8Mhz)on pins 9 and 10;
&#39;    Watchdog Timer:             OFF;
&#39;    Power up Timer:             OFF;
&#39;    Browun Out Detect:          ON;
&#39;    Low Voltage Program:        Disabled;
&#39;    Data EE Read Protect:       OFF;
&#39;    Flash Program Write:        Write Protection OFF;
&#39;    Background Debug:           Disabled;
&#39;    Code Protect:               OFF
&#39;*******************************************************************************
*/

// Software SPI module connections for max7219
sbit SoftSpi_SDI at RC6_bit;
sbit SoftSpi_SDO at RC2_bit;                   // MOSI
sbit SoftSpi_CLK at RC1_bit;
sbit Chip_Select at RC0_bit;

sbit SoftSpi_SDI_Direction at TRISC6_bit;
sbit SoftSpi_SDO_Direction at TRISC2_bit;
sbit SoftSpi_CLK_Direction at TRISC1_bit;
sbit Chip_Select_Direction at TrisC0_bit;
// End Software SPI module connections for max7219

const unsigned short TEMP_RESOLUTION = 12;     //This is resolution for ds18b20
unsigned temp;

unsigned sec, min1, hr, week_day, day, mn, year;
unsigned short mask(unsigned short num)
{
 switch (num)               // Define switch cases
 {
  case  0 : return 0x7E;    // 0 for those values please study the datasheet max7219
  case  1 : return 0x30;    // 1
  case  2 : return 0x6D;    // 2
  case  3 : return 0x79;    // 3
  case  4 : return 0x33;    // 4
  case  5 : return 0x5B;    // 5
  case  6 : return 0x5F;    // 6
  case  7 : return 0x70;    // 7
  case  8 : return 0x7F;    // 8
  case  9 : return 0x7B;    // 9
  case 10 : return 0x01;    // Symbol &#39;-&#39;
  case 11 : return 0x00;    // Blank
  case 12 : return 0x80;    // Comma &quot;,&quot; symbol
  case 13 : return 0x43;    // C
  } //case end
}

void max7219_init()
{
 Chip_Select = 0;           // SELECT MAX
 Soft_Spi_write(0x09);      // Decode-Mode Register
 Soft_Spi_write(0x00);      // No decode for digits 7–0
 Chip_Select = 1;           // DESELECT MAX
 
 Chip_Select = 0;           // SELECT MAX
 Soft_Spi_write(0x0A);      // Intensity Register Format
 Soft_Spi_write(0x01);      // Segment luminosity intensity set to 3/32
 Chip_Select = 1;           // DESELECT MAX

 Chip_Select = 0;           // SELECT MAX
 Soft_Spi_write(0x0B);      // Scan-Limit Register Format
 Soft_Spi_write(0x05);      // Display digits 0 1 2 3 4 5
 Chip_Select = 1;           // DESELECT MAX

 Chip_Select = 0;           // SELECT MAX
 Soft_Spi_write(0x0C);      // Shutdown Register Format
 Soft_Spi_write(0x01);      // Normal Operation
 Chip_Select = 1;           // DESELECT MAX

 Chip_Select = 0;           // SELECT MAX
 Soft_Spi_write(0x00);      // No-Op
 Soft_Spi_write(0xFF);      // No test
 Chip_Select = 1;           // DESELECT MAX
}

char minute2,hour2;
void max7219_display_set_mode(unsigned minute2, unsigned hour2)
{
 Chip_Select = 0;                                // select max7219
 Soft_Spi_write(6);                              // digit 6
 Soft_Spi_write(mask((hour2/10)%10));            // assign tens of hours
 Chip_Select = 1;                                // deselect max7219

 Chip_Select = 0;                                // select max7219
 Soft_Spi_write(5);                              // digit 5
 Soft_Spi_write ((mask(hour2%10))+ mask(12));    // assign units of hours
 Chip_Select = 1;                                // deselect max7219

 Chip_Select = 0;                                // select max7219
 Soft_Spi_write(4);                              // digit 4
 Soft_Spi_write(mask((minute2/10)%10));          // assign tens of minutes
 Chip_Select = 1;                                // deselect max7219

 Chip_Select = 0;                                // select max7219
 Soft_Spi_write(3);                              // digit 3
 Soft_Spi_write((mask(minute2%10))+mask(12));    // assign units of minutes
 Chip_Select = 1;                                // deselect max7219

 Chip_Select = 0;           // select max7219
 Soft_Spi_write(2);         // digit 2
 Soft_Spi_write (0);        // set as blank
 Chip_Select = 1;           // deselect max7219

 Chip_Select = 0;           // select max7219
 Soft_Spi_write(1);         // digit 1
 Soft_Spi_write (0);        // set as blank
 Chip_Select = 1;           // deselect max7219
}

void max7219_display (unsigned sec, unsigned min, unsigned hr)
{
 Chip_Select = 0;                                // select max7219
 Soft_Spi_write(6);                              // digit 6
 Soft_Spi_write(mask((hr/10)%10));               // assign tens of hours
 Chip_Select = 1;                                // deselect max7219

 Chip_Select = 0;                                // select max7219
 Soft_Spi_write(5);                              // digit 5
 Soft_Spi_write ((mask(hr%10))+ mask(12));       // assign units of hours
 Chip_Select = 1;                                // deselect max7219

 Chip_Select = 0;                                // select max7219
 Soft_Spi_write(4);                              // digit 4
 Soft_Spi_write(mask((min/10)%10));              // assign tens of minutes
 Chip_Select = 1;                                // deselect max7219

 Chip_Select = 0;                                // select max7219
 Soft_Spi_write(3);                              // digit 3
 Soft_Spi_write((mask(min%10))+mask(12));        // assign units of minutes
 Chip_Select = 1;                                // deselect max7219

 Chip_Select = 0;                                // select max7219
 Soft_Spi_write(2);                              // digit 2
 Soft_Spi_write (mask((sec/10)%10));             // assign tens of seconds
 Chip_Select = 1;                                // deselect max7219

 Chip_Select = 0;                                // select max7219
 Soft_Spi_write(1);                              // digit 1
 Soft_Spi_write (mask(sec%10));                  // assign units of seconds
 Chip_Select = 1;                                // deselect max7219
}

//-----Reads time and date information from RTC (DS1307)
void Read_Time(unsigned *sec, unsigned *min, unsigned *hr, unsigned *week_day, 
               unsigned *day, unsigned *mn, unsigned *year)
{
 I2C1_Start();
 I2C1_Wr(0xD0);
 I2C1_Wr(0);
 I2C1_Repeated_Start();
 I2C1_Wr(0xD1);
 *sec =I2C1_Rd(1);
 *min =I2C1_Rd(1);
 *hr =I2C1_Rd(1);
 *week_day =I2C1_Rd(1);
 *day =I2C1_Rd(1);
 *mn =I2C1_Rd(1);
 *year =I2C1_Rd(0);
 I2C1_Stop();
}//~

//-----------------start write time routine------------------
void Write_Time(unsigned minute, unsigned hour)
{
 unsigned tmp1, tmp2;
 
 tmp1 = minute / 10;           // assign values from variables
 tmp2 = minute % 10;           // assign values from variables
 minute = tmp1 * 16 + tmp2;    // assign values from variables

 tmp1 = hour / 10;             // assign values from variables
 tmp2 = hour % 10;             // assign values from variables
 hour = tmp1 * 16 + tmp2;      // assign values from variables

 I2C1_Start();          // issue start signal
 I2C1_Wr(0xD0);         // address DS1307
 I2C1_Wr(0);            // start from word at address (REG0)
 I2C1_Wr(0x80);         // write $80 to REG0. (pause counter + 0 sec)
 I2C1_Wr(minute);       // write minutes word to (REG1)
 I2C1_Wr(hour);         // write hours word (24-hours mode)(REG2)
 I2C1_Wr(0x00);         // write 6 - Saturday (REG3)
 I2C1_Wr(0x00);         // write 14 to date word (REG4)
 I2C1_Wr(0x00);         // write 5 (May) to month word (REG5)
 I2C1_Wr(0x00);         // write 01 to year word (REG6)
 I2C1_Wr(0x80);         // write SQW/Out value (REG7)
 I2C1_Stop();           // issue stop signal

 I2C1_Start();          // issue start signal
 I2C1_Wr(0xD0);         // address DS1307
 I2C1_Wr(0);            // start from word at address 0
 I2C1_Wr(0);            // write 0 to REG0 (enable counting + 0 sec)
 I2C1_Stop();           // issue stop signal
}
//-----------------end write time routine------------------

//-------------------- Formats date and time
void Transform_Time(unsigned *sec, unsigned *min, unsigned *hr, 
                    unsigned *week_day, unsigned *day, unsigned *mn, unsigned *year)
{
 *sec  =  ((*sec &amp;amp; 0x70) &amp;gt;&amp;gt; 4)*10 + (*sec &amp;amp; 0x0F);
 *min  =  ((*min &amp;amp; 0xF0) &amp;gt;&amp;gt; 4)*10 + (*min &amp;amp; 0x0F);
 *hr   =  ((*hr &amp;amp; 0x30) &amp;gt;&amp;gt; 4)*10 + (*hr &amp;amp; 0x0F);
 *week_day =(*week_day &amp;amp; 0x07);
 *day  =  ((*day &amp;amp; 0xF0) &amp;gt;&amp;gt; 4)*10 + (*day &amp;amp; 0x0F);
 *mn   =  ((*mn &amp;amp; 0x10) &amp;gt;&amp;gt; 4)*10 + (*mn &amp;amp; 0x0F);
 *year =  ((*year &amp;amp; 0xF0)&amp;gt;&amp;gt;4)*10+(*year &amp;amp; 0x0F);
}//~

void blink_min()
{
 Chip_Select = 0;               // select max7219
 Soft_Spi_write(4);             // digit 4
 Soft_Spi_write(0);             // set as blank
 Chip_Select = 1;               // deselect max7219

 Chip_Select = 0;               // select max7219
 Soft_Spi_write(3);             // digit 3
 Soft_Spi_write(0);             // set as blank
 Chip_Select = 1;

 delay_ms(50);                               // 50ms delay
 max7219_display_set_mode(minute2,hour2);    // display those values
 delay_ms(50);                               // 50ms delay
}
void blink_hr()
{
 Chip_Select = 0;               // select max7219
 Soft_Spi_write(6);             // digit 6
 Soft_Spi_write(0);             // set as blank
 Chip_Select = 1;               // deselect max7219

 Chip_Select = 0;               // select max7219
 Soft_Spi_write(5);             // digit 5
 Soft_Spi_write(0);             // set as blank
 Chip_Select = 1;               // deselect max7219

 delay_ms(50);                               // 50ms delay
 max7219_display_set_mode(minute2,hour2);    // display those values
 delay_ms(50);                               // 50ms delay
}

char setuptime=0;
unsigned count=0;
void Press_Switch()
{
 if(button(&amp;amp;portb,0,1,0))        // check if button RB0 is pressed
 {
  Delay_ms(200);
  setuptime = !setuptime;        // switch that value;

  if(setuptime)
  {
  hour2=hr;
  minute2=min1;
  max7219_display_set_mode(minute2,hour2);   // display those values
  }
  else
  {
   hr=hour2;
   min1=minute2;
   Write_Time(min1,hr);
   max7219_display_set_mode(minute2,hour2);
  }
 }
 
 if(Setuptime)
 {
  if(button(&amp;amp;portb,1,1,0))
  {
   Delay_ms(150);
   minute2++;
   if(minute2 &amp;gt; 59)
   minute2=0;
   blink_min();
   }
  if(button(&amp;amp;portb,2,1,0))
  {
   Delay_ms(150);
   hour2++;
   if(hour2 &amp;gt; 23)
   hour2=0;
   blink_hr();
   }
  }
}

// Starts ds18b20 declarations
void ds18b20(unsigned int temp2write)
{
 const unsigned short RES_SHIFT = TEMP_RESOLUTION - 8;
 unsigned temp_whole;
 unsigned int temp_fraction;
 unsigned short isNegative = 0x00;
 // Check if temperature is negative
 if (temp2write &amp;amp; 0x8000)
 {
  temp2write = ~temp2write + 1;
  isNegative = 1;
  }
 // Extract temp_whole
 temp_whole = temp2write &amp;gt;&amp;gt; RES_SHIFT ;

 // Extract temp_fraction and convert it to unsigned int
 temp_fraction  = temp2write &amp;lt;&amp;lt; (4-RES_SHIFT);
 temp_fraction &amp;amp;= 0x000F;
 temp_fraction *= 625;          // 625 for ds18b20 and 5000 for ds1820;

 Chip_Select = 0;               // select max7219
 Soft_Spi_write(1);             // digit 1
 Soft_Spi_write(mask(13));      // write C symbol
 Chip_Select = 1;               // deselect max7219

 Chip_Select = 0;                                // select max7219
 Soft_Spi_write(2);                              // Set digit number 3
 Soft_Spi_write(mask(temp_fraction /1000));      // assigne as fraction
 Chip_Select = 1;                                // deselect max7219

 Chip_Select = 0;                                // select max7219
 Soft_Spi_write(3);                              // Set digit number 3
 Soft_Spi_write((mask(temp_whole%10))+mask(12)); // Assigne as ones
 Chip_Select = 1;                                // deselect max7219

 Chip_Select = 0;                                // select max7219
 Soft_Spi_write(4);                              // Set digit number 4
 Soft_Spi_write (mask((temp_whole/10)%10));      // Assigne as tens
 Chip_Select = 1;                                // deselect max7219
  
 if (isNegative == 1)
 {
  Chip_Select = 0;               // select max7219
  Soft_Spi_write(5);             // Set digit number 5
  Soft_Spi_write(mask(10));      // Assigne as symbol &quot;-&quot;
  Chip_Select = 1;               // deselect max7219
  }
 else
 {
  if(isNegative ==0 &amp;amp;&amp;amp; temp_whole/100==0)
  {
   Chip_Select = 0;               // select max7219
   Soft_Spi_write(5);             // Set digit number 5
   Soft_Spi_write(mask(11));      // Assign as blank
   Chip_Select = 1;               // deselect max7219
   }
  else
  {
   Chip_Select = 0;                         // select max7219
   Soft_Spi_write(5);                       // Set digit number 5
   Soft_Spi_write(mask(temp_whole/100));    // Assign the hundreds
   Chip_Select = 1;                         // deselect max7219
   }
  }
  
 Chip_Select = 0;                 // select max7219
 Soft_Spi_write(6);               // Set digit number 6
 Soft_Spi_write(0);               // Assign value 0
 Chip_Select = 1;                 // deselect max7219
}// End ds18b20 declarations

void interrupt()
{
 if(setuptime)
 count=0;
 else
 count++;                  // Interrupt causes count to be incremented by 1
 TMR0 = 0;                 // Timer TMR0 is returned its initial value
 INTCON = 0x20;            // Bit T0IE is set, bit T0IF is cleared
}

void main() 
{
 CMCON  |= 7;                  // Disable Comparators
 OPTION_REG = 0x84;            // Prescaler Rate Selected at 1:32;
 TMR0 = 0;                     // Reset timer;
 INTCON = 0xA0;                // Disable interrupt PEIE,INTE,RBIE,T0IE

 Chip_Select_Direction = 0;    // Set RC0 pin as output
 Soft_Spi_init();              // Initialize software SPI module
 max7219_init();               // initialize  max7219
 I2C1_Init(100000);            // initialize I2C

 while (1)                     // and here, our while loope
 {
  Press_Switch();
     
  if(!setuptime)
  {
   if(count&amp;lt;=1400)                    // ~ 5 seconds
   {
    Read_Time(&amp;amp;sec,&amp;amp;min1,&amp;amp;hr,&amp;amp;week_day,&amp;amp;day,&amp;amp;mn,&amp;amp;year);      // read time from RTC(DS1307)
    Transform_Time(&amp;amp;sec,&amp;amp;min1,&amp;amp;hr,&amp;amp;week_day,&amp;amp;day,&amp;amp;mn,&amp;amp;year); // format date and time
    max7219_display(sec,min1, hr);
    }
   else
   {
    if(count&amp;gt;1400)                     // ~ 5 seconds
    {
     //Perform temperature reading
     Ow_Reset(&amp;amp;PORTC, 7);          // Onewire reset signal
     Ow_Write(&amp;amp;PORTC, 7, 0xCC);    // Issue command SKIP_ROM
     Ow_Write(&amp;amp;PORTC, 7, 0x44);    // Issue command CONVERT_T
     
     Ow_Reset(&amp;amp;PORTC, 7);
     Ow_Write(&amp;amp;PORTC, 7, 0xCC);    // Issue command SKIP_ROM
     Ow_Write(&amp;amp;PORTC, 7, 0xBE);    // Issue command READ_SCRATCHPAD

     temp =  Ow_Read(&amp;amp;PORTC, 7);   // Next Read Temperature and Read Byte 0 from Scratchpad
     // Then read Byte 1 from Scratchpad and shift 8 bit left and add the Byte 0
     temp = (Ow_Read(&amp;amp;PORTC, 7) &amp;lt;&amp;lt; 8) + temp;
     ds18b20(temp);                  //Format and display result on digits.
     }
    }
   if(count&amp;gt;2800)
   count = 0;
   }
  }
}&lt;/span&gt;&lt;/pre&gt;
</content><link rel='replies' type='application/atom+xml' href='http://electronicexperiments.blogspot.com/feeds/6382504221914943729/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://electronicexperiments.blogspot.com/2014/11/ds1307-rtc-with-set-functions-ds18b20.html#comment-form' title='10 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4799470828225918099/posts/default/6382504221914943729'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4799470828225918099/posts/default/6382504221914943729'/><link rel='alternate' type='text/html' href='http://electronicexperiments.blogspot.com/2014/11/ds1307-rtc-with-set-functions-ds18b20.html' title='DS1307 [ RTC with Set Functions] &amp; DS18B20 &amp; MAX7219 [8 Digits]'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiGgTdQHZguwze4JSCCawMcg-Bu7qmxd205jZmLHE12-X_BQOmk2PdLGqz1uj7zCGE-xeCLZJO6Mt-yNotVKN2FN_FXi1C6cpQLw2JAw_tVd658pyw0FfIEhZvgqmMspbpNwhwsa2CCQck/s72-c/IMG_06.jpg" height="72" width="72"/><thr:total>10</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4799470828225918099.post-4255294565005974993</id><published>2014-07-23T19:41:00.001+03:00</published><updated>2018-11-15T01:04:42.675+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="EasyPic v7"/><category scheme="http://www.blogger.com/atom/ns#" term="GL865"/><category scheme="http://www.blogger.com/atom/ns#" term="GSM"/><category scheme="http://www.blogger.com/atom/ns#" term="GSM Click"/><category scheme="http://www.blogger.com/atom/ns#" term="GSM module"/><category scheme="http://www.blogger.com/atom/ns#" term="MikroC"/><category scheme="http://www.blogger.com/atom/ns#" term="Mikroelektronika"/><category scheme="http://www.blogger.com/atom/ns#" term="Telit"/><category scheme="http://www.blogger.com/atom/ns#" term="Telit GL865"/><category scheme="http://www.blogger.com/atom/ns#" term="Tutorials"/><category scheme="http://www.blogger.com/atom/ns#" term="Warning Action via SMS"/><title type='text'>GSM Click (Warning Action via SMS)</title><content type='html'>OK Folks, we will continue our experiments with this GSM module, and we will show how we can send an warning message.
Obviously we will create the warning situation trough a button, but of course it can be changed with everything else for example a couple of movement sensors, etc.
&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;color: red;&quot;&gt;Hardware setup:&lt;/span&gt;&lt;br /&gt;
After we spoke &quot;the given situation&quot; is set by a button set on RD7. The info led set on RB7 show the situation as follow:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;After initialize, it flash for 2 seconds.&lt;/li&gt;
&lt;li&gt;After the message is sent, it flashing ten times.&lt;/li&gt;
&lt;/ul&gt;
Some adjustments are needed on Easypic v7 motherboard to establish our connections. 
The adjustments are as follow:
&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;Turn on portB LEDs on SW3 (SW3.2).&lt;/li&gt;
&lt;li&gt;Place GSM click board into mikroBUS socket 1.&lt;/li&gt;
&lt;li&gt;Place power selection jumper (J5) into 3.3V position.&lt;/li&gt;
&lt;/ol&gt;
&lt;div align=&quot;center&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7tk5HTha91RLPCrcyjL_og90ZlYsh-DS8bSqZrhfGdso8uOlNkopwtoHGWLeNqGFk49MHU6Ji1rB50_e0wZtECrEBt02LEJlqKqh4bZoiFK7BhOumStCuGn3jJh05C9ZWSPXVc4P_yho/s1600/DSC_0537.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin: 5px 2px;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;240&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7tk5HTha91RLPCrcyjL_og90ZlYsh-DS8bSqZrhfGdso8uOlNkopwtoHGWLeNqGFk49MHU6Ji1rB50_e0wZtECrEBt02LEJlqKqh4bZoiFK7BhOumStCuGn3jJh05C9ZWSPXVc4P_yho/s1600/DSC_0537.JPG&quot; width=&quot;360&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVcVce2d-x5v3PASsoUYKsVOQipt73hPM-7lSgZUcgIprJQsi7aJUAWQkLhitdZTSJtdzPlqtJb1W-1JzPtwM9Ekcu8NSnY9Yfu8YhK2S97y_LGJRQDJ2gFjrrggZBN433zJCyjPu342s/s1600/DSC_0555.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin: 5px 2px;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;240&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVcVce2d-x5v3PASsoUYKsVOQipt73hPM-7lSgZUcgIprJQsi7aJUAWQkLhitdZTSJtdzPlqtJb1W-1JzPtwM9Ekcu8NSnY9Yfu8YhK2S97y_LGJRQDJ2gFjrrggZBN433zJCyjPu342s/s1600/DSC_0555.jpg&quot; width=&quot;360&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEidcBTLGMjpHKT-qHwygox9iTL9tBQUABPp3MUcifi4M4eMQX87EbH6U0hx5XurJCBbwfWZazY_u02UpZUHluJ2EoD7AxTgDLQnko5cq3WYLnDIqCPqo4NvnDQ_tHBcmsma97NF29y5u2I/s1600/IMG_01.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin: 5px 2px;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;240&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEidcBTLGMjpHKT-qHwygox9iTL9tBQUABPp3MUcifi4M4eMQX87EbH6U0hx5XurJCBbwfWZazY_u02UpZUHluJ2EoD7AxTgDLQnko5cq3WYLnDIqCPqo4NvnDQ_tHBcmsma97NF29y5u2I/s1600/IMG_01.jpg&quot; width=&quot;360&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgPTsfxFooRA05m5k1PcUdQUb-Snp7WWfpXiEDlumNvQKkguru8kGnaBmPAixnfNgq026lAs8KdmuiGPHlrTM4xH1mB-53SOO6rRZTENYl_kq9D51VZUUzgaGIY8HQsxAzXRdFu5IX8_NQ/s1600/IMG_04.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin: 5px 2px;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;240&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgPTsfxFooRA05m5k1PcUdQUb-Snp7WWfpXiEDlumNvQKkguru8kGnaBmPAixnfNgq026lAs8KdmuiGPHlrTM4xH1mB-53SOO6rRZTENYl_kq9D51VZUUzgaGIY8HQsxAzXRdFu5IX8_NQ/s1600/IMG_04.jpg&quot; width=&quot;360&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Video:
&lt;br /&gt;
&lt;div align=&quot;center&quot;&gt;
&lt;iframe allowfullscreen=&quot;&quot; frameborder=&quot;0&quot; height=&quot;315&quot; src=&quot;//www.youtube.com/embed/3Ed7oNsjv1c&quot; width=&quot;560&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;br /&gt;
For hardware details, please study the &lt;a href=&quot;http://www.mikroe.com/downloads/get/1709/easypic_v7_schematic_v104c.pdf&quot; target=&quot;_blank&quot;&gt;EasyPic v7&lt;/a&gt; and &lt;a href=&quot;http://www.mikroe.com/downloads/get/1921/gsm_click_manual_v101b.pdf&quot; target=&quot;_blank&quot;&gt;Telit GL865&lt;/a&gt; datasheets.
&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;color: red;&quot;&gt;Software:&lt;/span&gt;&lt;br /&gt;
The program is written in mikroC Pro for PIC (version v6.4.0).&lt;br /&gt;
Below is my software version:
&lt;br /&gt;
&lt;br /&gt;
&lt;u&gt;&lt;i&gt;warning action.c&lt;/i&gt;&lt;/u&gt;&lt;br /&gt;
&lt;pre&gt;&lt;span style=&quot;color: #2582e9;&quot;&gt;/*
 * Project name:
     Warning Action via SMS.
 * Copyright:
     (c) Macovei Aureliu Raducu, 2014.
 * Revision History:
     1.1
 * Description:
     This is an Warning Action via SMS project who are able to send a 
     warning message for a given situation.
     In this experiment &quot;the given situation&quot; is one button set on RD7.
     The info led set on RB7 show the situation as follow:
         - After initialize, it flash for 2 seconds.
         - After the message is sent, it flashing ten times.
 * Test configuration:
     MCU:             PIC18F45k22
                      http://ww1.microchip.com/downloads/en/DeviceDoc/41412F.pdf
     Ddev.board:       EasyPIC7
                      http://www.mikroe.com/easypic/
     Oscillator:      HS-PLL 32.0000 MHz, 8.0000 MHz Crystal
     Ext. Modules:    GSM click
                      http://www.mikroe.com/click/gsm/
     SW:              mikroC PRO for PIC
                      http://www.mikroe.com/mikroc/pic/
 * NOTES:
     Adjust the number to which the SMS will be sent and recompile the project
     now have HEX file ready for programming.
*/
// Configure phone number on which the SMS warning will be sent
// Use international code + your phone number
char phoneNumber1[] = &quot;your number1&quot;;    // This is the first number
char phoneNumber2[] = &quot;your number2&quot;;    // This is the second number

#include &quot;Telit_GL865.h&quot;

// Pin definitions
sbit LD1 at LATB7_bit;                    // Set LED1 at port RB7
sbit LD1_Direction at TRISB7_bit;         // Set LED1 at port RB7

sbit T1 at RD7_bit;                       // Set Button at port RD7.
sbit T1_Direction at TRISD7_bit;          // Set Button at port RD7
// Pin definitions

void Delay_LD(){
  Delay_ms(100);                          // Led Delay 100ms
}

// Simple LED action indicating a button press
void Blink(){
  LD1 = 1;
  Delay_LD();
  LD1 = 0;
  Delay_LD();
  LD1 = 1;
  Delay_LD();
  LD1 = 0;
}

void check_status(){
 LD1 = 1;
 delay_ms(2000);           // Add 2s delay
 LD1 = 0;
}

void MCU_Init()
{
  ANSELA = 0;              // Set all ports as digital
  ANSELB = 0;
  ANSELC = 0;
  ANSELD = 0;
  ANSELE = 0;              // Set all ports as digital

  // GSM definitions
  PWRMON_Direction = 1;
  RST = 0;
  RST_Direction = 0;
  // GSM definitions

  // Button on RD7;
  T1_Direction = 1;             // Button pins are set as input
  // Button on RD7;

  // Led Indicator set on RB7
  LD1 = 0;                      // Turn OFF the LED
  LD1_Direction = 0;            // Set direction for LEDS
  // Led Indicator set on RB7

  UART1_Init(9600);       // Using default baud rate 9600
  Delay_ms(200);          // Wait a while till the GSM network is configured
}

// main function
void main() {
  MCU_Init();                   // Initialize MCU pins and modules
  if (GSM_Init() == 0)          // Initialize GSM module, if AT is received LED1 is ON
  check_status();               // Shown by LD1

  while(1){                     // Endless loop
  if (T1 == 1){                 // With Button1 we activate &quot;the given situation&quot;
    SendSMS(phoneNumber1);      // First things first, send the SMS
    delay_ms(3500);
    SendSMS(phoneNumber2);
    Blink();Blink();            // Blink ten times, after message sent
    Blink();Blink();
    Blink();
    }
  }
}&lt;/span&gt;&lt;/pre&gt;
&lt;br /&gt;
&lt;u&gt;&lt;i&gt;telite_GL865.c&lt;/i&gt;&lt;/u&gt;
&lt;br /&gt;
&lt;pre&gt;&lt;span style=&quot;color: #2582e9;&quot;&gt;#include &quot;Telit_GL865.h&quot;

void GSMcmd(char *ch)                 // GSM commands
{
 while(*ch)
 if(UART1_Tx_Idle() == 1)
 UART1_Write(*ch++);
 UART1_Write(0x0D);                  // Send CR - command terminate character
}

char GSM_Init(){
  char cmdTO = 0, readTO = 0;         // TimeOut counters
  char gsmRes[26]={0}, resCnt = 0;    // Response from GSM module
  while(PWRMON != 0){};               // Wait for POWER to be generated by the GSM module
  Delay_ms(3500);
  while(cmdTO++ &amp;lt; 5){                 // Check the communication by sending AT command for few times
    UART1_Read();
    GSMcmd(&quot;AT&quot;);                     // AT commamd.
    while(readTO++ &amp;lt; 10){
      Delay_us(300);                  // 1/9600 * 3 = 312.5us takse a UART HW buffer to fill up.
      while(UART1_Data_Ready()){      // Place the received bytes to buffer array(gsamRes[])
        readTO = 0;
        gsmRes[resCnt++] = UART1_Read();
        gsmRes[resCnt] = 0;
        if (resCnt == 25){
         resCnt = 0;
        }
      }
    }
    readTO = 0;
    if (strstr(gsmRes,&quot;AT\r\r\nOK\r\n&quot;)){   // Check for occurrence of expected string
      GSMcmd(&quot;ATE1&quot;);                       // Few more GSM module configuration commands.
      GSMcmd(&quot;AT+CMGF=1&quot;);                  // Select Text Mode.
      GSMcmd(&quot;AT#GPIO=5,0,2&quot;);              // Set GPIO5 pin as RFTXMON OUTPUT
      return 0;
    }
  }
  return 1;
}

void SMSbegin(char *phoneNo){               // Sending an SMS requires three easy steps
                                            // 1. Begin with SMS command  +CMGS
  UART1_Write_Text(&quot;AT+CMGS=\&quot;&quot;);           // AT+CMGS=&quot;+39xxxxxxxxxx&quot;[CR]
  UART1_Write_Text(phoneNo);
  GSMcmd(&quot;\&quot;&quot;);
}

void SMSwrite(char *text){
  UART1_Write_Text(text);                   // 2. After SMS command, SMS text is expected
}

void SMSsend(){
  GSMcmd(&quot;\x1A&quot;);     // 3. At the end CTRL + Z is sent as terminating character
}
// Function sends an SMS to predefined number with predefined text(warning)
void SendSMS(char *phone){
  SMSbegin(phone);
  Delay_ms(100);
  SMSwrite(&quot;WARNING!!\r\n&quot;);                            // This is our message line1
  SMSwrite(&quot;We have a situation here!\r\n&quot;);            // This is our message line2
  SMSwrite(&quot;(someone somehow has press the button)&quot;);   // This is our message line3
  SMSsend();
}&lt;/span&gt;&lt;/pre&gt;
&lt;br /&gt;
&lt;u&gt;&lt;i&gt;telite_GL865.h&lt;/i&gt;&lt;/u&gt;
&lt;br /&gt;
&lt;pre&gt;&lt;span style=&quot;color: #2582e9;&quot;&gt;// GSM definitions
sbit PWRMON           at PORTA.B2;
sbit PWRMON_Direction at TRISA2_bit;
sbit RST              at LATE1_bit;
sbit RST_Direction    at TRISE1_bit;
// GSM definitions

char GSM_Init();
void SendSMS(char *phone);&lt;/span&gt;&lt;/pre&gt;
</content><link rel='replies' type='application/atom+xml' href='http://electronicexperiments.blogspot.com/feeds/4255294565005974993/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://electronicexperiments.blogspot.com/2014/07/gsm-click-warning-action-via-sms.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4799470828225918099/posts/default/4255294565005974993'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4799470828225918099/posts/default/4255294565005974993'/><link rel='alternate' type='text/html' href='http://electronicexperiments.blogspot.com/2014/07/gsm-click-warning-action-via-sms.html' title='GSM Click (Warning Action via SMS)'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7tk5HTha91RLPCrcyjL_og90ZlYsh-DS8bSqZrhfGdso8uOlNkopwtoHGWLeNqGFk49MHU6Ji1rB50_e0wZtECrEBt02LEJlqKqh4bZoiFK7BhOumStCuGn3jJh05C9ZWSPXVc4P_yho/s72-c/DSC_0537.JPG" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4799470828225918099.post-6406675374087878122</id><published>2014-07-21T21:01:00.003+03:00</published><updated>2018-11-15T01:05:11.622+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="EasyPic v7"/><category scheme="http://www.blogger.com/atom/ns#" term="GL865"/><category scheme="http://www.blogger.com/atom/ns#" term="GSM"/><category scheme="http://www.blogger.com/atom/ns#" term="GSM Click"/><category scheme="http://www.blogger.com/atom/ns#" term="GSM module"/><category scheme="http://www.blogger.com/atom/ns#" term="MikroC"/><category scheme="http://www.blogger.com/atom/ns#" term="Mikroelektronika"/><category scheme="http://www.blogger.com/atom/ns#" term="Telit"/><category scheme="http://www.blogger.com/atom/ns#" term="Telit GL865"/><category scheme="http://www.blogger.com/atom/ns#" term="Tutorials"/><category scheme="http://www.blogger.com/atom/ns#" term="Warning Action via SMS"/><title type='text'>GSM Click (Temperature &amp; Controll via SMS)</title><content type='html'>Today I will share with you an experiment made with the module Telit GL856-Quad wich is mounted on a pcb board called &quot;&lt;a href=&quot;http://www.mikroe.com/click/gsm/&quot; target=&quot;_blank&quot;&gt;GSM Click Board&lt;/a&gt;&quot; designed by &lt;a href=&quot;http://www.mikroe.com/&quot; target=&quot;_blank&quot;&gt;Mikroelektronika&lt;/a&gt;. The GSM click board is attached to the &lt;a href=&quot;http://www.mikroe.com/easypic/&quot; target=&quot;_blank&quot;&gt;EasyPIC v7&lt;/a&gt; motherboard trough &lt;a href=&quot;http://www.mikroe.com/downloads/get/1737/mikrobus_specification.pdf&quot; target=&quot;_blank&quot;&gt;mikroBUS™ host connector&lt;/a&gt;, making our hardware platform.
&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEirfDIxk9PaxXsRKAYcZ7JsDQKnDcNk91vAS5ac76hEGwd_sNZoPPVrAeEGFbDnOoGq4uXbzWG8mIIvvEAJ8JnNzCvkiu9p7Li31YUAi2_Q9xvX82LblL0JEOhB0Lek5KKKxT8yvCS4tkU/s1600/GL865-Quad.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;129&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEirfDIxk9PaxXsRKAYcZ7JsDQKnDcNk91vAS5ac76hEGwd_sNZoPPVrAeEGFbDnOoGq4uXbzWG8mIIvvEAJ8JnNzCvkiu9p7Li31YUAi2_Q9xvX82LblL0JEOhB0Lek5KKKxT8yvCS4tkU/s1600/GL865-Quad.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;
&lt;br /&gt;
&lt;div style=&quot;font-family: &amp;quot;droid&amp;quot; serif; font-size: 12px; text-align: center;&quot;&gt;
Telit GL865 Module.&lt;/div&gt;
&lt;/div&gt;
&lt;br /&gt;
Features:
&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;The Telit GL865-Quad module family can be controlled via the serial interface using the standard AT commands.&amp;nbsp;&lt;/li&gt;
&lt;li style=&quot;margin: 0px; padding: 0px;&quot;&gt;Ultra Compact; GPRS Class 10; LCC Package&lt;/li&gt;
&lt;li style=&quot;margin: 0px; padding: 0px;&quot;&gt;Quad Band GSM/GPRS 850/900/1800/1900MHz&lt;/li&gt;
&lt;li&gt;Embedded TCP/IP Stack&lt;/li&gt;
&lt;li&gt;Supply voltage range: 3.22 - 4.5V DC (3.8V DC recommended)&lt;/li&gt;
&lt;li&gt;Power consumption (typical values): Power off: &amp;lt;5 uA&lt;/li&gt;
&lt;li&gt;Idle (registered, power saving): 1.5 mA @ DRX=9&lt;/li&gt;
&lt;li&gt;Dedicated mode: 230mA @ max power level&lt;/li&gt;
&lt;li&gt;GPRS class 10: 360 mA @ max power level&lt;/li&gt;
&lt;li&gt;Sensitivity: 108 dBm (typ.) @ 850/900MHz; 106 dBm (typ.) @ 1800/1900MHz.&lt;/li&gt;
&lt;/ol&gt;
As can be seen from it&#39;s datasheet, the communications are achieved in UART mode (TX,RX), with a Baud rate from 300 to 115,200bps.
&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;color: red;&quot;&gt;Hardware setup:&lt;/span&gt;
&lt;br /&gt;
In example, &quot;FAN1ON&quot; command turns ON the output on RD0, &quot;FAN2OFF&quot; turns OFF the output on RD1. In this experiment we used two leds instead fans (just to prove the output commands.)&lt;br /&gt;
PORT RD0 and RD1 leads two digital output and RA0 one analog input.&lt;br /&gt;
Some adjustments are needed on Easypic v7 motherboard to establish our connections:&lt;br /&gt;
The adjustments are as follow:&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;Turn on portD LEDs on SW3 (SW3.4).&lt;/li&gt;
&lt;li&gt;Place GSM click board into mikroBUS socket 1.&lt;/li&gt;
&lt;li&gt;Place power selection jumper (J5) into 3.3V position.&lt;/li&gt;
&lt;/ol&gt;
&lt;br /&gt;
&lt;div align=&quot;center&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1b5whYV85o07aHMRdE6gqhyxYWJrPuBZ7mu2c7VVYjV6uFsksnCzvm-LAjBqabEhINgYILiaXKSw1fF13wKvHv6kp6eooKlRZd5eDzKjndcxaWlZvdvX1yo58T92dds-i2wYHC-sauzU/s1600/IMG_01.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin: 5px 2px;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;240&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1b5whYV85o07aHMRdE6gqhyxYWJrPuBZ7mu2c7VVYjV6uFsksnCzvm-LAjBqabEhINgYILiaXKSw1fF13wKvHv6kp6eooKlRZd5eDzKjndcxaWlZvdvX1yo58T92dds-i2wYHC-sauzU/s1600/IMG_01.JPG&quot; width=&quot;360&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSiFh9PY7o1DURssBwE3JIhK97uyD4OwWqI4Ld_bXpQqoXGJVZuxxaeC8t6xHFUSx4tLmOAa1eCcuOenFP3ELHuower8_YthDTrYRrMINB03TTHbhx035DG2_Hi2u3rdymPmt6LrUgNeU/s1600/IMG_02.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin: 5px 2px;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;240&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSiFh9PY7o1DURssBwE3JIhK97uyD4OwWqI4Ld_bXpQqoXGJVZuxxaeC8t6xHFUSx4tLmOAa1eCcuOenFP3ELHuower8_YthDTrYRrMINB03TTHbhx035DG2_Hi2u3rdymPmt6LrUgNeU/s1600/IMG_02.JPG&quot; width=&quot;360&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-yV_M_vM8stNRjZ4VKBVHIRLE2193maWKl-rwHB4sEDG2MgT9sUTGetOC-upJkQ3k95_TpvpKkxU_KexNCowHpwSGpVL8MD3JfyR5o9pPInY4V3_lfzlYRoOOEaMNruw9rXDd4aTBE-M/s1600/IMG_03.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin: 5px 2px;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;240&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-yV_M_vM8stNRjZ4VKBVHIRLE2193maWKl-rwHB4sEDG2MgT9sUTGetOC-upJkQ3k95_TpvpKkxU_KexNCowHpwSGpVL8MD3JfyR5o9pPInY4V3_lfzlYRoOOEaMNruw9rXDd4aTBE-M/s1600/IMG_03.JPG&quot; width=&quot;360&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEibIfoKZRwM3juaS5VaKJgwfQ5XzXaxsMi03DBWu2qOKmammSc-2MstGNlGfbBp2suSzEc-mocHXS5o4dejunBt8V5de7hRhb-nxCgni97u-SDXxHDOVgxQheezsIuyUBTNQZuPK7Vzflc/s1600/IMG_04.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin: 5px 2px;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;240&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEibIfoKZRwM3juaS5VaKJgwfQ5XzXaxsMi03DBWu2qOKmammSc-2MstGNlGfbBp2suSzEc-mocHXS5o4dejunBt8V5de7hRhb-nxCgni97u-SDXxHDOVgxQheezsIuyUBTNQZuPK7Vzflc/s1600/IMG_04.JPG&quot; width=&quot;360&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6YkhrKIJYzd_a4scAbRAaYhN0oJWatDPKhcoiv3XDF4pktYAHjF9kbrGL7-R9bVsfdRFlsGbtpKCCOOHi_sDh2CQH1YaqhgZGBfFq23-egs6Wi_BeeM1dQ2hhk2Jd63g3VlArhp2oEuE/s1600/IMG_07.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin: 5px 2px;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;540&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6YkhrKIJYzd_a4scAbRAaYhN0oJWatDPKhcoiv3XDF4pktYAHjF9kbrGL7-R9bVsfdRFlsGbtpKCCOOHi_sDh2CQH1YaqhgZGBfFq23-egs6Wi_BeeM1dQ2hhk2Jd63g3VlArhp2oEuE/s1600/IMG_07.JPG&quot; width=&quot;360&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0_JuC176Oni_YTfc1RiUdmAgVJMCq8Y_XlGWU4p8_8FPIOC9u5sLoAAPKjHl83v6NIxoH0bP1f9tYUm9Y0cG8vjDOq-muwCx6WJLYiKycF4mX_d_zyrxlN8vWwFd-2LjedDtHtgqiOME/s1600/IMG_08.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin: 5px 2px;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;540&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0_JuC176Oni_YTfc1RiUdmAgVJMCq8Y_XlGWU4p8_8FPIOC9u5sLoAAPKjHl83v6NIxoH0bP1f9tYUm9Y0cG8vjDOq-muwCx6WJLYiKycF4mX_d_zyrxlN8vWwFd-2LjedDtHtgqiOME/s1600/IMG_08.JPG&quot; width=&quot;360&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgiqnJT7motKdVMsbc6wgyhVHNwLnZXlmMTpto8e5_u8VlpFBsc_xNh6I_QxHyolV6yj_y2teoGhkfgmBTKnictayHIHBTVPcK9w9T2yY3KShjIeHn_iSMWBpnfm8_ZGPDZh-lndsJ1qFg/s1600/IMG_05.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin: 5px 2px;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;240&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgiqnJT7motKdVMsbc6wgyhVHNwLnZXlmMTpto8e5_u8VlpFBsc_xNh6I_QxHyolV6yj_y2teoGhkfgmBTKnictayHIHBTVPcK9w9T2yY3KShjIeHn_iSMWBpnfm8_ZGPDZh-lndsJ1qFg/s1600/IMG_05.JPG&quot; width=&quot;360&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwif4Ge2bwsaV0N-uHL14B5cIvxYdnzubLTQBPgEVfxGqgOlqsZOmDzTB57mW9YwPGyvvGqUx_t-3qd7p-2jBysQ3hGl_4ROZMCSMSudB12VA_I1vV1YjgyLgangPVlp80LadXJHHVRtM/s1600/IMG_06.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin: 5px 2px;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;240&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwif4Ge2bwsaV0N-uHL14B5cIvxYdnzubLTQBPgEVfxGqgOlqsZOmDzTB57mW9YwPGyvvGqUx_t-3qd7p-2jBysQ3hGl_4ROZMCSMSudB12VA_I1vV1YjgyLgangPVlp80LadXJHHVRtM/s1600/IMG_06.JPG&quot; width=&quot;360&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Video:&lt;br /&gt;
&lt;div align=&quot;center&quot;&gt;
&lt;iframe allowfullscreen=&quot;&quot; frameborder=&quot;0&quot; height=&quot;315&quot; src=&quot;//www.youtube.com/embed/LNW_hUZj1y0&quot; width=&quot;560&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;br /&gt;
Pin Configurations.&lt;br /&gt;
&lt;div align=&quot;center&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgU3SltrU3OVOXXMtVFyLOY9rLpGgsKWWxcQB182z95-Ip0td2Ep91kGofXe_CfNa3RXMs3IBiEVMuU9N_rm6Nd2ohmyzICnGYjWI2Y6Zqlhof42TEantv50a0yCmeEk_mbS8LsjQbLz2s/s1600/21-Jul-14+20-41-06.png&quot; imageanchor=&quot;1&quot; style=&quot;margin: 5px 2px;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;200&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgU3SltrU3OVOXXMtVFyLOY9rLpGgsKWWxcQB182z95-Ip0td2Ep91kGofXe_CfNa3RXMs3IBiEVMuU9N_rm6Nd2ohmyzICnGYjWI2Y6Zqlhof42TEantv50a0yCmeEk_mbS8LsjQbLz2s/s1600/21-Jul-14+20-41-06.png&quot; width=&quot;200&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
For hardware details, please study the &lt;a href=&quot;http://www.mikroe.com/downloads/get/1709/easypic_v7_schematic_v104c.pdf&quot; target=&quot;_blank&quot;&gt;EasyPic v7&lt;/a&gt; and &lt;a href=&quot;http://www.mikroe.com/downloads/get/1921/gsm_click_manual_v101b.pdf&quot; target=&quot;_blank&quot;&gt;Telit GL865&lt;/a&gt; datasheets.
&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;color: red;&quot;&gt;Software:&lt;/span&gt;&lt;br /&gt;
The program is written in mikroC Pro for PIC (version v6.0.0).&lt;br /&gt;
Below is my software version:&lt;br /&gt;
&lt;pre&gt;&lt;span style=&quot;color: #2582e9;&quot;&gt;/*
 * Project name:
    GSM Click (Temperature &amp;amp; Controll via SMS).
 * Copyright:
     Macovei Aureliu Raducu, 2014.
 * Description:
     Program uses GSM module GL865 for sending and receiving SMS.
     The scenario of this experiment is as follows:
     User can interrogate the EasyPIC v7 development board via SMS, and receive
     the status situation of the motherboard.
     Port RD0 and RD1 are used to control two Fans and port RA0 is used to 
     measure the temperature of LM35 sensor.
     As a bonus the temperature is displayed in both format, Celsius and Fahrenheit.
 * Test configuration:
     MCU:             PIC18F45K22
                      http://ww1.microchip.com/downloads/en/DeviceDoc/41412F.pdf
     dev.board:       EasyPIC7
                      http://www.mikroe.com/easypic/
     Oscillator:      HS-PLL 32.0000 MHz, 8.0000 MHz Crystal
     ext. modules:    gsm click : 
                      http://www.mikroe.com/click/gsm/
                      Telit GL865-QUAD
                      http://www.telit.com/en/products.php?p_id=3&amp;amp;p_ac=show&amp;amp;p=110
                      LM35 (Analog temperature sensor)
                      http://www.ti.com/lit/ds/symlink/lm35.pdf
     SW:              mikroC PRO for PIC
                      http://www.mikroe.com/mikroc/pic/
 * NOTES:
     - Due different mobile operators some adjustments may be required, please consult Telit AT commands
       reference guide at http://www.telit.com/module/infopool/download.php?id=542
     - The SMS messages (which GL865 receives) contain commands: &quot;FAN1ON&quot; or &quot;FAN1OFF&quot;, &quot;FAN2ON&quot; or &quot;FAN2OFF&quot;
       and &quot;Status?&quot; (it is case sensitive and without quotes).
       In example, &quot;FAN1ON&quot;  command turns ON the output on RD0, &quot;FAN2OFF&quot; turns OFF the output on RD1.
       In this experiment we used two leds instead fans (just to prove the output commands.)
       You can send only the &quot;Status?&quot; inquiry via your SMS (or add it to the SMS containg relay commands) 
       and then you&#39;ll receive an info about the state of EasyPic7 motherboard.
       PORT RD0 and RD1 leads two digital output and RA0 one analog input.
       An example of one control message is below:
       &quot;FAN1ON FAN2OFF Status?&quot;  (Note that there is no need for separation chars (spaces in this case)).
       Valid message is also: &quot;FAN2OFFFAN1ONStatus?&quot;; just be careful about the case of letters.

     - Turn on portD LEDs on SW3 (SW3.4).
     - Place GSM click board into mikroBUS socket 1.
     - Place power selection jumper (J5) into 3.3V position.
 */

//  Set VREF according to the voltage reference for LM35:
//  5.00 - power supply jumper set to 5V position (reference = 5V)
//  3.30 - power supply jumper set to 3.3V position (reference = 3.3V)
const unsigned short VREF = 3.30;

// Set of basic AT commands
const char atc0[] = &quot;AT&quot;;                        // Every AT command starts with &quot;AT&quot;
const char atc1[] = &quot;ATE0&quot;;                      // Disable command echo
const char atc2[] = &quot;AT+CMGF=1&quot;;                 // TXT messages
      char atc3[] = &quot;AT+CMGS=\&quot;&quot;;                // sends SMS to desired number
const char atc4[] = &quot;AT+CMGR=1&quot;;                 // Command for reading message from location 1 from inbox
const char atc5[] = &quot;AT+CMGD=1,4&quot;;               // Erasing all messages from inbox
const char atc6[] = &quot;AT+CMGL=\&quot;ALL\&quot;&quot;;           // Check status of received SMS
const char atc7[] = &quot;AT#SLED=2&quot;;                 // Activate STAT_LED pin
const char atc8[] = &quot;AT#SLEDSAV&quot;;                // Save previous command
const char atc9[] = &quot;AT#GPIO=5,0,2&quot;;             // Set GPIO5 pin as RFTXMON OUTPUT (the GPIO5 pin is set
                                                 // in output direction; the setting is saved at module power off.)

// Responses to parse
const GSM_OK                       = 0;
const GSM_Ready_To_Receive_Message = 1;
const GSM_ERROR                    = 2;
const GSM_UNREAD                   = 3;
//

// Telit GL865 Module settings
sbit PWRMON at PORTA.B2;
sbit PWRMON_Direction at TRISA2_bit;

sbit RTS at LATE0_bit;
sbit RTS_Direction at TRISE0_bit;

sbit GL865_ON_OFF at LATE1_bit;
sbit GL865_ON_OFF_Direction at TRISE1_bit;
//

//Fan Connections
sbit FAN1 at LATD0_bit;
sbit FAN2 at LATD1_bit;

sbit FAN1_Direction at TRISD0_bit;
sbit FAN2_Direction at TRISD1_bit;
//

// Temperature sensor connections
sbit LM35 at PORTA.B0;
sbit LM35_Direction at TRISA0_bit;
//

// SMS Message string
char SMS_Message[300];

// LM35 data string
char LM35_dataC[15];
char LM35_dataF[15];
//
// phone number string
char phone_number[20];

// State machine control variables
char gsm_state = 0;
char response_rcvd = 0;
short responseID = -1, response = -1;
char gsm_number = 0;
char Unread_flag;
char status_req = 0; // Status request variable

// Send command or data to the Telit GL865 Module - (const)
void GL865_Send(const char *s)
{
// Send command or data string
   while(*s) {
    UART1_Write(*s++);
   }
// Terminatation by CR
   UART_Wr_Ptr(0x0D);
}

// Send command or data to the Telit GL865 Module - (RAM)
void GL865_Send_Ram(char *s1)   //
{
// Send command or data string
   while(*s1) {
    UART_Wr_Ptr(*s1++);
   }
// Terminatation by CR
   UART_Wr_Ptr(0x0D);
}

// Get GSM response, if there is any
short Get_response() {
    if (response_rcvd) {
      response_rcvd = 0;
      return responseID;
    }
    else
      return -1;
}

// Wait for GSM response (infinite loop)
void Wait_response(char rspns) {
char test = 1;

  while (test){
  test = Get_response();
  if ((test == rspns) || (test == GSM_ERROR))
    test = 0;
  else
    test = 1;
  }
}

// Compose Status SMS
unsigned ComposeMessage(char* Message);

// Send Status SMS
void Send_Msg(char* Msg){
  char atc[33];

  atc[0] = 0;                        // clear atc string
  strcat(atc, atc3);                 // atc3 command for sending messages
  strcat(atc, phone_number);         // add phone number
  strcat(atc, &quot;\&quot;&quot;);                 // complete AT command
  GL865_Send_Ram(atc);               // send AT command for SMS sending
  Wait_response(GSM_Ready_To_Receive_Message); // Wait for appropriate ready signal

  GL865_Send_Ram(Msg);               // Send message content
  UART_Wr_Ptr(0x1A);                 // Send CTRL + Z as end character
  UART_Wr_Ptr(0x0D);                 // Send CR
  Wait_response(GSM_OK);             // Wait OK as confirmation that the message was sent
}

// Send status SMS to the cell phone number defined by the atc3 const string
void Send_Status(){
 ComposeMessage(SMS_Message);
 Send_Msg(SMS_Message);
}

// 5sec pause
void Wait(){
   Delay_ms(5000);
}

// Main
void main(){
  ANSELA = 0;             // Set all ports as digital
  ANSELB = 0;
  ANSELC = 0;
  ANSELD = 0;
  ANSELE = 0;

  SLRCON = 0;             // Set output slew rate on all ports at standard rate

  ANSELA |= 0x01;         // Configure RA0 pins as analog
  LM35_Direction = 1;     // Configure RA0 pin as input

  //Initialy, FAN&#39;s are turned off
  FAN1=0;
  FAN2=0;
  
  FAN1_Direction=0;
  FAN2_Direction=0;
  //

// Setup interrupts
  RC1IE_bit = 1;          // Enable Rx1 intterupts
  PEIE_bit = 1;           // Enable peripheral interrupts
  GIE_bit  = 1;           // Enable global interrupts
//

  // Initial state of Telit GL865 Module pins
  PWRMON_Direction = 1;   // Make PWRMON(RA2) as input

  RTS = 0;                //  Set RTS pin to zero (we will use only RX and TX)
  RTS_Direction  = 0;

  GL865_ON_OFF = 0;
  GL865_ON_OFF_Direction = 0;
  //
  
// Turn on the GM865 module
  GL865_ON_OFF = 1;       // hardware reset
  Delay_ms(2500);         // hold it at least for two seconds
  GL865_ON_OFF = 0;
//

  UART1_Init(9600);
  ADC_Init();

  Wait();                 // Wait a while till the GSM network is configured

// Negotiate baud rate
  while(1) {
    GL865_Send(atc0);                 // Send &quot;AT&quot; string until GSM862 sets up its baud rade
    Delay_ms(100);                    // and gets it correctly
    if (Get_response() == GSM_OK)     // If GSM862 says &quot;OK&quot; on our baud rate we program can continue
      break;
  }

 GL865_Send(atc1);                    // Disable command echo
 Wait_response(GSM_OK);

 GL865_Send(atc2);                    // Set message type as TXT
 Wait_response(GSM_OK);
 
 GL865_Send(atc7);                    // Activate STAT_LED pin
 Wait_response(GSM_OK);
 
 GL865_Send(atc8);                    // Then save it
 Wait_response(GSM_OK);
 
 GL865_Send(atc9);                    // Set GPIO5 pin as RFTXMON OUTPUT
 Wait_response(GSM_OK);

 while(1){
   GL865_Send(atc5);             // Delete all messages (if any)
   if (get_response() == GSM_OK) // If messages are deleted
     break;                      // break from while
   Delay_ms(500);
 }
  // infinite loop
  while(1) {
    GL865_Send(atc6);        // Read status of the messages and read message it self
    Delay_ms(100);           // Wait until the message is read

    while(1) {
      GL865_Send(atc0);      // Wait until the module is ready
      Delay_ms(50);
      if (Get_response() == GSM_OK)
        break;
    }
    
    if (Unread_flag){
      while(1) {
        GL865_Send(atc0);    // Wait until the module is ready
        Delay_ms(50);
        if (Get_response() == GSM_OK)
          break;
      }

      if (status_req){       // Send status SMS if it&#39;s been requested
        status_req = 0;
        Send_Status();
      }

      Unread_flag = 0;
    }

    while(1){
      GL865_Send(atc5);  // Delete all messages (if any)
      Delay_ms(50);
      if (get_response() == GSM_OK) // If messages are deleted
        break;           // break from while
      Delay_ms(50);
      if (Unread_flag){  // if we have received message in mean time
        Unread_flag = 0;
        break;           // break from while
      }
    }
    Wait();
  }
}

/******************************************************************************/

// Compose Status SMS
unsigned ComposeMessage(char* Message){
  unsigned int adc_value1 = 0;
  float Celsius_format, Fahrenheit_format;
 
  RC1IE_bit = 0;                // Disable Rx1 intterupts

  Message[0] = &#39;\0&#39;;
//================================================================
  // SMS header
  strcat(Message, &quot;EasyPIC7 Info:&quot;);
  strcat(Message, &quot;\r\n&quot;);              // Add new line (CR + LF)
  //
  if(FAN1)
     strcat(Message, &quot;FAN1: ON&quot;);
  else
     strcat(Message, &quot;FAN1: OFF&quot;);
  strcat(Message, &quot;\r\n&quot;);              // Add new line (CR + LF)
  
  if(FAN2)
     strcat(Message, &quot;FAN2: ON&quot;);
  else
     strcat(Message, &quot;FAN2: OFF&quot;);
  strcat(Message, &quot;\r\n&quot;);              // Add new line (CR + LF)
//================================================================

  // Adding Temperature values to the SMS
  adc_value1 = ADC_Get_Sample(0);                 // RA0
  Celsius_format = (adc_value1 * VREF)/10.240;    // Calculate temperature in Celsuis
  FloatToStr(Celsius_format, LM35_dataC);
  LM35_dataC[4] =0;                               // Use just four string value

  strcat(Message, &quot;TEMP: +&quot;);
  strcat(Message, LM35_dataC);
  strcat(Message, &quot;&#39;C&quot;);                          // Celsius degree symbol
  strcat(Message, &quot; / +&quot;);                        // Delimitation and + symbol
  
  Fahrenheit_format = (Celsius_format *9/5)+32;   // °F =°C*9/5 + 32 transformation formula
  FloatToStr(Fahrenheit_format, LM35_dataF);
  LM35_dataF[4] =0;                               // Use just four string value
  strcat(Message, LM35_dataF);
  strcat(Message, &quot;&#39;F&quot;);
  strcat(Message, &quot;\r\n&quot;);                        // Add new line (CR + LF)
  // SMS footer
  strcat(Message, &quot;End.&quot;);
  strcat(Message, &quot;\r\n&quot;);                        // Add new line (CR + LF)
  //
  RC1IE_bit = 1;                                  // Enable Rx1 intterupts

  return strlen(Message);
}

// state machine
// Reading the data from UART in the interuppt routine
void interrupt(){
char tmp,i;

  if (RCIF_bit == 1) {                           // Do we have uart rx interrupt request?
    tmp = UART_Rd_Ptr();                         // Get received byte

// Process reception through state machine
// We are parsing only &quot;OK&quot; and &quot;&amp;gt; &quot; responses
    switch (gsm_state) {
      case  0: {
                response = -1;                   // Clear response
                if (tmp == &#39;O&#39;)                  // We have &#39;O&#39;, it could be &quot;OK&quot;
                  gsm_state = 1;                 // Expecting &#39;K&#39;
                if (tmp == &#39;&amp;gt;&#39;)                  // We have &#39;&amp;gt;&#39;, it could be &quot;&amp;gt; &quot;
                  gsm_state = 10;                // Expecting &#39; &#39;
                if (tmp == &#39;E&#39;)                  // We have &#39;E&#39;, it could be &quot;&amp;gt; &quot;
                  gsm_state = 30;                // Expecting &#39;R&#39;
                if (tmp == &#39;S&#39;)                  // We have &#39;S&#39;, it could be &quot;Status?&quot;
                  gsm_state = 40;                // Expecting &#39;t&#39;
                if (tmp == &#39;F&#39;)                  // We have &#39;F&#39;, it could be &quot;FANxON or FANxOFF&quot;
                  gsm_state = 50;                // Expecting A
                if (tmp == &#39;U&#39;)                  // We have &#39;U&#39;, it could be &quot;UNREAD&quot;
                  gsm_state = 70;                // Expecting &#39;N&#39;
                break;
               }
      case  1: {
                if (tmp == &#39;K&#39;) {                // We have &#39;K&#39; -&amp;gt;
                  response = GSM_OK;             // We have &quot;OK&quot; response
                  gsm_state = 20;                // Expecting CR+LF
                }
                else
                  gsm_state = 0;                 // Reset state machine
                break;
               }
      case 10: {
                if (tmp == &#39; &#39;) {
                  response_rcvd = 1;             // We have &quot;&amp;gt; &quot; response
                  response = GSM_Ready_To_Receive_Message; // Set reception flag
                  responseID = response;         // Set response ID
                }
                gsm_state = 0;                   // Reset state machine
                break;
                }

      case 20: {
                if (tmp == 13)                   // We have 13, it could be CR+LF
                  gsm_state = 21;                // Expecting LF
                else
                  gsm_state = 0;                 // Reset state machine
                break;
               }
      case 21: {
                if (tmp == 10) {                 // We have LF, response is complete
                  response_rcvd = 1;             // Set reception flag
                  responseID = response;         // Set response ID
                }
                gsm_state = 0;                   // Reset state machine
                break;
               }

      case 30: {
                if (tmp == &#39;R&#39;)                  // We have &#39;R&#39;, it could be &quot;ERROR&quot;
                  gsm_state = 31;                // Expecting &#39;R&#39;
                else
                  gsm_state = 0;                 // Reset state machine
                break;
               }
      case 31: {
                if (tmp == &#39;R&#39;)                  // We have &#39;R&#39;, it could be &quot;ERROR&quot;
                  gsm_state = 32;                // Expecting &#39;O&#39;
                else
                  gsm_state = 0;                 // Reset state machine
                break;
               }
      case 32: {
                if (tmp == &#39;O&#39;)                  // We have &#39;O&#39;, it could be &quot;ERROR&quot;
                  gsm_state = 33;                // Expecting &#39;R&#39;
                else
                  gsm_state = 0;                 // Reset state machine
                break;
               }
      case 33: {
                if (tmp == &#39;R&#39;){                 // We have &#39;R&#39;
                  response_rcvd = 1;             // We have &quot;ERROR&quot; response
                  response = GSM_ERROR;          // Set reception flag
                  responseID = response;         // Set response ID
                }
                gsm_state = 0;                   // Reset state machine
                break;
                }
      case 40: {
                if (tmp == &#39;t&#39;)                  // We have &#39;t&#39;, it could be &quot;Status?&quot;
                  gsm_state = 41;                // Expecting &#39;a&#39;
                else
                  gsm_state = 0;               // Reset state machine
                break;
                }
      case 41: {
                if (tmp == &#39;a&#39;)                  // We have &#39;a&#39;, it could be &quot;Status?&quot;
                  gsm_state = 42;                // Expecting &#39;t&#39;
                else
                  gsm_state = 0;                 // Reset state machine
                break;
               }
      case 42: {
                if (tmp == &#39;t&#39;)                  // We have &#39;t&#39;, it could be &quot;Status?&quot;
                  gsm_state = 43;                // Expecting &#39;u&#39;
                else
                  gsm_state = 0;                 // Reset state machine
                break;
               }

      case 43: {
                if (tmp == &#39;u&#39;)                  // We have &#39;u&#39;, it could be &quot;Status?&quot;
                  gsm_state = 44;                // Expecting &#39;s&#39;
                else
                  gsm_state = 0;                 // Reset state machine
                break;
               }

      case 44: {
                if (tmp == &#39;s&#39;)                  // We have &#39;s&#39;, it could be &quot;Status?&quot;
                  gsm_state = 45;                // Expecting &#39;?&#39;
                else
                  gsm_state = 0;                 // Reset state machine
                break;
               }

      case 45: {
                if (tmp == &#39;?&#39;){                 // We have &#39;?&#39;
                  status_req = 1;                // Status has been requested!
                }
                gsm_state = 0;                   // Reset state machine
                break;
                }

      case 50: {
                if (tmp == &#39;A&#39;)                  // We have &#39;A&#39;, it could be &quot;FANx&quot;
                  gsm_state = 51;                // Expecting &#39;N&#39;
                else
                  gsm_state = 0;                 // Reset state machine
                break;
               }

      case 51: {
                if (tmp == &#39;N&#39;)                  // We have &#39;N&#39;, it could be &quot;FANx&quot;
                  gsm_state = 52;                // Expecting number
                else
                  gsm_state = 0;                 // Reset state machine
                break;
               }

      case 52: {
                if (tmp == &#39;1&#39;)
                   gsm_state = 53;
                else
                if (tmp == &#39;2&#39;)
                   gsm_state = 60;
                else
                   gsm_state = 0;
                break;
                }
                
      case 53: {
                if (tmp == &#39;O&#39;)
                gsm_state = 54;
                else
                gsm_state = 0;
                break;
               }
               
      case 54: {
                if (tmp == &#39;N&#39;){
                   FAN1 = 1;
                   gsm_state = 0;}
                else
                if (tmp == &#39;F&#39;)
                   gsm_state = 55;
                else
                   gsm_state = 0;
                break;
               }
      case 55: {
                if (tmp == &#39;F&#39;){
                   FAN1 = 0;
                   gsm_state = 0;}
                else
                   gsm_state = 0;
                break;
                }
      case 60: {
                if (tmp == &#39;O&#39;)
                   gsm_state = 61;
                else
                   gsm_state = 0;
                break;
                }
      case 61: {
                if (tmp == &#39;N&#39;){
                   FAN2 = 1;
                   gsm_state = 0;}
                else
                   if (tmp = &#39;F&#39;)
                   gsm_state = 62;
                else
                   gsm_state = 0;
                break;
                }
      case 62: {
                if (tmp == &#39;F&#39;){
                   FAN2 = 0;
                   gsm_state = 0;}
                else
                   gsm_state = 0;
                break;
                }
      case 70: {
                if (tmp == &#39;N&#39;)
                   gsm_state = 71;
                else
                   gsm_state = 0;
                break;
                }
      case 71: {
                if (tmp == &#39;R&#39;)
                   gsm_state = 72;
                else
                   gsm_state = 0;
                break;
                }
      case 72: {
                if (tmp == &#39;E&#39;)
                   gsm_state = 73;
                else
                   gsm_state = 0;
                break;
                }
      case 73: {
                if (tmp == &#39;A&#39;)
                   gsm_state = 74;
                else
                   gsm_state = 0;
                break;
                }
      case 74: {
                if (tmp == &#39;D&#39;){
                   response_rcvd = 1;             // We have &quot;ERROR&quot; response
                   response = GSM_UNREAD;         // Set reception flag
                   responseID = response;         // Set response ID
                   Unread_flag = 1;
                   }
                gsm_state = 0;
                break;
                }
      default: {                                 // Unwanted character
                gsm_state = 0;                   // Reset state machine
               }
    }
    // parse phone number on which we should reply
    switch (gsm_number) {
      case 0 :{
               if (tmp == &#39;&quot;&#39;){
                 gsm_number = 1;
                 i = 0;
               }
              }; break;
      case 1 :{
               if (tmp == &#39;+&#39;){
                 phone_number[i] = tmp;
                 i ++;
                 gsm_number = 2;
               }
               else{
                 gsm_number = 0;
                 i = 0;
               }
              }; break;
      case 2 :{
               if (tmp &amp;gt;= &#39;0&#39; &amp;amp;&amp;amp; tmp &amp;lt;= &#39;9&#39;){
                 phone_number[i] = tmp;
                 i ++;
               }
               else
                 if (tmp == &#39;&quot;&#39;){
                   phone_number[i] = 0;
                   i = 0;
                   gsm_number = 0;
                 }
                 else{
                   phone_number[0] = 0;
                   i = 0;
                   gsm_number = 0;
                 }
              }; break;
      default : {
                 phone_number[0] = 0;
                 i = 0;
                 gsm_number = 0;
                }
    }
 }
}
/******************************************************************************/&lt;/span&gt;&lt;/pre&gt;
</content><link rel='replies' type='application/atom+xml' href='http://electronicexperiments.blogspot.com/feeds/6406675374087878122/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://electronicexperiments.blogspot.com/2014/07/gsm-click-temperature-controll-via-sms.html#comment-form' title='12 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4799470828225918099/posts/default/6406675374087878122'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4799470828225918099/posts/default/6406675374087878122'/><link rel='alternate' type='text/html' href='http://electronicexperiments.blogspot.com/2014/07/gsm-click-temperature-controll-via-sms.html' title='GSM Click (Temperature &amp; Controll via SMS)'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEirfDIxk9PaxXsRKAYcZ7JsDQKnDcNk91vAS5ac76hEGwd_sNZoPPVrAeEGFbDnOoGq4uXbzWG8mIIvvEAJ8JnNzCvkiu9p7Li31YUAi2_Q9xvX82LblL0JEOhB0Lek5KKKxT8yvCS4tkU/s72-c/GL865-Quad.png" height="72" width="72"/><thr:total>12</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4799470828225918099.post-1374187269365518347</id><published>2014-03-29T22:09:00.000+02:00</published><updated>2018-11-15T01:08:35.067+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="2x16"/><category scheme="http://www.blogger.com/atom/ns#" term="876a"/><category scheme="http://www.blogger.com/atom/ns#" term="Breadboard"/><category scheme="http://www.blogger.com/atom/ns#" term="DS1307"/><category scheme="http://www.blogger.com/atom/ns#" term="I2C"/><category scheme="http://www.blogger.com/atom/ns#" term="LCD"/><category scheme="http://www.blogger.com/atom/ns#" term="Microchip"/><category scheme="http://www.blogger.com/atom/ns#" term="MikroC"/><category scheme="http://www.blogger.com/atom/ns#" term="Mikroelektronika"/><category scheme="http://www.blogger.com/atom/ns#" term="PCB"/><category scheme="http://www.blogger.com/atom/ns#" term="pic"/><category scheme="http://www.blogger.com/atom/ns#" term="pic16"/><category scheme="http://www.blogger.com/atom/ns#" term="pic16f876a"/><category scheme="http://www.blogger.com/atom/ns#" term="Push Button"/><category scheme="http://www.blogger.com/atom/ns#" term="Real Time Clock"/><category scheme="http://www.blogger.com/atom/ns#" term="RTC"/><category scheme="http://www.blogger.com/atom/ns#" term="Tutorials"/><title type='text'>Real Time Clock [DS1307 with Set Functions] &amp; DS18B20</title><content type='html'>&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot; , &amp;quot;serif&amp;quot;; font-size: 12.0pt; line-height: 115%;&quot;&gt;Hello dear fellows, today I will share with you this amazing project which will highlights what can be done with DS1307.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot; , serif; font-size: 12pt; line-height: 115%;&quot;&gt;The &lt;/span&gt;&lt;b style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 12pt; line-height: 115%;&quot;&gt;R&lt;/b&gt;&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot; , serif; font-size: 12pt; line-height: 115%;&quot;&gt;eal &lt;/span&gt;&lt;b style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 12pt; line-height: 115%;&quot;&gt;T&lt;/b&gt;&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot; , serif; font-size: 12pt; line-height: 115%;&quot;&gt;ime &lt;/span&gt;&lt;b style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 12pt; line-height: 115%;&quot;&gt;C&lt;/b&gt;&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot; , serif; font-size: 12pt; line-height: 115%;&quot;&gt;lock (RTC) chip produced by Maxim is a popular and relatively low
cost solution for creating a room clock.&lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot; , &amp;quot;serif&amp;quot;; font-size: 12.0pt; line-height: 115%;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot; , &amp;quot;serif&amp;quot;; font-size: 12.0pt; line-height: 115%;&quot;&gt;Features:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;/div&gt;
&lt;ol&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg3kZcIy-bYSdTincNkm_T62aoXncNxqxNfuDBc3ja4ExBWyrd0VciAj7Msi0EuyK6NbuurzU_DeZgZ4EToUnng_GByQBjoDpECfT0c4s57z4Uxp9NygqVODWfqu0lyf2yRa5Ng1oHRrsQ/s1600/Chip.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg3kZcIy-bYSdTincNkm_T62aoXncNxqxNfuDBc3ja4ExBWyrd0VciAj7Msi0EuyK6NbuurzU_DeZgZ4EToUnng_GByQBjoDpECfT0c4s57z4Uxp9NygqVODWfqu0lyf2yRa5Ng1oHRrsQ/s1600/Chip.jpg&quot; /&gt;&lt;/a&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot; , serif; font-size: 12pt; line-height: 115%;&quot;&gt;Real-Time Clock (RTC) Counts
Seconds, Minutes, Hours, Date of the Month, Month, Day of the week, and Year
with Leap-Year Compensation Valid Up to 2100.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot; , serif; font-size: 12pt; line-height: 115%; text-indent: -0.25in;&quot;&gt;56-Byte,
Battery-Backed, General-Purpose RAM with Unlimited Writes.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot; , serif; font-size: 12pt; line-height: 115%; text-indent: -0.25in;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot;; font-size: 7pt; line-height: normal;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot; , serif; font-size: 12pt; line-height: 115%; text-indent: -0.25in;&quot;&gt;I2C Serial Int&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot; , serif; font-size: 12pt; line-height: 115%; text-indent: -0.25in;&quot;&gt;erface.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot; , serif; font-size: 12pt; line-height: 115%; text-indent: -0.25in;&quot;&gt;Programmable
Square-Wave Output Signal.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot; , serif; font-size: 12pt; line-height: 115%; text-indent: -0.25in;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot;; font-size: 7pt; line-height: normal;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot; , serif; font-size: 12pt; line-height: 115%; text-indent: -0.25in;&quot;&gt;Automatic
Power-Fail Detect and Switch Circuitry.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot; , serif; font-size: 12pt; line-height: 115%; text-indent: -0.25in;&quot;&gt;Consumes Less
than 500nA in Battery-Backup Mode with Oscillator Running.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot; , serif; font-size: 12pt; line-height: 115%; text-indent: -0.25in;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot;; font-size: 7pt; line-height: normal;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot; , serif; font-size: 12pt; line-height: 115%; text-indent: -0.25in;&quot;&gt;Operating temperature range for commercial use only: 0°C to +70°C.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot; , serif; font-size: 12pt; line-height: 115%; text-indent: -0.25in;&quot;&gt;Optional
Industrial Temperature Range: &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot; , serif; font-size: 12pt; line-height: 115%; text-indent: -0.25in;&quot;&gt;-40°C to +85°C.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot; , serif; font-size: 12pt; line-height: 115%; text-indent: -0.25in;&quot;&gt;Available in
8-Pin Plasti&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot; , serif; font-size: 12pt; line-height: 115%; text-indent: -0.25in;&quot;&gt;c DIP or SO.&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;div style=&quot;text-indent: -24px;&quot;&gt;
&lt;/div&gt;
&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot; , serif; font-size: 12pt; line-height: 115%;&quot;&gt;As can be seen from it&#39;s
datasheet, the communications are achieved via I2C (designed by Philips)
protocol.&lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span color:=&quot;&quot; red=&quot;&quot; style=&quot;color: red; font-family: &amp;quot;times new roman&amp;quot; , &amp;quot;serif&amp;quot;; font-size: 12.0pt; line-height: 115%;&quot;&gt;Hardware setup:&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot; , &amp;quot;serif&amp;quot;; font-size: 12.0pt; line-height: 115%;&quot;&gt;In the current article I intend to display the clock information and room temperature, on the LCD with 2x16 characters. Also trough four buttons, I will try to be able to set all the times variable, stored, in DS1307 chip.&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot; , &amp;quot;serif&amp;quot;; font-size: 12.0pt; line-height: 115%;&quot;&gt;Physical realization is carried out on the breadboard with 2420 dots.&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;div align=&quot;center&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhN6z4rXDcS2iehwCRgjceSWoSP13vFqRIeN0tmk8_4C3qjMGxsN3kZhMhDMH0S0UVFbc_6ysxOjxe1OTW4DcC18fcNP_6OEBMElpHJUHIUzEODImAx6K7CFzl8PqON_0U4pn8tBnYGzq4/s1600/20140323_201832.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin: 5px 2px;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;200&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhN6z4rXDcS2iehwCRgjceSWoSP13vFqRIeN0tmk8_4C3qjMGxsN3kZhMhDMH0S0UVFbc_6ysxOjxe1OTW4DcC18fcNP_6OEBMElpHJUHIUzEODImAx6K7CFzl8PqON_0U4pn8tBnYGzq4/s1600/20140323_201832.jpg&quot; width=&quot;358&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGc90oey1X-euQ4T9xhhbHUtpe-0fFXKHK29KATxIHk80ZeOiEx0qvT9hx8VVxdW3nJCxXW_1vzB9Tt1wSoX1OnIbeVqcMbZj0DFJxMIDKariSvvHDhSs-JmZTsWjtRBV7zsufG-kcr6k/s1600/20140323_221017.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin: 5px 2px;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;200&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGc90oey1X-euQ4T9xhhbHUtpe-0fFXKHK29KATxIHk80ZeOiEx0qvT9hx8VVxdW3nJCxXW_1vzB9Tt1wSoX1OnIbeVqcMbZj0DFJxMIDKariSvvHDhSs-JmZTsWjtRBV7zsufG-kcr6k/s1600/20140323_221017.jpg&quot; width=&quot;358&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhpMYso6B2MTelNKAB72fbkU99Q3xcobJ4iFU_L1Rp7r7DW8vGKI2Mm324nnOZRAFRUFz_U-ywHwPcwEdT5vr7oAYphxuN4rf1gbqbJ9hRoI4Txbtm34hVS60ZzEAdJb6dNq_LlJ_71qX4/s1600/20140323_221131.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin: 5px 2px;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;200&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhpMYso6B2MTelNKAB72fbkU99Q3xcobJ4iFU_L1Rp7r7DW8vGKI2Mm324nnOZRAFRUFz_U-ywHwPcwEdT5vr7oAYphxuN4rf1gbqbJ9hRoI4Txbtm34hVS60ZzEAdJb6dNq_LlJ_71qX4/s1600/20140323_221131.jpg&quot; width=&quot;358&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj40zenqIUsIBU36pX1pZZi6gYXY1ytYp5_ruvo0eDZrljZaDSCCDKVdQuBUZUm8jl939f7N3r4eE8oBFrGoT09moO3GRyR26AiyeRkcKtAVhOHgnuBl8ih0OkuCj3OqEtDmW3VvtpZK8I/s1600/20140323_221220.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin: 5px 2px;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;200&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj40zenqIUsIBU36pX1pZZi6gYXY1ytYp5_ruvo0eDZrljZaDSCCDKVdQuBUZUm8jl939f7N3r4eE8oBFrGoT09moO3GRyR26AiyeRkcKtAVhOHgnuBl8ih0OkuCj3OqEtDmW3VvtpZK8I/s1600/20140323_221220.jpg&quot; width=&quot;358&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiltu7bhsdChq995hZbC0keW8nyK2JKhI1Pa8ytoAuun4sgEN8kl-KJkfBqNH34t9JjL_vKe4z_IlZL8_fRhOISNGDAd3Ity3pW9FnJh8zR2VRfFmtwRW9_YZ5cy6qau6UhgRNEqDva_Jg/s1600/20140327_184222.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin: 5px 2px;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;200&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiltu7bhsdChq995hZbC0keW8nyK2JKhI1Pa8ytoAuun4sgEN8kl-KJkfBqNH34t9JjL_vKe4z_IlZL8_fRhOISNGDAd3Ity3pW9FnJh8zR2VRfFmtwRW9_YZ5cy6qau6UhgRNEqDva_Jg/s1600/20140327_184222.jpg&quot; width=&quot;358&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgAjq8vZZlmYK4TwwPdLs392rUUlwwfcSuScvnCJzjvvkixQdE8yjxN8ubA2uURIo3LqBbMuUUTehx1bUcK1BH8HeeGam6ydblq8EF66IKL1X0IWy5akScYmrc9zB41l4ij0I6IKm59TXY/s1600/20140327_184400.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin: 5px 2px;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;200&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgAjq8vZZlmYK4TwwPdLs392rUUlwwfcSuScvnCJzjvvkixQdE8yjxN8ubA2uURIo3LqBbMuUUTehx1bUcK1BH8HeeGam6ydblq8EF66IKL1X0IWy5akScYmrc9zB41l4ij0I6IKm59TXY/s1600/20140327_184400.jpg&quot; width=&quot;358&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3ydbSah3w05IlL9Yulr0-1B8LdhjJTMfXV-Crg6ikCxM4mmCsiTDZZD9w4vaogPbQe8T2JNhbohJB-ZQBRplNP3DmQJNqRkUwk4vTWOgQleSt2OsXfdga3aPEDgqqc3tEdzR_Gg08hwg/s1600/20140327_184443.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin: 5px 2px;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;200&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3ydbSah3w05IlL9Yulr0-1B8LdhjJTMfXV-Crg6ikCxM4mmCsiTDZZD9w4vaogPbQe8T2JNhbohJB-ZQBRplNP3DmQJNqRkUwk4vTWOgQleSt2OsXfdga3aPEDgqqc3tEdzR_Gg08hwg/s1600/20140327_184443.jpg&quot; width=&quot;358&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjO9aXScIxeWjZNXirl52t3KbweGwVOrvCxewp4FrPdnnzJQGXl0QpvOeqCpCehZW0K8-3aWKgPEO1ew5QfgsZd5gMmZEQru75QJcgtVoS8xnxPv2z_Z8wPcORT6a-k8b4-XZZ3tRhla_8/s1600/20140327_184527.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin: 5px 2px;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;200&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjO9aXScIxeWjZNXirl52t3KbweGwVOrvCxewp4FrPdnnzJQGXl0QpvOeqCpCehZW0K8-3aWKgPEO1ew5QfgsZd5gMmZEQru75QJcgtVoS8xnxPv2z_Z8wPcORT6a-k8b4-XZZ3tRhla_8/s1600/20140327_184527.jpg&quot; width=&quot;358&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot; , &amp;quot;serif&amp;quot;; font-size: 12.0pt; line-height: 115%;&quot;&gt;Trough this video I would like to let you know precisely, how are things going.&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div align=&quot;center&quot;&gt;
&lt;iframe allowfullscreen=&quot;&quot; frameborder=&quot;0&quot; height=&quot;400&quot; src=&quot;//www.youtube.com/embed/2sMP60Plv1Q?hd=1&quot; width=&quot;600&quot;&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot; , &amp;quot;serif&amp;quot;; font-size: 12.0pt; line-height: 115%;&quot;&gt;Below I present the timing diagram for I2C signal transmitted on pins 5-6 of the DS1307.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7rvcIZM_uVirp4Top04NjzJzwSRY6z5dlkvwCSBEQzSvOcCcNwW94mKiep1ILU3Eh7EeWRowg3ifMQqt0fWys2sGNQV37mAevBukuZ-HLczcJJrYpnXSMAbgEMfGdQnkQJRzfHkHDTJI/s1600/Timing+Diagram.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;204&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7rvcIZM_uVirp4Top04NjzJzwSRY6z5dlkvwCSBEQzSvOcCcNwW94mKiep1ILU3Eh7EeWRowg3ifMQqt0fWys2sGNQV37mAevBukuZ-HLczcJJrYpnXSMAbgEMfGdQnkQJRzfHkHDTJI/s1600/Timing+Diagram.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot; , &amp;quot;serif&amp;quot;; font-size: 12.0pt; line-height: 115%;&quot;&gt;Data Transfer on I2C Serial Bus.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot; , &amp;quot;serif&amp;quot;; font-size: 12.0pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSygfrWTAKROEqBiB_Bn9Mpc8JLrkGY7mJNd_waP1CSiZKHGBFAmqKSzkom5GBPNoCXd36U5vfonXQW6sjBytNuujkByCN1Xu9Kb0N2xoArbSV85Kr9giVfNv9WhoXhNIRIz2Q4_B-gXs/s1600/Data+Transfer+on+I2C+Serial+Bus.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;262&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSygfrWTAKROEqBiB_Bn9Mpc8JLrkGY7mJNd_waP1CSiZKHGBFAmqKSzkom5GBPNoCXd36U5vfonXQW6sjBytNuujkByCN1Xu9Kb0N2xoArbSV85Kr9giVfNv9WhoXhNIRIz2Q4_B-gXs/s1600/Data+Transfer+on+I2C+Serial+Bus.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot; , &amp;quot;serif&amp;quot;; font-size: 12.0pt; line-height: 115%;&quot;&gt;Pin Configurations.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhvXSbyTfaSXU65bAdDHJ57cLHXRjSIZwQR7bYg2lJD_T15Foi7lFjswOj-Z-7qbuqWbyxMSwoDUrA8Mj4Z2tpR6M9np5-dMu5gKtWjz3Z4YD6QmFS938YyrOaEEegVdDGouKXmDFQWiLE/s1600/Pin+Configurations.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhvXSbyTfaSXU65bAdDHJ57cLHXRjSIZwQR7bYg2lJD_T15Foi7lFjswOj-Z-7qbuqWbyxMSwoDUrA8Mj4Z2tpR6M9np5-dMu5gKtWjz3Z4YD6QmFS938YyrOaEEegVdDGouKXmDFQWiLE/s1600/Pin+Configurations.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot; , &amp;quot;serif&amp;quot;; font-size: 12.0pt; line-height: 115%;&quot;&gt;The diagram block.&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot; , &amp;quot;serif&amp;quot;; font-size: 12.0pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgihRZdiye5Vz5B23dpSiHOjMQD6tBS_xaScDIsimsyde6aMLcR0vVL8oG1cGvNrmSHVCyD_yDHlewRJQzp_InK8YlBsxCZ8V_S-0hRF2nICgaeh40dJL2pDOEu6u97KN4KamhnH7BAyx4/s1600/the+diagram+block.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgihRZdiye5Vz5B23dpSiHOjMQD6tBS_xaScDIsimsyde6aMLcR0vVL8oG1cGvNrmSHVCyD_yDHlewRJQzp_InK8YlBsxCZ8V_S-0hRF2nICgaeh40dJL2pDOEu6u97KN4KamhnH7BAyx4/s1600/the+diagram+block.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot; , &amp;quot;serif&amp;quot;; font-size: 12.0pt; line-height: 115%;&quot;&gt;For more details, please study the DS1307 &lt;a href=&quot;http://datasheets.maximintegrated.com/en/ds/DS1307.pdf&quot; rel=&quot;nofollow&quot;&gt;datasheet&lt;/a&gt;.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: red; font-family: &amp;quot;times new roman&amp;quot; , &amp;quot;serif&amp;quot;; font-size: 12.0pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;color: red; font-family: &amp;quot;times new roman&amp;quot; , &amp;quot;serif&amp;quot;; font-size: 12.0pt; line-height: 115%;&quot;&gt;Circuit Diagram:&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot; , &amp;quot;serif&amp;quot;; font-size: 12.0pt; line-height: 115%;&quot;&gt;Difficulty level of the electronic scheme, is low. The
microcontroller used is PIC16F876A.&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot; , &amp;quot;serif&amp;quot;; font-size: 12.0pt; line-height: 115%;&quot;&gt;S1 is the master reset button, R1 is the resistor of pull-up
button.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot; , &amp;quot;serif&amp;quot;; font-size: 12.0pt; line-height: 115%;&quot;&gt;Cristal quartz by 8 MHz, is used.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot; , &amp;quot;serif&amp;quot;; font-size: 12.0pt; line-height: 115%;&quot;&gt;ICSP connector is used to program the microcontroller.&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot; , &amp;quot;serif&amp;quot;; font-size: 12.0pt; line-height: 115%;&quot;&gt;Trough R7 we can adjust the contrast for LCD with 2x16 characters.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot; , &amp;quot;serif&amp;quot;; font-size: 12.0pt; line-height: 115%;&quot;&gt;R6 adjusts the current through the LED LCD (light intensity of it).&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot; , &amp;quot;serif&amp;quot;; font-size: 12.0pt; line-height: 115%;&quot;&gt;R2-R5, R8-R10 are resistors for&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot; , serif; font-size: 16px;&quot;&gt;pull-up.&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot; , &amp;quot;serif&amp;quot;; font-size: 12.0pt; line-height: 115%;&quot;&gt;I personally designed the physical pcb circuit for DS1307, through
the five pins,&amp;nbsp; pcb communicate with the
breadboard in this way (GND, SQW, SCL, SDA, 5VDC). In this project i didn&#39;t use SQW pin.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot; , &amp;quot;serif&amp;quot;; font-size: 12.0pt; line-height: 115%;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjkzIek7aeZImp9e5_apDMoXR9MlmQaKCh-byj6jJqyI87SReexUNcVAE99yGAI8IXg9ALTtCuOOD-gNt4ngoGUVhdbgOBm-0oAB2XsyconahcF4ef844QqWIZ_KLXYzCbTUU8UGpc9bh4/s1600/Circuit+Diagram.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;460&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjkzIek7aeZImp9e5_apDMoXR9MlmQaKCh-byj6jJqyI87SReexUNcVAE99yGAI8IXg9ALTtCuOOD-gNt4ngoGUVhdbgOBm-0oAB2XsyconahcF4ef844QqWIZ_KLXYzCbTUU8UGpc9bh4/s1600/Circuit+Diagram.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot; , serif; font-size: 12pt;&quot;&gt;The electronic scheme is built in &lt;/span&gt;&lt;a href=&quot;http://www.cadsoftusa.com/&quot; style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 12pt;&quot;&gt;Eagle Cad&lt;/a&gt;&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot; , serif; font-size: 12pt;&quot;&gt; , free version.&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;color: red; font-family: &amp;quot;times new roman&amp;quot; , &amp;quot;serif&amp;quot;; font-size: 12.0pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;color: red; font-family: &amp;quot;times new roman&amp;quot; , &amp;quot;serif&amp;quot;; font-size: 12.0pt;&quot;&gt;Software:&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot; , serif; font-size: 12pt;&quot;&gt;The program is written in mikroC Pro for PIC 2013 (version v6.0.0).&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot; , serif; font-size: 12pt;&quot;&gt;Below is my software version:&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;pre&gt;&lt;span style=&quot;color: #2582e9;&quot;&gt;/*
&#39;*******************************************************************************
&#39;  Project name: Real Time Clock [DS1307 with Set Functions] &amp;amp; DS18B20
&#39;  Description:
&#39;          Trough the current experiment we wish to succed the next task:
&#39;          Display on LCD 2x16 character the clock and room temperature.
&#39;          Setting trough four buttons: the minutes, hours, date of the month,
&#39;          month, day of the week, and year.
&#39;
&#39;          Our clock displays as shown below(but just in display time,
&#39;          not in set mode).
&#39;          Ex. of viewing on 2x16 LCD characters:
&#39;          Display time, mode:             Set time, mode (cursor on):
&#39;          ------------------              ------------------
&#39;          |Sat, 03 Dec 2011|              |Sat, 03 12  2011|
&#39;          |21:32:03 +26,1*C|              |21:32:03        |
&#39;          ------------------              ------------------
&#39;
&#39;          Hardware configuration is:
&#39;             IC ds1307 is connected with our microcontroller trough RC3=SCL,
&#39;             RC4=SDA (I2C Connections), RB0,RB1,RB4-RB7 are assigned to LCD (2x16)
&#39;             DS18B20 is assigned to RC7,
&#39;             Buttons Menu: RC0= Increment value,
&#39;                           RC1= Decrement value,
&#39;                           RC2= Change cursor position,
&#39;                           RC5= Enter.(It goes to set functions or exit from set
&#39;                                functions)
&#39;  Written by:
&#39;          Aureliu Raducu Macovei, 2014.
&#39;  Test configuration:
&#39;    MCU:                        PIC16F876A;
&#39;    Test.Board:                 WB-106 Breadboard 2420 dots;
&#39;    SW:                         MikroC PRO for PIC 2013 (version v6.0.0);
&#39;  Configuration Word:
&#39;    Oscillator:                 HS (8Mhz)on pins 9 and 10;
&#39;    Watchdog Timer:             OFF;
&#39;    Power up Timer:             OFF;
&#39;    Browun Out Detect:          ON;
&#39;    Low Voltage Program:        Disabled;
&#39;    Data EE Read Protect:       OFF;
&#39;    Flash Program Write:        Write Protection OFF;
&#39;    Background Debug:           Disabled;
&#39;    Code Protect:               OFF
&#39;*******************************************************************************
*/

// LCD module connections
sbit LCD_RS at RB0_bit;                 // LCD_RS assigned to PORT RB0;
sbit LCD_EN at RB1_bit;                 // LCD_EN assigned to PORT RB1;
sbit LCD_D4 at RB4_bit;                 // LCD_D4 assigned to PORT RB4;
sbit LCD_D5 at RB5_bit;                 // LCD_D5 assigned to PORT RB5;
sbit LCD_D6 at RB6_bit;                 // LCD_D6 assigned to PORT RB6;
sbit LCD_D7 at RB7_bit;                 // LCD_D7 assigned to PORT RB7;

sbit LCD_RS_Direction at TRISB0_bit;    // LCD_RS assigned to TRIS B0;
sbit LCD_EN_Direction at TRISB1_bit;    // LCD_EN assigned to TRIS B1;
sbit LCD_D4_Direction at TRISB4_bit;    // LCD_D4 assigned to TRIS B4;
sbit LCD_D5_Direction at TRISB5_bit;    // LCD_D5 assigned to TRIS B5;
sbit LCD_D6_Direction at TRISB6_bit;    // LCD_D6 assigned to TRIS B6;
sbit LCD_D7_Direction at TRISB7_bit;    // LCD_D7 assigned to TRIS B7;
// End LCD module connections

unsigned char sec,min1,hr,week_day,day,mn,year;
//--------------------- Reads time and date information from RTC (DS1307)
void Read_Time(char *sec, char *min, char *hr, char *week_day, char *day, char *mn, char *year)
{
 I2C1_Start();                    // Issue start signal
 I2C1_Wr(0xD0);                   // Address DS1307, see DS1307 datasheet
 I2C1_Wr(0);                      // Start from address 0
 I2C1_Repeated_Start();           // Issue repeated start signal
 I2C1_Wr(0xD1);                   // Address DS1307 for reading R/W=1
 *sec =I2C1_Rd(1);                // Read seconds byte
 *min =I2C1_Rd(1);                // Read minutes byte
 *hr =I2C1_Rd(1);                 // Read hours byte
 *week_day =I2C1_Rd(1);           // Read week day byte
 *day =I2C1_Rd(1);                // Read day byte
 *mn =I2C1_Rd(1);                 // Read mn byte
 *year =I2C1_Rd(0);               // Read Year byte
 I2C1_Stop();                     // Issue stop signal
}
//-----------------write time routine------------------
void Write_Time(char minute, char hour ,char weekday,char day,char month,char year)
{
 char tmp1, tmp2;

 tmp1 = minute / 10;               //Write tens of minute
 tmp2 = minute % 10;               //Write unit of minute
 minute = tmp1 * 16 + tmp2;        //Includes all value

 tmp1 = hour / 10;                 //Write tens of hour
 tmp2 = hour % 10;                 //Write unit of hour
 hour = tmp1 * 16 + tmp2;          //Includes all value

 tmp1 = weekday / 10;              //Write tens of weekday
 tmp2 =  weekday % 10;             //Write unit of weekday
 weekday = tmp1 *16 +tmp2;         //Includes all value

 tmp1 = day / 10;                  //Write tens of day
 tmp2 =  day % 10;                 //Write unit of day
 day = tmp1 *16 +tmp2;             //Includes all value

 tmp1 = month / 10;                //Write tens of month
 tmp2 =  month % 10;               //Write unit of month
 month = tmp1 *16 +tmp2;           //Includes all value

 tmp1 = year / 10;                 //Write tens of year
 tmp2 =  year % 10;                //Write unit of year
 year = tmp1 *16 +tmp2;            //Includes all value

 I2C1_Start();          // issue start signal
 I2C1_Wr(0xD0);         // address DS1307
 I2C1_Wr(0);            // start from word at address (REG0)
 I2C1_Wr(0x80);         // write $80 to REG0. (pause counter + 0 sec)
 I2C1_Wr(minute);       // write minutes word to (REG1)
 I2C1_Wr(hour);         // write hours word (24-hours mode)(REG2)
 I2C1_Wr(weekday);      // write 6 - Saturday (REG3)
 I2C1_Wr(day);          // write 14 to date word (REG4)
 I2C1_Wr(month);        // write 5 (May) to month word (REG5)
 I2C1_Wr(year);         // write 01 to year word (REG6)
 I2C1_Wr(0x80);         // write SQW/Out value (REG7)
 I2C1_Stop();           // issue stop signal

 I2C1_Start();          // issue start signal
 I2C1_Wr(0xD0);         // address DS1307
 I2C1_Wr(0);            // start from word at address 0
 I2C1_Wr(0);            // write 0 to REG0 (enable counting + 0 sec)
 I2C1_Stop();           // issue stop signal
}
//-------------------- Formats date and time---------------------
void Transform_Time(char  *sec, char *min, char *hr, char *week_day, char *day, char *mn, char *year)
{
  *sec  =  ((*sec &amp;amp; 0x70) &amp;gt;&amp;gt; 4)*10 + (*sec &amp;amp; 0x0F);
  *min  =  ((*min &amp;amp; 0xF0) &amp;gt;&amp;gt; 4)*10 + (*min &amp;amp; 0x0F);
  *hr   =  ((*hr &amp;amp; 0x30) &amp;gt;&amp;gt; 4)*10 + (*hr &amp;amp; 0x0F);
  *week_day =(*week_day &amp;amp; 0x07);
  *day  =  ((*day &amp;amp; 0xF0) &amp;gt;&amp;gt; 4)*10 + (*day &amp;amp; 0x0F);
  *mn   =  ((*mn &amp;amp; 0x10) &amp;gt;&amp;gt; 4)*10 + (*mn &amp;amp; 0x0F);
  *year =  ((*year &amp;amp; 0xF0)&amp;gt;&amp;gt;4)*10+(*year &amp;amp; 0x0F);
 }
//------------------------Display time---------------------------
char *txt,*mny;
void Display_Time(char sec, char min, char hr, char week_day, char day, char mn, char year)
{
 switch(week_day)
 {
  case 1: txt=&quot;Mon&quot;; break;       // Monday;
  case 2: txt=&quot;Tue&quot;; break;       // Tuesday;
  case 3: txt=&quot;Wed&quot;; break;       // Wednesday;
  case 4: txt=&quot;Thu&quot;; break;       // Thursday;
  case 5: txt=&quot;Fri&quot;; break;       // Friday;
  case 6: txt=&quot;Sat&quot;; break;       // Saturday;
  case 7: txt=&quot;Sun&quot;; break;       // Sunday;
  }

 LCD_Out(1, 1,txt);
 LCD_chr(1, 4,&#39;,&#39;);

 switch(mn)
 {
  case  1: mny=&quot;Jan&quot;; break;
  case  2: mny=&quot;Feb&quot;; break;
  case  3: mny=&quot;Mar&quot;; break;
  case  4: mny=&quot;Apr&quot;; break;
  case  5: mny=&quot;May&quot;; break;
  case  6: mny=&quot;Jun&quot;; break;
  case  7: mny=&quot;Jul&quot;; break;
  case  8: mny=&quot;Aug&quot;; break;
  case  9: mny=&quot;Sep&quot;; break;
  case 10: mny=&quot;Oct&quot;; break;
  case 11: mny=&quot;Nov&quot;; break;
  case 12: mny=&quot;Dec&quot;; break;
  }

 Lcd_Chr(1, 6, (day / 10) + 48);    // Print tens digit of day variable
 Lcd_Chr(1, 7, (day % 10) + 48);    // Print oness digit of day variable
 Lcd_Out(1, 9,mny);
 Lcd_out(1,13,&quot;20&quot;);
 Lcd_Chr(1,15, (year / 10)  + 48);  // we can set year 00-99 [tens]
 Lcd_Chr(1,16, (year % 10)  + 48);  // we can set year 00-99 [ones]
 Lcd_Chr(2, 1, (hr / 10)  + 48);
 Lcd_Chr(2, 2, (hr % 10)  + 48);
 Lcd_Chr(2, 3,&#39;:&#39;);
 Lcd_Chr(2, 4, (min / 10) + 48);
 Lcd_Chr(2, 5, (min % 10) + 48);
 Lcd_Chr(2, 6,&#39;:&#39;);
 Lcd_Chr(2, 7, (sec / 10) + 48);
 Lcd_Chr(2, 8, (sec % 10) + 48);
 }
//-------------------Display Time in Set mode--------------------
char minute1,hour1,weekday1,month1;
char minute,hour,weekday,day1,month,year1;
void Display_Time_SetMode()
{
 switch(weekday1)
 {
  case 1: txt=&quot;Mon&quot;; break;       // Monday;
  case 2: txt=&quot;Tue&quot;; break;       // Tuesday;
  case 3: txt=&quot;Wed&quot;; break;       // Wednesday;
  case 4: txt=&quot;Thu&quot;; break;       // Thursday;
  case 5: txt=&quot;Fri&quot;; break;       // Friday;
  case 6: txt=&quot;Sat&quot;; break;       // Saturday;
  case 7: txt=&quot;Sun&quot;; break;       // Sunday;
  }

 LCD_Out(1, 1,txt);
 LCD_chr(1, 4,&#39;,&#39;);

 Lcd_Chr(1, 6, (day1 / 10)   + 48);    // Print tens digit of day variable
 Lcd_Chr(1, 7, (day1 % 10)   + 48);    // Print oness digit of day variable
 Lcd_chr(1,10, (month1 / 10) + 48);    // Print tens digit of month variable
 Lcd_chr(1,11, (month1 % 10) + 48);    // Print oness digit of month variable
 Lcd_out(1,13,&quot;20&quot;);
 Lcd_Chr(1,15, (year1 / 10)  + 48);    // Print tens digit of year variable
 Lcd_Chr(1,16, (year1 % 10)  + 48);    // Print oness digit of year variable
 Lcd_Chr(2, 1, (hour1 / 10)  + 48);    // Print tens digit of hour variable
 Lcd_Chr(2, 2, (hour1 % 10)  + 48);    // Print oness digit of hour variable
 Lcd_Chr(2, 3,&#39;:&#39;);
 Lcd_Chr(2, 4, (minute1 / 10) + 48);   // Print tens digit of minute variable
 Lcd_Chr(2, 5, (minute1 % 10) + 48);   // Print oness digit of minute variable
 Lcd_Chr(2, 6,&#39;:&#39;);
 Lcd_Chr(2, 7, (0 / 10) + 48);
 Lcd_Chr(2, 8, (0 % 10) + 48);
}

char SPos;
//----------------------Move cursor routine----------------------
char index;
void movecursor()
{
 char i,moveto;
 if(SPos==0)
 lcd_cmd(_lcd_first_row);  // set weekday;
 if(SPos==1)
 lcd_cmd(_lcd_first_row);  // set day;
 if(SPos==2)
 lcd_cmd(_lcd_first_row);  // set month;
 if(SPos==3)
 lcd_cmd(_lcd_first_row);  // set year;
 if(SPos==4)
 lcd_cmd(_lcd_second_row); // set hours;
 if(SPos==5)
 lcd_cmd(_lcd_second_row); // set minutes;

 moveto = 2;
 switch(index)
 {
  case 0: moveto = 2;break;
  case 1: moveto = 6;break;
  case 2: moveto =10;break;
  case 3: moveto =15;break;
  case 4: moveto = 1;break;
  case 5: moveto = 4;break;
  }
  for(i=1; i&amp;lt;= moveto; i++)
  lcd_cmd(_lcd_move_cursor_right);
}
//------------Start Buttons routine--------------;
char setuptime=0;
void Press_Switch()
{
 if(setuptime)
 {
  if(Button(&amp;amp;portc,2,1,0))         // If buttons at port c2 is pressed
  {
   delay_ms(200);
   SPos++;
   if(SPos&amp;gt;5)
   SPos=0;
   index++;
   if(index &amp;gt; 5)
   index=0;
   movecursor();
   }
  //-----------------------------case mode to set all values---------------------
  switch(SPos)
  {
   case 0: if(button(&amp;amp;portc,0,1,0))       // If buttons at port c0 is pressed
           {
            Delay_ms(200);
            weekday1++;
            if(weekday1 &amp;gt; 7)
            weekday1=1;
            Display_Time_SetMode();
            index=0;
            movecursor();
            }

           if(button(&amp;amp;portc,1,1,0))       // If buttons at port c1 is pressed
           {
            Delay_ms(200);
            weekday1--;
            if(weekday1 &amp;lt; 1)
            weekday1=7;
            Display_Time_SetMode();
            index=0;
            movecursor();
            }
           break;
   case 1: if(button(&amp;amp;portc,0,1,0))       // If buttons at port c0 is pressed
           {
            Delay_ms(200);
            day1++;
            if(day1 &amp;gt; 31)
            day1 = 1;
            Display_Time_SetMode();
            index=1;
            movecursor();
            }

           if(button(&amp;amp;portc,1,1,0))        // If buttons at port c1 is pressed
           {
            Delay_ms(200);
            day1--;
            if(day1 &amp;lt; 1)
            day1 = 31;
            Display_Time_SetMode();
            index=1;
            movecursor();
            }
           break;
   case 2: if(button(&amp;amp;portc,0,1,0))         // If buttons at port c0 is pressed
           {
            Delay_ms(200);
            month1++;
            if(month1 &amp;gt; 12)
            month1 = 1;
            Display_Time_SetMode();
            index=2;
            movecursor();
            }

           if(button(&amp;amp;portc,1,1,0))          // If buttons at port c1 is pressed
           {
            Delay_ms(200);
            month1--;
            if(month1 &amp;lt; 1)
            month1 = 12;
            Display_Time_SetMode();
            index=2;
            movecursor();
            }
           break;
   case 3: if(button(&amp;amp;portc,0,1,0))           // If buttons at port c0 is pressed
           {
            Delay_ms(200);
            year1++;
            if(year1 &amp;gt; 99)
            year1 = 1;
            Display_Time_SetMode();
            index=3;
            movecursor();
            }

           if(button(&amp;amp;portc,1,1,0))           // If buttons at port c1 is pressed
           {
            Delay_ms(200);
            year1--;
            if(year1 &amp;lt; 1)
            year1 = 99;
            Display_Time_SetMode();
            index=3;
            movecursor();
            }
           break;
   case 4: if(button(&amp;amp;portc,0,1,0))            // If buttons at port c0 is pressed
           {
            Delay_ms(200);
            hour1++;
            if(hour1 &amp;gt; 23)
            hour1 = 0;
            Display_Time_SetMode();
            index=4;
            movecursor();
            }

           if(button(&amp;amp;portc,1,1,0))            // If buttons at port c1 is pressed
           {
            Delay_ms(200);
            hour1--;
            if(hour1 &amp;gt; 23)
            hour1 = 0;
            Display_Time_SetMode();
            index=4;
            movecursor();
            }
           break;
   case 5: if(button(&amp;amp;portc,0,1,0))            // If buttons at port c0 is pressed
           {
            Delay_ms(200);
            minute1++;
            if(minute1 &amp;gt; 59)
            minute1 = 0;
            Display_Time_SetMode();
            index=5;
            movecursor();
            }

           if(button(&amp;amp;portc,1,1,0))             // If buttons at port c1 is pressed
           {
            Delay_ms(200);
            minute1--;
            if(minute1 &amp;gt; 59)
            minute1 = 0;
            Display_Time_SetMode();
            index=5;
            movecursor();
            }
           break;
   }                            // end &quot;if is in switch mode&quot;
  }                             // end &quot;if is in setup&quot;

 if(button(&amp;amp;portc,5,1,0))                      // If buttons at port c5 is pressed
 {
  Delay_ms(200);
  setuptime = !setuptime;
  if(SetupTime)
  {
   lcd_cmd(_lcd_clear);
   lcd_cmd(_lcd_blink_cursor_on);
   weekday1=week_day;
   hour1=hr;
   minute1=min1;
   day1=day;
   month1=mn;
   year1=year;
   Display_Time_SetMode();
   SPos=0;
   index=0;
   movecursor();
   }
   else
   {
   Lcd_Cmd(_Lcd_clear);
   lcd_cmd(_lcd_cursor_off);
   weekday=weekday1;
   hour=hour1;
   minute=minute1;
   day=day1;
   month=month1;
   year=year1;
   Write_time(minute,hour,weekday,day,month,year);
   }
  }
 }
//----------------------End Buttons Routine-------------------
//------------------Temperature sensor routines---------------
const unsigned short TEMP_RESOLUTION = 12;     // 9 for DS1820 and 12 for DS18B20
char *text = &quot;000,0&quot;;
unsigned temp;
void Display_Temperature(unsigned int temp2write)
{
 const unsigned short RES_SHIFT = TEMP_RESOLUTION - 8;
 char temp_whole;
 unsigned int temp_fraction;
 unsigned short isNegative = 0x00;

 // Check if temperature is negative
 if (temp2write &amp;amp; 0x8000)
 {
  text[0] = &#39;-&#39;;
  temp2write = ~temp2write + 1;
  isNegative = 1;
  }
  // Extract temp_whole
  temp_whole = temp2write &amp;gt;&amp;gt; RES_SHIFT ;
  // Convert temp_whole to characters
  if (!isNegative){
  if (temp_whole/100)
  text[0] = temp_whole/100  + 48;                // Extract hundreds digit
  else
  text[0] = &#39;+&#39;;
  }
  text[1] = (temp_whole/10)%10 + 48;             // Extract tens digit
  text[2] =  temp_whole%10     + 48;             // Extract ones digit
  // Extract temp_fraction and convert it to unsigned int
  temp_fraction  = temp2write &amp;lt;&amp;lt; (4-RES_SHIFT);
  temp_fraction &amp;amp;= 0x000F;
  temp_fraction *= 625;
  // Convert temp_fraction to characters
  text[4] =  temp_fraction/1000 + 48;         // Extract thousands digit
  // Print temperature on LCD
  Lcd_Out(2, 10,text);
  lcd_chr(2, 15,0xB2);                        // Ascii code for degrees symbol;
  Lcd_chr(2, 16,&#39;C&#39;);                         // Show symbol &quot;C&quot; from Celsius
}
//----------------Read and display Temperature from DS18B20--------------
void Read18b20()
{
 //--- Perform temperature reading
 Ow_Reset(&amp;amp;PORTC, 7);                           // Onewire reset signal;
 Ow_Write(&amp;amp;PORTC, 7, 0xCC);                     // 0xCC Issue command SKIP_ROM;
 Ow_Write(&amp;amp;PORTC, 7, 0x44);                     // Issue command CONVERT_T;
 Delay_us(700);                                 // delay 0,7s (required for signal
                                                // processing);
 Ow_Reset(&amp;amp;PORTC, 7);                           // Onewire reset signal;
 Ow_Write(&amp;amp;PORTC, 7, 0xCC);                     // Issue command SKIP_ROM;
 Ow_Write(&amp;amp;PORTC, 7, 0xBE);                     // Issue command READ_SCRATCHPAD;

 temp = Ow_Read(&amp;amp;PORTC, 7);                     // Next Read Temperature, read Byte
                                                // 0 from Scratchpad;
 temp = (Ow_Read(&amp;amp;PORTC, 7) &amp;lt;&amp;lt; 8) + temp;       // Then read Byte 1 from Scratchpad
                                                // and shift 8 bit left and add the Byte 0;
 //--- Format and display result on Lcd
 Display_Temperature(temp);                     // Call Display_Temperature;
 }
//------------------Temperature sensor routines---------------
void Init_Main()
{
 CMCON |=7;             //TURN OFF ANALOGUE COMPARATOR AND MAKE PORTA TO DIGITAL I/O;

 I2C1_Init(100000);         // initialize I2C
 Lcd_Init();                // Initialize LCD
 Lcd_Cmd(_LCD_CLEAR);       // Clear LCD display
 Lcd_Cmd(_LCD_CURSOR_OFF);  // Turn cursor off

 Display_Time(sec, min1, hr, week_day, day, mn, year);

 !setuptime=1;
 index=0;
 SPos=0;
 }
//-----------------Here we have the Main Routine----------------
void main()
{
 Init_Main();
 while (1)                                                 // While loop
 {
  Read_Time(&amp;amp;sec,&amp;amp;min1,&amp;amp;hr,&amp;amp;week_day,&amp;amp;day,&amp;amp;mn,&amp;amp;year);      // read time from RTC(DS1307)
  Transform_Time(&amp;amp;sec,&amp;amp;min1,&amp;amp;hr,&amp;amp;week_day,&amp;amp;day,&amp;amp;mn,&amp;amp;year); // Transform time
  Press_Switch();                                          // Check buttons;
  if(!setuptime)
  {
   Display_Time(sec, min1, hr, week_day, day, mn, year);
   Read18b20();
   }
  }
}&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://electronicexperiments.blogspot.com/feeds/1374187269365518347/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://electronicexperiments.blogspot.com/2014/03/real-time-clock-ds1307-with-set.html#comment-form' title='12 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4799470828225918099/posts/default/1374187269365518347'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4799470828225918099/posts/default/1374187269365518347'/><link rel='alternate' type='text/html' href='http://electronicexperiments.blogspot.com/2014/03/real-time-clock-ds1307-with-set.html' title='Real Time Clock [DS1307 with Set Functions] &amp; DS18B20'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg3kZcIy-bYSdTincNkm_T62aoXncNxqxNfuDBc3ja4ExBWyrd0VciAj7Msi0EuyK6NbuurzU_DeZgZ4EToUnng_GByQBjoDpECfT0c4s57z4Uxp9NygqVODWfqu0lyf2yRa5Ng1oHRrsQ/s72-c/Chip.jpg" height="72" width="72"/><thr:total>12</thr:total></entry></feed>