<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/">
	<channel>
		<title><![CDATA[Microcontrollers and Electronics discussion board - All Forums]]></title>
		<link>http://www.mcuexamples.com/forum/</link>
		<description><![CDATA[Microcontrollers and Electronics discussion board - http://www.mcuexamples.com/forum]]></description>
		<pubDate>Sun, 20 May 2012 23:24:57 +0000</pubDate>
		<generator>MyBB</generator>
		<item>
			<title><![CDATA[how to use I/O ports of PIC 18F family devices correctly  ]]></title>
			<link>http://www.mcuexamples.com/forum/showthread.php?tid=700</link>
			<pubDate>Fri, 13 Apr 2012 22:50:31 +0600</pubDate>
			<guid isPermaLink="false">http://www.mcuexamples.com/forum/showthread.php?tid=700</guid>
			<description><![CDATA[From Data sheet:<br />
LAT Registers<br />
The LATx register associated with an I/O pin eliminates the problems that could occur with read-modify-write instructions. A read of the LATx register returns the values held in the port output latches, instead of the values on the I/O pins. A read-modify-write operation on the LAT register, associated with an I/O port, avoids the possibility of writing the input pin values into the port latches. A write to the LATx register has the same effect as a write to the PORTx register. <br />
<br />
The differences between the PORT and LAT registers can be summarized as follows: <br />
<br />
<span style="font-weight: bold;">•A write to the PORTx register writes the data value to the port latch.</span><br />
•A write to the LATx register writes the data value to the port latch.<br />
<span style="font-weight: bold;">•A read of the PORTx register reads the data value on the I/O pin. </span><br />
•A read of the LATx register reads the data value held in the port latch.<br />
<br />
i.e.<br />
When you want to read whether some external hardware is driving a pin high or low, you must set the pin to input mode (with relevent bits of TRIS register set to 1), and you must read PORTx. That read tells you if the actual voltage at the pin is high or low.<br />
<br />
When you want to drive a pin high or low, you must set the pin to output (with relevent bits of TRIS register set to 0); you should write the bit to the LATx register.<br />
<br />
(Writing that bit to the PORTx register may seem to do the right thing: that pin will - eventually - go high or low as commanded. But there are many cases - such as when some other pin on that port is connected to an open-collector bus - that writing to one bit of the the PORTx register will mess up the state of the other pins on that port, leading to difficult-to-debug problems).]]></description>
			<content:encoded><![CDATA[From Data sheet:<br />
LAT Registers<br />
The LATx register associated with an I/O pin eliminates the problems that could occur with read-modify-write instructions. A read of the LATx register returns the values held in the port output latches, instead of the values on the I/O pins. A read-modify-write operation on the LAT register, associated with an I/O port, avoids the possibility of writing the input pin values into the port latches. A write to the LATx register has the same effect as a write to the PORTx register. <br />
<br />
The differences between the PORT and LAT registers can be summarized as follows: <br />
<br />
<span style="font-weight: bold;">•A write to the PORTx register writes the data value to the port latch.</span><br />
•A write to the LATx register writes the data value to the port latch.<br />
<span style="font-weight: bold;">•A read of the PORTx register reads the data value on the I/O pin. </span><br />
•A read of the LATx register reads the data value held in the port latch.<br />
<br />
i.e.<br />
When you want to read whether some external hardware is driving a pin high or low, you must set the pin to input mode (with relevent bits of TRIS register set to 1), and you must read PORTx. That read tells you if the actual voltage at the pin is high or low.<br />
<br />
When you want to drive a pin high or low, you must set the pin to output (with relevent bits of TRIS register set to 0); you should write the bit to the LATx register.<br />
<br />
(Writing that bit to the PORTx register may seem to do the right thing: that pin will - eventually - go high or low as commanded. But there are many cases - such as when some other pin on that port is connected to an open-collector bus - that writing to one bit of the the PORTx register will mess up the state of the other pins on that port, leading to difficult-to-debug problems).]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Sending SMS through SIM300 example]]></title>
			<link>http://www.mcuexamples.com/forum/showthread.php?tid=670</link>
			<pubDate>Sun, 25 Mar 2012 08:04:59 +0600</pubDate>
			<guid isPermaLink="false">http://www.mcuexamples.com/forum/showthread.php?tid=670</guid>
			<description><![CDATA[Sending SMS/ text message through SIM300 module needs only 2 AT commands. <br />
First you should connect SIM300 module to computer or microcontroller through its serial port.<br />
<br />
then send following commands.<br />
<br />
<span style="font-weight: bold;">AT+CMGF=1</span>        // this command will instruct SIM300 module to enter text mode. after giving command you should press enter key or send ascii 0x0D charactor.<br />
<br />
Then send<br />
<br />
<span style="font-weight: bold;">AT+CMGW="xxxxxxxxxx" </span> // xxxxxxxxxx is the phone number. after this command press enter or send ascii 0x0D charactor through MCU.<br />
<br />
then you will get "<span style="font-weight: bold;">&gt;</span>" promt. then type message and press &lt;CTRL&gt;+&lt;Z&gt; or send 0x0A 0x0D and 0x1A charactors through MCU to SIM300.<br />
<br />
Thats all about sending SMS through SIM300 module.]]></description>
			<content:encoded><![CDATA[Sending SMS/ text message through SIM300 module needs only 2 AT commands. <br />
First you should connect SIM300 module to computer or microcontroller through its serial port.<br />
<br />
then send following commands.<br />
<br />
<span style="font-weight: bold;">AT+CMGF=1</span>        // this command will instruct SIM300 module to enter text mode. after giving command you should press enter key or send ascii 0x0D charactor.<br />
<br />
Then send<br />
<br />
<span style="font-weight: bold;">AT+CMGW="xxxxxxxxxx" </span> // xxxxxxxxxx is the phone number. after this command press enter or send ascii 0x0D charactor through MCU.<br />
<br />
then you will get "<span style="font-weight: bold;">&gt;</span>" promt. then type message and press &lt;CTRL&gt;+&lt;Z&gt; or send 0x0A 0x0D and 0x1A charactors through MCU to SIM300.<br />
<br />
Thats all about sending SMS through SIM300 module.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Thermocouples]]></title>
			<link>http://www.mcuexamples.com/forum/showthread.php?tid=652</link>
			<pubDate>Mon, 13 Feb 2012 06:13:37 +0600</pubDate>
			<guid isPermaLink="false">http://www.mcuexamples.com/forum/showthread.php?tid=652</guid>
			<description><![CDATA[Thermocouples are well known as temperature sensors.<br />
<br />
<br />
<img src="http://4.bp.blogspot.com/-ufu-Ayciefw/TzhVXDfS08I/AAAAAAAAADk/ZdNuJHhnzQs/s1600/Thermocouple.jpg" border="0" alt="[Image: Thermocouple.jpg]" /><br />
<br />
The working principle of Thermocouples<br />
Thermocouples are made with two different conductors. When the two ends of the conductors are in different current an electrical voltage is generated. This voltage value varies with the temperature difference between two ends. So if we know the temperature of one end we can identify the temperature of the other end. By calibrating particular thermocouple we can use it as a thermal sensor.<br />
To keep one end in a known temperature (usually cold end) an artificially cold junction is made by using a thermally sensitive device such as a thermistor or diode to measure the temperature of the input connections at the instrument. There are different combinations of conductors used so that numbers of type such as k type,E type,J type and etc. among these k type is widely use in industry.<br />
Specifications<br />
 Type of conductors use.<br />
 Calibration type<br />
Whether the type is K, J, T etc<br />
 Temperature range.<br />
K type has range of 0 to +1100°C<br />
 Limit of error<br />
K type +or-2%<br />
<br />
Application<br />
 Temperature measurement for kilns<br />
 Gas turbine exhaust<br />
 Diesel engines<br />
 Industrial processes such as automated machines with heaters.]]></description>
			<content:encoded><![CDATA[Thermocouples are well known as temperature sensors.<br />
<br />
<br />
<img src="http://4.bp.blogspot.com/-ufu-Ayciefw/TzhVXDfS08I/AAAAAAAAADk/ZdNuJHhnzQs/s1600/Thermocouple.jpg" border="0" alt="[Image: Thermocouple.jpg]" /><br />
<br />
The working principle of Thermocouples<br />
Thermocouples are made with two different conductors. When the two ends of the conductors are in different current an electrical voltage is generated. This voltage value varies with the temperature difference between two ends. So if we know the temperature of one end we can identify the temperature of the other end. By calibrating particular thermocouple we can use it as a thermal sensor.<br />
To keep one end in a known temperature (usually cold end) an artificially cold junction is made by using a thermally sensitive device such as a thermistor or diode to measure the temperature of the input connections at the instrument. There are different combinations of conductors used so that numbers of type such as k type,E type,J type and etc. among these k type is widely use in industry.<br />
Specifications<br />
 Type of conductors use.<br />
 Calibration type<br />
Whether the type is K, J, T etc<br />
 Temperature range.<br />
K type has range of 0 to +1100°C<br />
 Limit of error<br />
K type +or-2%<br />
<br />
Application<br />
 Temperature measurement for kilns<br />
 Gas turbine exhaust<br />
 Diesel engines<br />
 Industrial processes such as automated machines with heaters.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Photo Diodes]]></title>
			<link>http://www.mcuexamples.com/forum/showthread.php?tid=651</link>
			<pubDate>Mon, 13 Feb 2012 06:06:25 +0600</pubDate>
			<guid isPermaLink="false">http://www.mcuexamples.com/forum/showthread.php?tid=651</guid>
			<description><![CDATA[Photodiode is a sensor that can convert light into current or voltage. These photodiode are use in solar panel in large arrays too. Voltage or current varies with the light so that we can detect a light by using them.<br />
<br />
<img src="http://2.bp.blogspot.com/-ksV1l_GLOBw/TzhTm67cBjI/AAAAAAAAADc/vSo5A2w_PpY/s1600/photo-diodes-symbol.JPG" border="0" alt="[Image: photo-diodes-symbol.JPG]" /><br />
<br />
The working principle of Photodiodes<br />
Photodiode have semiconductor junction normally known as PN junction or PIN junction which has a thin intrinsic semiconductor region. So when this expose to the light it excites an electron. This will create free electrons and positive charged holes. This occurs in the junction's depletion region by flowing electrons. This makes a current and voltage according to the light.Normally a window or optical fiber connection allow light to reach the sensitive part of the device.<br />
<br />
Specifications<br />
 Sensitivity A measure of the effectiveness<br />
 Active area diameter<br />
The active area of the detector<br />
 Operating temperature<br />
 Light Current and Dark current.<br />
Photo current is the sum of above 2 current. So dark current must be minimized to increase the Sensitivity<br />
 Fall time and Rise time<br />
Time taken to react in a light variation<br />
<br />
<br />
Application<br />
 Photo detectors<br />
 Inside compact disc players<br />
 receivers for infrared remote control devices<br />
 In camera light meters<br />
 For optical communications]]></description>
			<content:encoded><![CDATA[Photodiode is a sensor that can convert light into current or voltage. These photodiode are use in solar panel in large arrays too. Voltage or current varies with the light so that we can detect a light by using them.<br />
<br />
<img src="http://2.bp.blogspot.com/-ksV1l_GLOBw/TzhTm67cBjI/AAAAAAAAADc/vSo5A2w_PpY/s1600/photo-diodes-symbol.JPG" border="0" alt="[Image: photo-diodes-symbol.JPG]" /><br />
<br />
The working principle of Photodiodes<br />
Photodiode have semiconductor junction normally known as PN junction or PIN junction which has a thin intrinsic semiconductor region. So when this expose to the light it excites an electron. This will create free electrons and positive charged holes. This occurs in the junction's depletion region by flowing electrons. This makes a current and voltage according to the light.Normally a window or optical fiber connection allow light to reach the sensitive part of the device.<br />
<br />
Specifications<br />
 Sensitivity A measure of the effectiveness<br />
 Active area diameter<br />
The active area of the detector<br />
 Operating temperature<br />
 Light Current and Dark current.<br />
Photo current is the sum of above 2 current. So dark current must be minimized to increase the Sensitivity<br />
 Fall time and Rise time<br />
Time taken to react in a light variation<br />
<br />
<br />
Application<br />
 Photo detectors<br />
 Inside compact disc players<br />
 receivers for infrared remote control devices<br />
 In camera light meters<br />
 For optical communications]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[PTC THERMISTORS]]></title>
			<link>http://www.mcuexamples.com/forum/showthread.php?tid=650</link>
			<pubDate>Sun, 12 Feb 2012 20:05:11 +0600</pubDate>
			<guid isPermaLink="false">http://www.mcuexamples.com/forum/showthread.php?tid=650</guid>
			<description><![CDATA[PTC thermistors have been used in a wide variety of applications over the years. PTC thermistor applications make use of the characteristics inherent in their composition. Generally, applications are broken up into two distinct categories that utilize different characteristics of the PTC. The first category is those applications that utilize the voltage-current or current-time characteristics of the PTC thermistor. These are sometimes known as self-heated applications. The other general category is zero power or sensing applications. Unlike the NTC thermistor, the resistance versus temperature characteristic of a PTC thermistor is not well defined and applications that utilize the resistance versus temperature characteristic tend to utilize only a small portion of the R vs. T curve and utilize broader tolerances than that of NTC thermistors.<br />
<br />
<img src="http://4.bp.blogspot.com/-CnC1KJhY3e8/TzfGqQrUU4I/AAAAAAAAADU/QXvDRX9yKXQ/s1600/PTC-Thermistor.JPG" border="0" alt="[Image: PTC-Thermistor.JPG]" /><br />
<br />
APPLICATIONS<br />
1. PTC thermistors can be used as current-limiting devices for circuit protection, as replacements for fuses. Current through the device causes a small amount of resistive heating. If the current is large enough to generate more heat than the device can lose to its surroundings, the device heats up, causing its resistance to increase, and therefore causing even more heating. This creates a self-reinforcing effect that drives the resistance upwards, reducing the current and voltage available to the device.<br />
<br />
2. PTC thermistors are used as timers in the degaussing coil circuit of most CRT displays and televisions. When the display unit is initially switched on, current flows through the thermistor and degaussing coil. The coil and thermistor are intentionally sized so that the current flow will heat the thermistor to the point that the degaussing coil shuts off in under a second. For effective degaussing,it is necessary that the magnitude of the alternating magnetic field produced by the degaussing coil decreases smoothly and continuously, rather than sharply switching off or decreasing in steps; the PTC thermistor accomplishes this naturally as it heats up. A degaussing circuit using a PTC thermistor is simple, reliable (for its simplicity), and inexpensive.<br />
3. NTC thermistors are used as resistance thermometers in low-temperature measurements of the order of 10 K.<br />
4. NTC thermistors can be used as inrush-current limiting devices in power supply circuits. They present a higher resistance initially which prevents large currents from flowing at turn-on, and then heat up and become much lower resistance to allow higher current flow during normal operation. These thermistors are usually much larger than measuring type thermistors, and are purposely designed for this application.<br />
5. NTC thermistors are regularly used in automotive applications. For example, they monitor things like coolant temperature and/or oil temperature inside the engine and provide data to the ECU and, indirectly, to the dashboard.<br />
6. NTC thermistors can be also used to monitor the temperature of an incubator.<br />
7. Thermistors are also commonly used in modern digital thermostats and to monitor the temperature of battery packs while charging<br />
<br />
ADVANTAGES<br />
1. The thermistors are more sensitive than the RTD's and thermocouples<br />
2. The thermistors have quick response time<br />
3. Large temperature sensitivity, of the order of -4% to -6% per °C.<br />
4. Available in many physical forms for probe configurations.<br />
5. Not subject to standards or constrained by material types which gives many options for customization of mechanical and electrical characteristics.<br />
6. Tight tolerances available (typically +/-0.1°C, +/- 0.2°C and customized values).<br />
7. Interchangeable devices eliminate need for individual sensor calibrations.<br />
8. Standard two-wire connection system.<br />
9. Good electrical noise immunity.<br />
10. Easy to interface to electronic instrumentation.<br />
11. Can be customized to optimize thermal response.<br />
12. Relationship between resistance and temperature of NTC thermistor sensors can be modeled easily by standard equations.<br />
13. Temperature range can be extended from -100°C to + 300°C with special constructions.<br />
<br />
DISADVANTAGES<br />
1. Linearity of a thermistor is not good<br />
2. Since they are made of semiconductor, thermistors are susceptible to permanent deceleration at high temperatures than are RTD's or the thermocouples.<br />
3. Operating temperature limited to approximately -60 to +300 ºCelsius<br />
4. Current source required]]></description>
			<content:encoded><![CDATA[PTC thermistors have been used in a wide variety of applications over the years. PTC thermistor applications make use of the characteristics inherent in their composition. Generally, applications are broken up into two distinct categories that utilize different characteristics of the PTC. The first category is those applications that utilize the voltage-current or current-time characteristics of the PTC thermistor. These are sometimes known as self-heated applications. The other general category is zero power or sensing applications. Unlike the NTC thermistor, the resistance versus temperature characteristic of a PTC thermistor is not well defined and applications that utilize the resistance versus temperature characteristic tend to utilize only a small portion of the R vs. T curve and utilize broader tolerances than that of NTC thermistors.<br />
<br />
<img src="http://4.bp.blogspot.com/-CnC1KJhY3e8/TzfGqQrUU4I/AAAAAAAAADU/QXvDRX9yKXQ/s1600/PTC-Thermistor.JPG" border="0" alt="[Image: PTC-Thermistor.JPG]" /><br />
<br />
APPLICATIONS<br />
1. PTC thermistors can be used as current-limiting devices for circuit protection, as replacements for fuses. Current through the device causes a small amount of resistive heating. If the current is large enough to generate more heat than the device can lose to its surroundings, the device heats up, causing its resistance to increase, and therefore causing even more heating. This creates a self-reinforcing effect that drives the resistance upwards, reducing the current and voltage available to the device.<br />
<br />
2. PTC thermistors are used as timers in the degaussing coil circuit of most CRT displays and televisions. When the display unit is initially switched on, current flows through the thermistor and degaussing coil. The coil and thermistor are intentionally sized so that the current flow will heat the thermistor to the point that the degaussing coil shuts off in under a second. For effective degaussing,it is necessary that the magnitude of the alternating magnetic field produced by the degaussing coil decreases smoothly and continuously, rather than sharply switching off or decreasing in steps; the PTC thermistor accomplishes this naturally as it heats up. A degaussing circuit using a PTC thermistor is simple, reliable (for its simplicity), and inexpensive.<br />
3. NTC thermistors are used as resistance thermometers in low-temperature measurements of the order of 10 K.<br />
4. NTC thermistors can be used as inrush-current limiting devices in power supply circuits. They present a higher resistance initially which prevents large currents from flowing at turn-on, and then heat up and become much lower resistance to allow higher current flow during normal operation. These thermistors are usually much larger than measuring type thermistors, and are purposely designed for this application.<br />
5. NTC thermistors are regularly used in automotive applications. For example, they monitor things like coolant temperature and/or oil temperature inside the engine and provide data to the ECU and, indirectly, to the dashboard.<br />
6. NTC thermistors can be also used to monitor the temperature of an incubator.<br />
7. Thermistors are also commonly used in modern digital thermostats and to monitor the temperature of battery packs while charging<br />
<br />
ADVANTAGES<br />
1. The thermistors are more sensitive than the RTD's and thermocouples<br />
2. The thermistors have quick response time<br />
3. Large temperature sensitivity, of the order of -4% to -6% per °C.<br />
4. Available in many physical forms for probe configurations.<br />
5. Not subject to standards or constrained by material types which gives many options for customization of mechanical and electrical characteristics.<br />
6. Tight tolerances available (typically +/-0.1°C, +/- 0.2°C and customized values).<br />
7. Interchangeable devices eliminate need for individual sensor calibrations.<br />
8. Standard two-wire connection system.<br />
9. Good electrical noise immunity.<br />
10. Easy to interface to electronic instrumentation.<br />
11. Can be customized to optimize thermal response.<br />
12. Relationship between resistance and temperature of NTC thermistor sensors can be modeled easily by standard equations.<br />
13. Temperature range can be extended from -100°C to + 300°C with special constructions.<br />
<br />
DISADVANTAGES<br />
1. Linearity of a thermistor is not good<br />
2. Since they are made of semiconductor, thermistors are susceptible to permanent deceleration at high temperatures than are RTD's or the thermocouples.<br />
3. Operating temperature limited to approximately -60 to +300 ºCelsius<br />
4. Current source required]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Inductive proximity sensors]]></title>
			<link>http://www.mcuexamples.com/forum/showthread.php?tid=649</link>
			<pubDate>Sun, 12 Feb 2012 14:39:22 +0600</pubDate>
			<guid isPermaLink="false">http://www.mcuexamples.com/forum/showthread.php?tid=649</guid>
			<description><![CDATA[This proximity sensor detects the presence of metallic objects. Operating principle of this sensor is based on a coil and high frequency oscillator that creates a field in the close surrounding of the sensing surface. The presence of metal in the operating area causes a change in the oscillation amplitude. This change is identified by a threshold circuit. Threshold circuit changes the output of the sensor. The operating distance of the sensor depends on the coil’s size as well as the target’s shape, size and material.<br />
<br />
<img src="http://2.bp.blogspot.com/-1IqKe9R-wDo/Tzd59m3bwWI/AAAAAAAAAC8/kkGVpmmJ5P0/s1600/Inductive-proximity-sensor1.jpg" border="0" alt="[Image: Inductive-proximity-sensor1.jpg]" /><br />
<br />
<img src="http://4.bp.blogspot.com/-DJabSwlDKqI/Tzd5-qzX6kI/AAAAAAAAADE/49L80Ywn8nA/s1600/Inductive-proximity-sensor2.jpg" border="0" alt="[Image: Inductive-proximity-sensor2.jpg]" />]]></description>
			<content:encoded><![CDATA[This proximity sensor detects the presence of metallic objects. Operating principle of this sensor is based on a coil and high frequency oscillator that creates a field in the close surrounding of the sensing surface. The presence of metal in the operating area causes a change in the oscillation amplitude. This change is identified by a threshold circuit. Threshold circuit changes the output of the sensor. The operating distance of the sensor depends on the coil’s size as well as the target’s shape, size and material.<br />
<br />
<img src="http://2.bp.blogspot.com/-1IqKe9R-wDo/Tzd59m3bwWI/AAAAAAAAAC8/kkGVpmmJ5P0/s1600/Inductive-proximity-sensor1.jpg" border="0" alt="[Image: Inductive-proximity-sensor1.jpg]" /><br />
<br />
<img src="http://4.bp.blogspot.com/-DJabSwlDKqI/Tzd5-qzX6kI/AAAAAAAAADE/49L80Ywn8nA/s1600/Inductive-proximity-sensor2.jpg" border="0" alt="[Image: Inductive-proximity-sensor2.jpg]" />]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Gyroscope.]]></title>
			<link>http://www.mcuexamples.com/forum/showthread.php?tid=648</link>
			<pubDate>Sun, 12 Feb 2012 14:25:35 +0600</pubDate>
			<guid isPermaLink="false">http://www.mcuexamples.com/forum/showthread.php?tid=648</guid>
			<description><![CDATA[Technically, a gyroscope is any device that can measure angular velocity. As early Gyroscopes are available that can measure rotational velocity in 1, 2, or 3 directions. 3-axis gyroscopes are often implemented with a 3-axis accelerometer to provide a full 6 degree-of-freedom motion tracking system. Gyroscopes have cause from mechanical-inertial spinning devices including of rotors, axles, and gimbals to various incarnations of electronic and optical devices There are three basic types of gyroscope can identified as,<br />
<br />
 Vibrating Structure Gyroscope<br />
 Rotary gyroscopes<br />
 Optical Gyroscope<br />
<br />
Gyroscope Function,<br />
Gyroscopes function differently depending on their type of its. Traditional spinning gyroscopes work on the basis that a spinning object that is tilted perpendicularly to the direction of the spin. Optical gyroscopes are most commonly ring laser gyroscopes. These devices send two lasers around a circular path in opposite directions.<br />
Optical gyroscopes are a most improvement to the spinning mass gyroscopes because of there is no wear, greater reliability and smaller in the size and weight.<br />
After the inventing of laser ring gyroscopes, a lot of properties were desired. MEMS vibrating mass gyroscopes aimed to create smaller and high sensitive devices.]]></description>
			<content:encoded><![CDATA[Technically, a gyroscope is any device that can measure angular velocity. As early Gyroscopes are available that can measure rotational velocity in 1, 2, or 3 directions. 3-axis gyroscopes are often implemented with a 3-axis accelerometer to provide a full 6 degree-of-freedom motion tracking system. Gyroscopes have cause from mechanical-inertial spinning devices including of rotors, axles, and gimbals to various incarnations of electronic and optical devices There are three basic types of gyroscope can identified as,<br />
<br />
 Vibrating Structure Gyroscope<br />
 Rotary gyroscopes<br />
 Optical Gyroscope<br />
<br />
Gyroscope Function,<br />
Gyroscopes function differently depending on their type of its. Traditional spinning gyroscopes work on the basis that a spinning object that is tilted perpendicularly to the direction of the spin. Optical gyroscopes are most commonly ring laser gyroscopes. These devices send two lasers around a circular path in opposite directions.<br />
Optical gyroscopes are a most improvement to the spinning mass gyroscopes because of there is no wear, greater reliability and smaller in the size and weight.<br />
After the inventing of laser ring gyroscopes, a lot of properties were desired. MEMS vibrating mass gyroscopes aimed to create smaller and high sensitive devices.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Load cells]]></title>
			<link>http://www.mcuexamples.com/forum/showthread.php?tid=647</link>
			<pubDate>Sun, 12 Feb 2012 14:24:33 +0600</pubDate>
			<guid isPermaLink="false">http://www.mcuexamples.com/forum/showthread.php?tid=647</guid>
			<description><![CDATA[It is a device That converts a forces in to electrical signals.This conversion will not happen in derectly and it happen in two stages through a mechanical arrangement. The force will measure as deformation and converts to electrical signal because the strain will change the effective electrical resistance of a wire. also A load cell usually consists of four strain gauges. The electrical signal output is typically in the order of a few millivolts and it wants amplification by an instrumentation amplifier before it used. The output of the transducer is injected into an algorithm to calculate the force applied to the transducer.So many types of load cells can be identified as bellow,<br />
 Low profile load cells<br />
 Bending beam load cells<br />
 Canister load cells<br />
 Hydraulic load cells<br />
 Pneumatic load cells<br />
 Compression load cells<br />
 S beam load cells<br />
 Platform and single point load cells<br />
<br />
APPLICATIONS, <br />
For aircraft component fatigue testing <br />
Weighing equipment<br />
For cranes &amp; lifting equipments <br />
For machine building &amp; monitoring <br />
For force checking &amp; monitoring <br />
For wind turbine testing and R&amp;D...etc.]]></description>
			<content:encoded><![CDATA[It is a device That converts a forces in to electrical signals.This conversion will not happen in derectly and it happen in two stages through a mechanical arrangement. The force will measure as deformation and converts to electrical signal because the strain will change the effective electrical resistance of a wire. also A load cell usually consists of four strain gauges. The electrical signal output is typically in the order of a few millivolts and it wants amplification by an instrumentation amplifier before it used. The output of the transducer is injected into an algorithm to calculate the force applied to the transducer.So many types of load cells can be identified as bellow,<br />
 Low profile load cells<br />
 Bending beam load cells<br />
 Canister load cells<br />
 Hydraulic load cells<br />
 Pneumatic load cells<br />
 Compression load cells<br />
 S beam load cells<br />
 Platform and single point load cells<br />
<br />
APPLICATIONS, <br />
For aircraft component fatigue testing <br />
Weighing equipment<br />
For cranes &amp; lifting equipments <br />
For machine building &amp; monitoring <br />
For force checking &amp; monitoring <br />
For wind turbine testing and R&amp;D...etc.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Photodiodes]]></title>
			<link>http://www.mcuexamples.com/forum/showthread.php?tid=646</link>
			<pubDate>Sun, 12 Feb 2012 14:23:02 +0600</pubDate>
			<guid isPermaLink="false">http://www.mcuexamples.com/forum/showthread.php?tid=646</guid>
			<description><![CDATA[Photodiode is an electrical device which is used to detect and convert light into an electrical energy signal through the use of a photo detector. Also the photodiode canbe used as a fiber optic element to deliver the light to the diode circuit and for convert it to electrical signal. Its function is basically same to the function of a solar panel or window.<br />
<br />
There are some types of photodiode that can identified as,<br />
 The p-n and p-i-n photodiodes<br />
Those are the most commonly used, but<br />
Avalanche photodiodes<br />
Those are also available but lower than first case. <br />
Working principle Photodiode also same as diode. it has PN junction. Therefore, it has intrinsic semi-conductive region. So when expose to the light it create positive holes and free electrons. When occur holes and electrons it tends to pass current through junction. Electronic/circuit symbol<br />
<br />
APPLICATIONS <br />
 Charge-coupled devices, <br />
 Compact disc players, <br />
 Photoconductors, <br />
 Photomultiplier tubes. <br />
 Smoke detectors. <br />
 Infrared remote control devices.]]></description>
			<content:encoded><![CDATA[Photodiode is an electrical device which is used to detect and convert light into an electrical energy signal through the use of a photo detector. Also the photodiode canbe used as a fiber optic element to deliver the light to the diode circuit and for convert it to electrical signal. Its function is basically same to the function of a solar panel or window.<br />
<br />
There are some types of photodiode that can identified as,<br />
 The p-n and p-i-n photodiodes<br />
Those are the most commonly used, but<br />
Avalanche photodiodes<br />
Those are also available but lower than first case. <br />
Working principle Photodiode also same as diode. it has PN junction. Therefore, it has intrinsic semi-conductive region. So when expose to the light it create positive holes and free electrons. When occur holes and electrons it tends to pass current through junction. Electronic/circuit symbol<br />
<br />
APPLICATIONS <br />
 Charge-coupled devices, <br />
 Compact disc players, <br />
 Photoconductors, <br />
 Photomultiplier tubes. <br />
 Smoke detectors. <br />
 Infrared remote control devices.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Phototransistor Switch,]]></title>
			<link>http://www.mcuexamples.com/forum/showthread.php?tid=645</link>
			<pubDate>Sun, 12 Feb 2012 14:21:46 +0600</pubDate>
			<guid isPermaLink="false">http://www.mcuexamples.com/forum/showthread.php?tid=645</guid>
			<description><![CDATA[Phototransistors circuits may be adjusted for a selected sensitivity range and often do not require additional amplification. Mostly phototransistors are low cost visible and near IR photo detection, available with gains from 100to 1500, moderately fast response times and available in wide range .They can be applied in two modes, Active or Switch mode also.<br />
Switch mode.<br />
Means the phototransistor will either be “off” or “on” for a digital logic response to the object sensed.<br />
Active Mode.<br />
Means the phototransistor generates an output response based on the light or irradiance level. IC(on) will be proportional to the coupled light intensity.<br />
<br />
<br />
APPLICATIONS<br />
Remote Control of TV<br />
Margin controllers in printers<br />
Monitor paper position in copiers<br />
Monitor paper stack height in copiers<br />
LED light source<br />
Security systems<br />
Safety shields<br />
Encoders...etc.]]></description>
			<content:encoded><![CDATA[Phototransistors circuits may be adjusted for a selected sensitivity range and often do not require additional amplification. Mostly phototransistors are low cost visible and near IR photo detection, available with gains from 100to 1500, moderately fast response times and available in wide range .They can be applied in two modes, Active or Switch mode also.<br />
Switch mode.<br />
Means the phototransistor will either be “off” or “on” for a digital logic response to the object sensed.<br />
Active Mode.<br />
Means the phototransistor generates an output response based on the light or irradiance level. IC(on) will be proportional to the coupled light intensity.<br />
<br />
<br />
APPLICATIONS<br />
Remote Control of TV<br />
Margin controllers in printers<br />
Monitor paper position in copiers<br />
Monitor paper stack height in copiers<br />
LED light source<br />
Security systems<br />
Safety shields<br />
Encoders...etc.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[LDR]]></title>
			<link>http://www.mcuexamples.com/forum/showthread.php?tid=644</link>
			<pubDate>Sun, 12 Feb 2012 14:21:06 +0600</pubDate>
			<guid isPermaLink="false">http://www.mcuexamples.com/forum/showthread.php?tid=644</guid>
			<description><![CDATA[Light dependent resistor(LDR).<br />
<br />
It can be also named as photo resistor or light dependent resistor and it is a component that Can sensitive to light. When light falls to the sensor then its resistance will changes gradually. Another thing is LDRs are easy to use and there are many LDR circuits’ available. And light dependent resistors are very useful especially in light or dark sensor circuits also. The resistance of the LDR will change over many orders of magnitude the value of the resistance falling as the level of light increases but normally the resistance of an LDR is very high value.<br />
<br />
APPLICATIONS<br />
 Camera Light Meters.<br />
Street lights.<br />
 Clock Radios.<br />
Alarm Devices.<br />
Outdoor locks.<br />
Light Interruption Detectors]]></description>
			<content:encoded><![CDATA[Light dependent resistor(LDR).<br />
<br />
It can be also named as photo resistor or light dependent resistor and it is a component that Can sensitive to light. When light falls to the sensor then its resistance will changes gradually. Another thing is LDRs are easy to use and there are many LDR circuits’ available. And light dependent resistors are very useful especially in light or dark sensor circuits also. The resistance of the LDR will change over many orders of magnitude the value of the resistance falling as the level of light increases but normally the resistance of an LDR is very high value.<br />
<br />
APPLICATIONS<br />
 Camera Light Meters.<br />
Street lights.<br />
 Clock Radios.<br />
Alarm Devices.<br />
Outdoor locks.<br />
Light Interruption Detectors]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Temperature sensors]]></title>
			<link>http://www.mcuexamples.com/forum/showthread.php?tid=643</link>
			<pubDate>Sun, 12 Feb 2012 14:19:55 +0600</pubDate>
			<guid isPermaLink="false">http://www.mcuexamples.com/forum/showthread.php?tid=643</guid>
			<description><![CDATA[Temperature sensors<br />
1 .1Thermocouple.<br />
The thermocouple is most commonly used type of temperature sensing device. It is a very simple device among sensors and it is easy to use and speed of response to changes in temperature, and also size of this sensor is very small. Important thing is it also have widest temperature range of all temperature sensors ( -200 0C to 20000C).<br />
<br />
Basic thing is it is a junction between two dissimilar metals.and also six type of thermocouples can identify basically.<br />
APPLICATIONS OF THERMOCUPLES<br />
 Thermic fluid heaters<br />
 Ovens<br />
 Boilers<br />
 Duct lines<br />
<br />
Resistance type sensors,<br />
These work on the principle that the electrical resistance of a conductor change with temperature of the conductor.<br />
<br />
<br />
1.2 Thermistors.<br />
<br />
Thermistor is a device which is used for sense the temperature. Thermistors have property of varies the resistance proportional to their Changes of temperature .There are two Kind of thermistors can identified as, Negative Coefficient of Resistance type(NTC) and Positive temperature Coefficient of resistance type (PTC).<br />
<br />
NTC type,<br />
In this case, the resistance is inversely proportional to temperature and the applications of this type of sensors as bellow,<br />
 Resistance thermometers<br />
 Digital thermostats<br />
 Inrush-current limiting devices<br />
 Automotive applications<br />
<br />
PTC type,<br />
This case is the reveres of NTC type thermestor. It means when increase temperature the resistance also will increase, not same as first case. And the applications also as bellow.<br />
 Used in overload protect circuits<br />
 Used in thermal switches<br />
 Ordinary thermometers<br />
Overall Practical Applications of Thermestors<br />
 Fire alarms<br />
 Electronic air conditioners<br />
 Audio amplifiers<br />
 Mobile phones<br />
 Electric water heaters]]></description>
			<content:encoded><![CDATA[Temperature sensors<br />
1 .1Thermocouple.<br />
The thermocouple is most commonly used type of temperature sensing device. It is a very simple device among sensors and it is easy to use and speed of response to changes in temperature, and also size of this sensor is very small. Important thing is it also have widest temperature range of all temperature sensors ( -200 0C to 20000C).<br />
<br />
Basic thing is it is a junction between two dissimilar metals.and also six type of thermocouples can identify basically.<br />
APPLICATIONS OF THERMOCUPLES<br />
 Thermic fluid heaters<br />
 Ovens<br />
 Boilers<br />
 Duct lines<br />
<br />
Resistance type sensors,<br />
These work on the principle that the electrical resistance of a conductor change with temperature of the conductor.<br />
<br />
<br />
1.2 Thermistors.<br />
<br />
Thermistor is a device which is used for sense the temperature. Thermistors have property of varies the resistance proportional to their Changes of temperature .There are two Kind of thermistors can identified as, Negative Coefficient of Resistance type(NTC) and Positive temperature Coefficient of resistance type (PTC).<br />
<br />
NTC type,<br />
In this case, the resistance is inversely proportional to temperature and the applications of this type of sensors as bellow,<br />
 Resistance thermometers<br />
 Digital thermostats<br />
 Inrush-current limiting devices<br />
 Automotive applications<br />
<br />
PTC type,<br />
This case is the reveres of NTC type thermestor. It means when increase temperature the resistance also will increase, not same as first case. And the applications also as bellow.<br />
 Used in overload protect circuits<br />
 Used in thermal switches<br />
 Ordinary thermometers<br />
Overall Practical Applications of Thermestors<br />
 Fire alarms<br />
 Electronic air conditioners<br />
 Audio amplifiers<br />
 Mobile phones<br />
 Electric water heaters]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[sensor types]]></title>
			<link>http://www.mcuexamples.com/forum/showthread.php?tid=642</link>
			<pubDate>Sun, 12 Feb 2012 14:07:53 +0600</pubDate>
			<guid isPermaLink="false">http://www.mcuexamples.com/forum/showthread.php?tid=642</guid>
			<description><![CDATA[Almost any modern system use sensors to observe the environment and actuators to influence this environment. a basic description about sensors and actuators can express as bellow,<br />
<br />
<br />
Thermal sensors,<br />
Thermometer –Used to measure absolute temperature.<br />
Thermocouple gauge– Used to measure temperature by its affect on two various metals<br />
Calorimeter – Used to measure the heat of chemical reactions or physical changes and capacity of heat<br />
<br />
<br />
Mechanical sensors,<br />
Pressure sensor – To measure pressure<br />
Barometer – measures atmospheric pressure inclined barometer<br />
Liquid flow sensor – Used to measure flow rate of the liquid flow<br />
Gas flow sensor – In addition to flow rate, it can measure velocity and direction also gasses<br />
Accelerometer – measures acceleration<br />
<br />
Electrical sensors,<br />
Ohmmeter –Used to measure resistance of something<br />
Voltmeter – measures voltage of something<br />
Galvanometer – Used to measure amount of current<br />
Chemical sensors,<br />
Oxygen sensor – measures the percentage of oxygen in a gas or liquid.<br />
<br />
Other types of sensors,<br />
<br />
Optical sensors<br />
Light sensors (photodetectors)<br />
Photocells (photoresistor)<br />
Infra-red sensor<br />
Acoustic wave sensors<br />
Motion sensors<br />
Speedometer<br />
Force sensors<br />
Biological sensors.]]></description>
			<content:encoded><![CDATA[Almost any modern system use sensors to observe the environment and actuators to influence this environment. a basic description about sensors and actuators can express as bellow,<br />
<br />
<br />
Thermal sensors,<br />
Thermometer –Used to measure absolute temperature.<br />
Thermocouple gauge– Used to measure temperature by its affect on two various metals<br />
Calorimeter – Used to measure the heat of chemical reactions or physical changes and capacity of heat<br />
<br />
<br />
Mechanical sensors,<br />
Pressure sensor – To measure pressure<br />
Barometer – measures atmospheric pressure inclined barometer<br />
Liquid flow sensor – Used to measure flow rate of the liquid flow<br />
Gas flow sensor – In addition to flow rate, it can measure velocity and direction also gasses<br />
Accelerometer – measures acceleration<br />
<br />
Electrical sensors,<br />
Ohmmeter –Used to measure resistance of something<br />
Voltmeter – measures voltage of something<br />
Galvanometer – Used to measure amount of current<br />
Chemical sensors,<br />
Oxygen sensor – measures the percentage of oxygen in a gas or liquid.<br />
<br />
Other types of sensors,<br />
<br />
Optical sensors<br />
Light sensors (photodetectors)<br />
Photocells (photoresistor)<br />
Infra-red sensor<br />
Acoustic wave sensors<br />
Motion sensors<br />
Speedometer<br />
Force sensors<br />
Biological sensors.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[SDCC + PIC16F877A: Problem with interrupt]]></title>
			<link>http://www.mcuexamples.com/forum/showthread.php?tid=618</link>
			<pubDate>Sun, 18 Dec 2011 08:16:44 +0600</pubDate>
			<guid isPermaLink="false">http://www.mcuexamples.com/forum/showthread.php?tid=618</guid>
			<description><![CDATA[The following is my code for part of my coding for pic16f877a. The problem is, after the interrupt routine (each time the usart receive a byte), the address returns to the beginning of main(). But I want it to return to the DESIRED_POSITION in the code below. How to do this? Thanks in advance.<br />
<br />
When entering a char to the usart (using gpsim) after the DESIRED_POSITION is passed, the interrupt still return to the beginning of main(). <img src="images/smilies/sad.gif" style="vertical-align: middle;" border="0" alt="Sad" title="Sad" /><br />
<br />
void main () {<br />
    char c, *s, *s1, *response, prev_c;<br />
    int count=0, start_count = 0;<br />
    int stop = 0, resplen;<br />
<br />
    ADCON1 = 0x06; //Set all Port A pins<br />
    TRISA  = 0xff;  //as digital inputs<br />
    TRISB  = 1 | NOR_LATCH_PINS; //Set RB0 and NOR latch pins as input<br />
    TRISC  = 0xe0;<br />
    TRISD  = 0xf0;<br />
<br />
    /* Interrupt settings */<br />
    GIE = 1;<br />
    PEIE = 1;<br />
    INTE = 1; //Enable RB0 interrupt<br />
    INTEDG = 1;<br />
    <br />
    delay_ms (200);<br />
<br />
    usartInit ();<br />
    usartPuts ("AT+CPMS=\"SM\"\n"); &lt;!-- DESIRED POSITION<br />
<br />
    while (1) {<br />
//         RB4 = RA1;<br />
//         RB5 = RA2;<br />
//         RB6 = RA3;<br />
//         RB7 = RA4;<br />
        norLatchRun (); //run nor latch<br />
    }<br />
}<br />
<br />
void ISR (void) __interrupt<br />
{<br />
    char c;<br />
    unsigned int MSG_Length = 50;<br />
    static int called = 0, index = 0;<br />
    <br />
    if (RCIF) {<br />
        if (index &gt; MSG_Length)<br />
            index = 0;<br />
        <br />
		String[index] = RCREG;<br />
        usartPutc (String[index]);<br />
		if(String[index] != 13 &amp;&amp; String[index] != 10)<br />
		{<br />
			String[index + 1] = '\0'; // Set the next character to NULL<br />
			index++;<br />
		}<br />
		else<br />
		{<br />
		    String[index + 1] = '\0'; // Set the next character to NULL<br />
            index = 0;<br />
		}<br />
        goto LOOP;<br />
	}<br />
    <br />
    if (INTF) {<br />
        if (!called) {<br />
            usartPuts ("ATD+xxxxxx;\n");<br />
        }<br />
        INTF = 0;<br />
    }<br />
}]]></description>
			<content:encoded><![CDATA[The following is my code for part of my coding for pic16f877a. The problem is, after the interrupt routine (each time the usart receive a byte), the address returns to the beginning of main(). But I want it to return to the DESIRED_POSITION in the code below. How to do this? Thanks in advance.<br />
<br />
When entering a char to the usart (using gpsim) after the DESIRED_POSITION is passed, the interrupt still return to the beginning of main(). <img src="images/smilies/sad.gif" style="vertical-align: middle;" border="0" alt="Sad" title="Sad" /><br />
<br />
void main () {<br />
    char c, *s, *s1, *response, prev_c;<br />
    int count=0, start_count = 0;<br />
    int stop = 0, resplen;<br />
<br />
    ADCON1 = 0x06; //Set all Port A pins<br />
    TRISA  = 0xff;  //as digital inputs<br />
    TRISB  = 1 | NOR_LATCH_PINS; //Set RB0 and NOR latch pins as input<br />
    TRISC  = 0xe0;<br />
    TRISD  = 0xf0;<br />
<br />
    /* Interrupt settings */<br />
    GIE = 1;<br />
    PEIE = 1;<br />
    INTE = 1; //Enable RB0 interrupt<br />
    INTEDG = 1;<br />
    <br />
    delay_ms (200);<br />
<br />
    usartInit ();<br />
    usartPuts ("AT+CPMS=\"SM\"\n"); &lt;!-- DESIRED POSITION<br />
<br />
    while (1) {<br />
//         RB4 = RA1;<br />
//         RB5 = RA2;<br />
//         RB6 = RA3;<br />
//         RB7 = RA4;<br />
        norLatchRun (); //run nor latch<br />
    }<br />
}<br />
<br />
void ISR (void) __interrupt<br />
{<br />
    char c;<br />
    unsigned int MSG_Length = 50;<br />
    static int called = 0, index = 0;<br />
    <br />
    if (RCIF) {<br />
        if (index &gt; MSG_Length)<br />
            index = 0;<br />
        <br />
		String[index] = RCREG;<br />
        usartPutc (String[index]);<br />
		if(String[index] != 13 &amp;&amp; String[index] != 10)<br />
		{<br />
			String[index + 1] = '\0'; // Set the next character to NULL<br />
			index++;<br />
		}<br />
		else<br />
		{<br />
		    String[index + 1] = '\0'; // Set the next character to NULL<br />
            index = 0;<br />
		}<br />
        goto LOOP;<br />
	}<br />
    <br />
    if (INTF) {<br />
        if (!called) {<br />
            usartPuts ("ATD+xxxxxx;\n");<br />
        }<br />
        INTF = 0;<br />
    }<br />
}]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[PIC16F887 gas detection system issue.]]></title>
			<link>http://www.mcuexamples.com/forum/showthread.php?tid=617</link>
			<pubDate>Sun, 18 Dec 2011 08:14:22 +0600</pubDate>
			<guid isPermaLink="false">http://www.mcuexamples.com/forum/showthread.php?tid=617</guid>
			<description><![CDATA[I want to design project include micro-controller programmed based on gas leak sensed by gas sensor . Starting at minimum range of 10 PPM(part per million) gas leak measured by the gas sensor,it will send signal to PIC16F887 micro-controller and should be displayed in LCD display. in addition, the microcontroller also will send signal interface with serial port RS 232 to send the signal as message through GSM modem to the authorized person,informing him (there is gas leak). The authorized person can replay by message to the GSM modem and MAX 232 will convert the message as signal received to PIC16F887 MCU.in the same time, the MCU will acknowledge solenoid valve to shut it off and isolate the leak. i have done this programming code but it give me error when I build the program in the compiler !!<br />
<br />
<br />
<br />
<br />
// Lcd pinout settings<br />
sbit LCD_RS at RB0_bit;<br />
sbit LCD_EN at RB1_bit;<br />
sbit LCD_D4 at RB2_bit;<br />
sbit LCD_D5 at RB3_bit;<br />
sbit LCD_D6 at RB4_bit;<br />
sbit LCD_D7 at RB5_bit;<br />
// Pin direction<br />
sbit LCD_RS_Direction at TRISB0_bit;<br />
sbit LCD_EN_Direction at TRISB1_bit;<br />
sbit LCD_D4_Direction at TRISB2_bit;<br />
sbit LCD_D5_Direction at TRISB3_bit;<br />
sbit LCD_D6_Direction at TRISB4_bit;<br />
sbit LCD_D7_Direction at TRISB5_bit;<br />
void Lcd_Init();<br />
void SendMessage();<br />
void CheckGasSensor();<br />
void UpdateLCD();<br />
void SolenoidDisableGas();<br />
//Global sensor status code value<br />
int SENSOR_STATUS_CODE = 0;<br />
//Global gas concentration level<br />
double GAS_CONCENTRATION_LEVEL = 0.0;<br />
void main()<br />
{<br />
<br />
//Setup LCD screen<br />
Lcd_Init();<br />
Lcd_Out(1, 1, "LPG Detector");<br />
Lcd_Cmd(_LCD_CURSOR_OFF);<br />
//Program Run loop<br />
while(1){<br />
//Check for a sensor reading<br />
CheckGasSensor();<br />
<br />
//Update the text on the LCD Screen<br />
UpdateLCD();<br />
//Shut off the gas if the gas level is dangerous<br />
if(SENSOR_STATUS_CODE == 2){<br />
SolenoidDisableGas();<br />
}<br />
<br />
//Send a GSM message if there is an error<br />
if(SENSOR_STATUS_CODE != 0){<br />
SendMessage();<br />
}<br />
//Wait a second between updates<br />
Delay_ms(1000);<br />
}<br />
}<br />
<br />
<br />
<br />
<br />
//Check for a sensor reading<br />
void CheckGasSensor(){<br />
//Put the code here to read the sensor<br />
//<br />
//<br />
//<br />
<br />
if( (GAS_CONCENTRATION_LEVEL &gt; 5) &amp;&amp; (GAS_CONCENTRATION_LEVEL &lt; 10) ){<br />
//Sets the sensor status code to 1 (warning level)<br />
//if the gas is between 5 and 10 ppm<br />
SENSOR_STATUS_CODE = 1;<br />
}<br />
else if(GAS_CONCENTRATION_LEVEL &gt; 10){<br />
//Sets the sensor status code to 2 (danger level)<br />
//if the gas is above 10 ppm<br />
SENSOR_STATUS_CODE = 2;<br />
}<br />
else{<br />
//Sets the sensor status code to 0 (okay)<br />
SENSOR_STATUS_CODE = 0;<br />
}<br />
<br />
}<br />
//Update the text on the LCD Screen<br />
void UpdateLCD(){<br />
//Check if there are no errors<br />
if(SENSOR_STATUS_CODE == 0){<br />
Lcd_Out(2, 1, "Status: Normal ");<br />
}<br />
else if (SENSOR_STATUS_CODE == 1){<br />
Lcd_Out(2, 1, "Status:Warning! ");<br />
}<br />
else if (SENSOR_STATUS_CODE == 2){<br />
Lcd_Out(2, 1, "Status:Gas Off ");<br />
}<br />
}<br />
<br />
//Shut off the Gas<br />
SolenoidDisableGas(){<br />
//Disable the gas by turning on a solenoid<br />
//You can choose which PORT and pin controls the solenoid<br />
PORTB.F0 = 1;<br />
}<br />
<br />
//Send a GSM message if there is an error<br />
void SendMessage(){<br />
UART_init(9600);<br />
<br />
UART_Write_Text("AT+CMGS="); //AT+CMGS=<br />
Delay_ms(1000);<br />
<br />
UART_Write(0x22); //"<br />
Delay_ms(2000);<br />
<br />
UART_Write_Text("0060179291471"); // my no<br />
Delay_ms(2000);<br />
<br />
UART_Write(0x22);<br />
UART_Write(0x0D); //(CR) means Enter<br />
Delay_ms(2000);<br />
<br />
UART_Write_Text("PLG Leak Concentration &gt; 10ppm"); // my text<br />
UART_Write(0x0D); //(CR) means Enter<br />
Delay_ms(2000);<br />
<br />
UART_Write(26); // Ctrl z<br />
Delay_ms(2000);<br />
<br />
UART_Write(0x0D); //(CR) means Enter<br />
Delay_ms(2000);<br />
}]]></description>
			<content:encoded><![CDATA[I want to design project include micro-controller programmed based on gas leak sensed by gas sensor . Starting at minimum range of 10 PPM(part per million) gas leak measured by the gas sensor,it will send signal to PIC16F887 micro-controller and should be displayed in LCD display. in addition, the microcontroller also will send signal interface with serial port RS 232 to send the signal as message through GSM modem to the authorized person,informing him (there is gas leak). The authorized person can replay by message to the GSM modem and MAX 232 will convert the message as signal received to PIC16F887 MCU.in the same time, the MCU will acknowledge solenoid valve to shut it off and isolate the leak. i have done this programming code but it give me error when I build the program in the compiler !!<br />
<br />
<br />
<br />
<br />
// Lcd pinout settings<br />
sbit LCD_RS at RB0_bit;<br />
sbit LCD_EN at RB1_bit;<br />
sbit LCD_D4 at RB2_bit;<br />
sbit LCD_D5 at RB3_bit;<br />
sbit LCD_D6 at RB4_bit;<br />
sbit LCD_D7 at RB5_bit;<br />
// Pin direction<br />
sbit LCD_RS_Direction at TRISB0_bit;<br />
sbit LCD_EN_Direction at TRISB1_bit;<br />
sbit LCD_D4_Direction at TRISB2_bit;<br />
sbit LCD_D5_Direction at TRISB3_bit;<br />
sbit LCD_D6_Direction at TRISB4_bit;<br />
sbit LCD_D7_Direction at TRISB5_bit;<br />
void Lcd_Init();<br />
void SendMessage();<br />
void CheckGasSensor();<br />
void UpdateLCD();<br />
void SolenoidDisableGas();<br />
//Global sensor status code value<br />
int SENSOR_STATUS_CODE = 0;<br />
//Global gas concentration level<br />
double GAS_CONCENTRATION_LEVEL = 0.0;<br />
void main()<br />
{<br />
<br />
//Setup LCD screen<br />
Lcd_Init();<br />
Lcd_Out(1, 1, "LPG Detector");<br />
Lcd_Cmd(_LCD_CURSOR_OFF);<br />
//Program Run loop<br />
while(1){<br />
//Check for a sensor reading<br />
CheckGasSensor();<br />
<br />
//Update the text on the LCD Screen<br />
UpdateLCD();<br />
//Shut off the gas if the gas level is dangerous<br />
if(SENSOR_STATUS_CODE == 2){<br />
SolenoidDisableGas();<br />
}<br />
<br />
//Send a GSM message if there is an error<br />
if(SENSOR_STATUS_CODE != 0){<br />
SendMessage();<br />
}<br />
//Wait a second between updates<br />
Delay_ms(1000);<br />
}<br />
}<br />
<br />
<br />
<br />
<br />
//Check for a sensor reading<br />
void CheckGasSensor(){<br />
//Put the code here to read the sensor<br />
//<br />
//<br />
//<br />
<br />
if( (GAS_CONCENTRATION_LEVEL &gt; 5) &amp;&amp; (GAS_CONCENTRATION_LEVEL &lt; 10) ){<br />
//Sets the sensor status code to 1 (warning level)<br />
//if the gas is between 5 and 10 ppm<br />
SENSOR_STATUS_CODE = 1;<br />
}<br />
else if(GAS_CONCENTRATION_LEVEL &gt; 10){<br />
//Sets the sensor status code to 2 (danger level)<br />
//if the gas is above 10 ppm<br />
SENSOR_STATUS_CODE = 2;<br />
}<br />
else{<br />
//Sets the sensor status code to 0 (okay)<br />
SENSOR_STATUS_CODE = 0;<br />
}<br />
<br />
}<br />
//Update the text on the LCD Screen<br />
void UpdateLCD(){<br />
//Check if there are no errors<br />
if(SENSOR_STATUS_CODE == 0){<br />
Lcd_Out(2, 1, "Status: Normal ");<br />
}<br />
else if (SENSOR_STATUS_CODE == 1){<br />
Lcd_Out(2, 1, "Status:Warning! ");<br />
}<br />
else if (SENSOR_STATUS_CODE == 2){<br />
Lcd_Out(2, 1, "Status:Gas Off ");<br />
}<br />
}<br />
<br />
//Shut off the Gas<br />
SolenoidDisableGas(){<br />
//Disable the gas by turning on a solenoid<br />
//You can choose which PORT and pin controls the solenoid<br />
PORTB.F0 = 1;<br />
}<br />
<br />
//Send a GSM message if there is an error<br />
void SendMessage(){<br />
UART_init(9600);<br />
<br />
UART_Write_Text("AT+CMGS="); //AT+CMGS=<br />
Delay_ms(1000);<br />
<br />
UART_Write(0x22); //"<br />
Delay_ms(2000);<br />
<br />
UART_Write_Text("0060179291471"); // my no<br />
Delay_ms(2000);<br />
<br />
UART_Write(0x22);<br />
UART_Write(0x0D); //(CR) means Enter<br />
Delay_ms(2000);<br />
<br />
UART_Write_Text("PLG Leak Concentration &gt; 10ppm"); // my text<br />
UART_Write(0x0D); //(CR) means Enter<br />
Delay_ms(2000);<br />
<br />
UART_Write(26); // Ctrl z<br />
Delay_ms(2000);<br />
<br />
UART_Write(0x0D); //(CR) means Enter<br />
Delay_ms(2000);<br />
}]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[PIC18F4520 interrupt example]]></title>
			<link>http://www.mcuexamples.com/forum/showthread.php?tid=616</link>
			<pubDate>Sat, 17 Dec 2011 13:10:18 +0600</pubDate>
			<guid isPermaLink="false">http://www.mcuexamples.com/forum/showthread.php?tid=616</guid>
			<description><![CDATA[following example uses microchip C18 and demonstrate using interrupts. Interrupt used for receiving data from UART.<br />
<br />
<br />
//<br />
// Designed by <a href="http://www.MCUExamples.com" target="_blank">http://www.MCUExamples.com</a><br />
// rasika0612@gmail.com<br />
// Serial communications example. Echo data comes to serial port<br />
// using serial receive interrupt.<br />
//<br />
<br />
#include &lt;p18f4520.h&gt;<br />
<br />
#pragma config OSC         =    HS     // 20MHz Crystal, (HS oscillator)<br />
#pragma config PBADEN   =    OFF // PORTB&lt;4:0&gt; pins are configured as digital I/O on Reset)<br />
#pragma config WDT         =    OFF // watch dog timer off<br />
#pragma config LVP         =    OFF // Low voltage program off<br />
<br />
unsigned char cUART_char;<br />
unsigned char cUART_data_flg;<br />
<br />
void init_uart(void);<br />
void UART_putc(unsigned char c);<br />
void InterruptHandlerLow ();<br />
<br />
void main()<br />
{<br />
<br />
    init_uart(); // init UART module<br />
    while (1) // infinite loop which handles ncoming data as they arrive<br />
    {<br />
        if (cUART_data_flg==1)// if new data available, send it back through USART tx line (echo it)<br />
        {<br />
            UART_putc(cUART_char); <br />
            cUART_data_flg=0; // clear new data flag so one charactor will echoed once<br />
        }<br />
    }<br />
}<br />
<br />
//----------------------------------------------------------------------------<br />
//----------------------------------------------------------------------------<br />
<br />
#pragma code InterruptVectorLow = 0x18<br />
void InterruptVectorLow (void)<br />
{<br />
  _asm<br />
    goto InterruptHandlerLow //jump to interrupt routine<br />
  _endasm<br />
}<br />
<br />
//----------------------------------------------------------------------------<br />
// Low priority interrupt routine<br />
<br />
#pragma code<br />
#pragma interrupt InterruptHandlerLow<br />
<br />
void InterruptHandlerLow ()<br />
{<br />
  if (PIR1bits.RCIF==1)//is interrupt occured by EUSART receive?, <br />
                        //then RCREG is full we have new data (cleared when RCREG is read)<br />
  {  <br />
    if(RCSTA&amp;0x06) //more efficient way than following commented method to check for reception error <br />
    //if(RCSTAbits.FERR==1 || RCSTAbits.OERR==1 )<br />
    {<br />
      RCSTAbits.CREN=0;    //Overrun error (can be cleared by clearing bit CREN)<br />
      cUART_char=RCREG;    //clear Framing error <br />
      RCSTAbits.CREN=1;<br />
    }<br />
    else<br />
    {<br />
       cUART_char = RCREG; // read new data into variable<br />
       cUART_data_flg = 1; // new data received. so enable flg<br />
    }<br />
  }<br />
}<br />
<br />
//----------------------------------------------------------------------------<br />
//----------------------------------------------------------------------------<br />
<br />
void init_uart(void) // init UART module for 9600bps boud, start bit 1, stopbit 1, parity NONE<br />
{<br />
    cUART_data_flg=0;   // init data receive flag to zero (no data)<br />
    TRISCbits.TRISC7=1; //Make UART RX pin input<br />
    TRISCbits.TRISC6=0; //Make UART TX pin output<br />
    SPBRGH  = 0x02;     //9600bps 20MHz Osc<br />
    SPBRG   = 0x08;        <br />
<br />
    RCSTAbits.CREN=1;   //1 = Enables receiver<br />
    RCSTAbits.SPEN=1;   //1 = Serial port enabled (configures RX/DT and TX/CK pins as serial port pins)<br />
    BAUDCONbits.BRG16=1;//1 = 16-bit Baud Rate Generator – SPBRGH and SPBRG<br />
<br />
    TXSTAbits.SYNC=0;  //0 = Asynchronous mode<br />
    TXSTAbits.BRGH=1;  //1 = High speed <br />
    TXSTAbits.TXEN=1;  //1 = Transmit enabled<br />
<br />
    RCONbits.IPEN = 1;  //enable Interrupt priority levels<br />
    IPR1bits.RCIP=0;     // EUSART Receive Interrupt Priority 0 = Low priority<br />
    PIE1bits.RCIE=1;     // 1 = Enables the EUSART receive interrupt<br />
    INTCONbits.GIEL = 1;//enable interrupts<br />
    INTCONbits.GIEH = 1;      <br />
}<br />
<br />
//----------------------------------------------------------------------------<br />
//----------------------------------------------------------------------------<br />
<br />
void UART_putc(unsigned char c)<br />
{<br />
  TXSTAbits.TXEN=0;// disable transmission<br />
  TXREG=c;            // load txreg with data<br />
  TXSTAbits.TXEN=1;    // enable transmission<br />
  while(TXSTAbits.TRMT==0) // wait here till transmit complete<br />
  {<br />
    Nop();<br />
  }<br />
}]]></description>
			<content:encoded><![CDATA[following example uses microchip C18 and demonstrate using interrupts. Interrupt used for receiving data from UART.<br />
<br />
<br />
//<br />
// Designed by <a href="http://www.MCUExamples.com" target="_blank">http://www.MCUExamples.com</a><br />
// rasika0612@gmail.com<br />
// Serial communications example. Echo data comes to serial port<br />
// using serial receive interrupt.<br />
//<br />
<br />
#include &lt;p18f4520.h&gt;<br />
<br />
#pragma config OSC         =    HS     // 20MHz Crystal, (HS oscillator)<br />
#pragma config PBADEN   =    OFF // PORTB&lt;4:0&gt; pins are configured as digital I/O on Reset)<br />
#pragma config WDT         =    OFF // watch dog timer off<br />
#pragma config LVP         =    OFF // Low voltage program off<br />
<br />
unsigned char cUART_char;<br />
unsigned char cUART_data_flg;<br />
<br />
void init_uart(void);<br />
void UART_putc(unsigned char c);<br />
void InterruptHandlerLow ();<br />
<br />
void main()<br />
{<br />
<br />
    init_uart(); // init UART module<br />
    while (1) // infinite loop which handles ncoming data as they arrive<br />
    {<br />
        if (cUART_data_flg==1)// if new data available, send it back through USART tx line (echo it)<br />
        {<br />
            UART_putc(cUART_char); <br />
            cUART_data_flg=0; // clear new data flag so one charactor will echoed once<br />
        }<br />
    }<br />
}<br />
<br />
//----------------------------------------------------------------------------<br />
//----------------------------------------------------------------------------<br />
<br />
#pragma code InterruptVectorLow = 0x18<br />
void InterruptVectorLow (void)<br />
{<br />
  _asm<br />
    goto InterruptHandlerLow //jump to interrupt routine<br />
  _endasm<br />
}<br />
<br />
//----------------------------------------------------------------------------<br />
// Low priority interrupt routine<br />
<br />
#pragma code<br />
#pragma interrupt InterruptHandlerLow<br />
<br />
void InterruptHandlerLow ()<br />
{<br />
  if (PIR1bits.RCIF==1)//is interrupt occured by EUSART receive?, <br />
                        //then RCREG is full we have new data (cleared when RCREG is read)<br />
  {  <br />
    if(RCSTA&amp;0x06) //more efficient way than following commented method to check for reception error <br />
    //if(RCSTAbits.FERR==1 || RCSTAbits.OERR==1 )<br />
    {<br />
      RCSTAbits.CREN=0;    //Overrun error (can be cleared by clearing bit CREN)<br />
      cUART_char=RCREG;    //clear Framing error <br />
      RCSTAbits.CREN=1;<br />
    }<br />
    else<br />
    {<br />
       cUART_char = RCREG; // read new data into variable<br />
       cUART_data_flg = 1; // new data received. so enable flg<br />
    }<br />
  }<br />
}<br />
<br />
//----------------------------------------------------------------------------<br />
//----------------------------------------------------------------------------<br />
<br />
void init_uart(void) // init UART module for 9600bps boud, start bit 1, stopbit 1, parity NONE<br />
{<br />
    cUART_data_flg=0;   // init data receive flag to zero (no data)<br />
    TRISCbits.TRISC7=1; //Make UART RX pin input<br />
    TRISCbits.TRISC6=0; //Make UART TX pin output<br />
    SPBRGH  = 0x02;     //9600bps 20MHz Osc<br />
    SPBRG   = 0x08;        <br />
<br />
    RCSTAbits.CREN=1;   //1 = Enables receiver<br />
    RCSTAbits.SPEN=1;   //1 = Serial port enabled (configures RX/DT and TX/CK pins as serial port pins)<br />
    BAUDCONbits.BRG16=1;//1 = 16-bit Baud Rate Generator – SPBRGH and SPBRG<br />
<br />
    TXSTAbits.SYNC=0;  //0 = Asynchronous mode<br />
    TXSTAbits.BRGH=1;  //1 = High speed <br />
    TXSTAbits.TXEN=1;  //1 = Transmit enabled<br />
<br />
    RCONbits.IPEN = 1;  //enable Interrupt priority levels<br />
    IPR1bits.RCIP=0;     // EUSART Receive Interrupt Priority 0 = Low priority<br />
    PIE1bits.RCIE=1;     // 1 = Enables the EUSART receive interrupt<br />
    INTCONbits.GIEL = 1;//enable interrupts<br />
    INTCONbits.GIEH = 1;      <br />
}<br />
<br />
//----------------------------------------------------------------------------<br />
//----------------------------------------------------------------------------<br />
<br />
void UART_putc(unsigned char c)<br />
{<br />
  TXSTAbits.TXEN=0;// disable transmission<br />
  TXREG=c;            // load txreg with data<br />
  TXSTAbits.TXEN=1;    // enable transmission<br />
  while(TXSTAbits.TRMT==0) // wait here till transmit complete<br />
  {<br />
    Nop();<br />
  }<br />
}]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[sending email using SIM300 GSM module using AT commands]]></title>
			<link>http://www.mcuexamples.com/forum/showthread.php?tid=614</link>
			<pubDate>Fri, 16 Dec 2011 15:33:23 +0600</pubDate>
			<guid isPermaLink="false">http://www.mcuexamples.com/forum/showthread.php?tid=614</guid>
			<description><![CDATA[I am trying to send email through GPRS modem (SIM300) connected presently with serial port of PC and working on AT commands issued using hyper terminal.<br />
<br />
I am able to connect to the smtp server of gmail. Once this is done it ask for STARTTLS before any command is issued. Once it issue this command server send me the message ready for TLS negotiation and then after when any command is sent, the connection is closed. Below are some of the efforts i have made using hyerterminal without success.<br />
<br />
Kindly let me know how to do TLS negotiation and send an email. I have referred some of the threads on this forum, but could not get the direction. I am more an EC engg. know little less about the smtp protocols or way in which these server works....<br />
<br />
kindly guide<br />
<br />
at<br />
OK<br />
at+cmgf=1<br />
OK<br />
at+cscs="GSM"<br />
OK<br />
at+CGATT?<br />
+CGATT: 1<br />
<br />
OK<br />
at+cipsrip=1<br />
OK<br />
at+cgdcont=1,"IP","portalnmms"<br />
OK<br />
at+cstt="portalnmms","",""<br />
OK<br />
at+ciicr<br />
OK<br />
at+cifsr<br />
10.16.173.236<br />
at+cipstatus<br />
OK<br />
<br />
STATE: IP STATUS<br />
at+cdnsorip=0<br />
OK<br />
at+cipstart="TCP","74.125.115.109","25"<br />
OK<br />
<br />
CONNECT OK<br />
<br />
RECV FROM:74.125.115.109:25<br />
220 mx.google.com ESMTP e7sm2818994vdh.25<br />
at+cipsend<br />
&gt; HELO smtp.gmail.com<br />
<br />
SEND OK<br />
<br />
RECV FROM:74.125.115.109:25<br />
250 mx.google.com at your service<br />
at+cipsend<br />
&gt; MAIL FROM:&lt;mail@gmail.com&gt;<br />
<br />
SEND OK<br />
<br />
RECV FROM:74.125.115.109:25<br />
530 5.7.0 Must issue a STARTTLS command first. e7sm2818994vdh.25<br />
at+cipsend<br />
&gt; STARTTLS<br />
<br />
SEND OK<br />
<br />
RECV FROM:74.125.115.109:25<br />
220 2.0.0 Ready to start TLS<br />
<br />
at+cipsend<br />
&gt; MAIL FROM:&lt;vyasdd.diet@gmail.com&gt;<br />
<br />
SEND OK<br />
<br />
CLOSED<br />
----------------------------------<br />
<br />
at+cipstart="TCP","74.125.115.109","25"<br />
OK<br />
<br />
CONNECT OK<br />
<br />
RECV FROM:74.125.115.109:25<br />
220 mx.google.com ESMTP ig8sm2864011vdb.3<br />
at+cipstatus<br />
OK<br />
<br />
STATE: CONNECT OK<br />
at+cipsend<br />
&gt; EHLO smtp.gmail.com<br />
<br />
SEND OK<br />
<br />
RECV FROM:74.125.115.1<br />
250-mx.google.com at your service, [203.88.11.1]<br />
250-SIZE 35882577<br />
250-8BITMIME<br />
250-STARTTLS<br />
250-ENHANCEDSTATUSCODES<br />
250 PIPELINING<br />
at+cipsend<br />
&gt; MAIL FROM:&lt;vyasdd.diet@ gmail.com&gt;<br />
<br />
SEND OK<br />
<br />
RECV FROM:74.125.115.109:25<br />
530 5.7.0 Must issue a STARTTLS command first. ig8sm2864011vdb.3<br />
at+cipsend<br />
&gt; STARTTLS<br />
<br />
SEND OK<br />
<br />
RECV FROM:74.125.115.109:25<br />
220 2.0.0 Ready to start TLS<br />
at+cipsend<br />
&gt; EHLO smtp.gmail.com<br />
<br />
SEND OK<br />
<br />
CLOSED]]></description>
			<content:encoded><![CDATA[I am trying to send email through GPRS modem (SIM300) connected presently with serial port of PC and working on AT commands issued using hyper terminal.<br />
<br />
I am able to connect to the smtp server of gmail. Once this is done it ask for STARTTLS before any command is issued. Once it issue this command server send me the message ready for TLS negotiation and then after when any command is sent, the connection is closed. Below are some of the efforts i have made using hyerterminal without success.<br />
<br />
Kindly let me know how to do TLS negotiation and send an email. I have referred some of the threads on this forum, but could not get the direction. I am more an EC engg. know little less about the smtp protocols or way in which these server works....<br />
<br />
kindly guide<br />
<br />
at<br />
OK<br />
at+cmgf=1<br />
OK<br />
at+cscs="GSM"<br />
OK<br />
at+CGATT?<br />
+CGATT: 1<br />
<br />
OK<br />
at+cipsrip=1<br />
OK<br />
at+cgdcont=1,"IP","portalnmms"<br />
OK<br />
at+cstt="portalnmms","",""<br />
OK<br />
at+ciicr<br />
OK<br />
at+cifsr<br />
10.16.173.236<br />
at+cipstatus<br />
OK<br />
<br />
STATE: IP STATUS<br />
at+cdnsorip=0<br />
OK<br />
at+cipstart="TCP","74.125.115.109","25"<br />
OK<br />
<br />
CONNECT OK<br />
<br />
RECV FROM:74.125.115.109:25<br />
220 mx.google.com ESMTP e7sm2818994vdh.25<br />
at+cipsend<br />
&gt; HELO smtp.gmail.com<br />
<br />
SEND OK<br />
<br />
RECV FROM:74.125.115.109:25<br />
250 mx.google.com at your service<br />
at+cipsend<br />
&gt; MAIL FROM:&lt;mail@gmail.com&gt;<br />
<br />
SEND OK<br />
<br />
RECV FROM:74.125.115.109:25<br />
530 5.7.0 Must issue a STARTTLS command first. e7sm2818994vdh.25<br />
at+cipsend<br />
&gt; STARTTLS<br />
<br />
SEND OK<br />
<br />
RECV FROM:74.125.115.109:25<br />
220 2.0.0 Ready to start TLS<br />
<br />
at+cipsend<br />
&gt; MAIL FROM:&lt;vyasdd.diet@gmail.com&gt;<br />
<br />
SEND OK<br />
<br />
CLOSED<br />
----------------------------------<br />
<br />
at+cipstart="TCP","74.125.115.109","25"<br />
OK<br />
<br />
CONNECT OK<br />
<br />
RECV FROM:74.125.115.109:25<br />
220 mx.google.com ESMTP ig8sm2864011vdb.3<br />
at+cipstatus<br />
OK<br />
<br />
STATE: CONNECT OK<br />
at+cipsend<br />
&gt; EHLO smtp.gmail.com<br />
<br />
SEND OK<br />
<br />
RECV FROM:74.125.115.1<br />
250-mx.google.com at your service, [203.88.11.1]<br />
250-SIZE 35882577<br />
250-8BITMIME<br />
250-STARTTLS<br />
250-ENHANCEDSTATUSCODES<br />
250 PIPELINING<br />
at+cipsend<br />
&gt; MAIL FROM:&lt;vyasdd.diet@ gmail.com&gt;<br />
<br />
SEND OK<br />
<br />
RECV FROM:74.125.115.109:25<br />
530 5.7.0 Must issue a STARTTLS command first. ig8sm2864011vdb.3<br />
at+cipsend<br />
&gt; STARTTLS<br />
<br />
SEND OK<br />
<br />
RECV FROM:74.125.115.109:25<br />
220 2.0.0 Ready to start TLS<br />
at+cipsend<br />
&gt; EHLO smtp.gmail.com<br />
<br />
SEND OK<br />
<br />
CLOSED]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[GPRS Webserver Issue with SIM900]]></title>
			<link>http://www.mcuexamples.com/forum/showthread.php?tid=613</link>
			<pubDate>Fri, 16 Dec 2011 14:51:43 +0600</pubDate>
			<guid isPermaLink="false">http://www.mcuexamples.com/forum/showthread.php?tid=613</guid>
			<description><![CDATA[i have a problem with my SIM900 module. I use SIM900 as a Webserver in Multiconnection Mode. My project is almost done and working good. I tried to connect with Firefox, Explorer, Opera and Safari browser. SIM900's Webserver worked with all of them properly. But when i tried to connect via Google Chrome, module could'nt give a response. and more, after this time the module cannot be accessible over internet. (Hyper Terminal socket / Webbrowser / (sometimes Ping) )<br />
and after this trouble. i tried to test it with other browsers again. and i noticed that; sometimes same problem happened.<br />
Worst of all, after this error, SIM900 never send any "URC". and when i query the some states it says everything is okey. registration is okey, port listening, gprs state is okey.<br />
i think the problem is related to SIM900's TCP-IP Stack. Maybe it can stall, and never response back to its microprocessor about actual state. so when i try to query the states, i give old states maybe.<br />
<br />
is there anybody who uses sim900's gprs service properly.?<br />
many thanks.<br />
<br />
<br />
after a google chrome html request the situation like this. seems everything is working good. but not. (sometimes other browsers to cause this problem. one or two times a day, but chrome is everytime)<br />
<br />
AT+CGREG?<br />
<br />
+CGREG: 0,1<br />
<br />
OK<br />
AT+CIPSTATUS<br />
<br />
OK<br />
<br />
STATE: IP PROCESSING<br />
<br />
S: 0,0,"80","LISTENING"<br />
<br />
C: 0,0,"TCP","95.8.247.147","20920","CLOSED"<br />
C: 1,0,"TCP","95.8.247.147","20923","CLOSED"<br />
C: 2,,"","","","INITIAL"<br />
C: 3,,"","","","INITIAL"<br />
C: 4,,"","","","INITIAL"<br />
C: 5,,"","","","INITIAL"<br />
C: 6,,"","","","INITIAL"<br />
C: 7,,"","","","INITIAL"]]></description>
			<content:encoded><![CDATA[i have a problem with my SIM900 module. I use SIM900 as a Webserver in Multiconnection Mode. My project is almost done and working good. I tried to connect with Firefox, Explorer, Opera and Safari browser. SIM900's Webserver worked with all of them properly. But when i tried to connect via Google Chrome, module could'nt give a response. and more, after this time the module cannot be accessible over internet. (Hyper Terminal socket / Webbrowser / (sometimes Ping) )<br />
and after this trouble. i tried to test it with other browsers again. and i noticed that; sometimes same problem happened.<br />
Worst of all, after this error, SIM900 never send any "URC". and when i query the some states it says everything is okey. registration is okey, port listening, gprs state is okey.<br />
i think the problem is related to SIM900's TCP-IP Stack. Maybe it can stall, and never response back to its microprocessor about actual state. so when i try to query the states, i give old states maybe.<br />
<br />
is there anybody who uses sim900's gprs service properly.?<br />
many thanks.<br />
<br />
<br />
after a google chrome html request the situation like this. seems everything is working good. but not. (sometimes other browsers to cause this problem. one or two times a day, but chrome is everytime)<br />
<br />
AT+CGREG?<br />
<br />
+CGREG: 0,1<br />
<br />
OK<br />
AT+CIPSTATUS<br />
<br />
OK<br />
<br />
STATE: IP PROCESSING<br />
<br />
S: 0,0,"80","LISTENING"<br />
<br />
C: 0,0,"TCP","95.8.247.147","20920","CLOSED"<br />
C: 1,0,"TCP","95.8.247.147","20923","CLOSED"<br />
C: 2,,"","","","INITIAL"<br />
C: 3,,"","","","INITIAL"<br />
C: 4,,"","","","INITIAL"<br />
C: 5,,"","","","INITIAL"<br />
C: 6,,"","","","INITIAL"<br />
C: 7,,"","","","INITIAL"]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Issue of Software!!!]]></title>
			<link>http://www.mcuexamples.com/forum/showthread.php?tid=588</link>
			<pubDate>Sun, 04 Dec 2011 14:08:04 +0600</pubDate>
			<guid isPermaLink="false">http://www.mcuexamples.com/forum/showthread.php?tid=588</guid>
			<description><![CDATA[Dear Annasi,<br />
as you know im working on the project CHANNEL POSITIONED TV ANTENNA,i need latest software to run it.MPLAB IDE V8.40 is an old version.kindly if you can send me the zip file of new version so that i can run my program.plz]]></description>
			<content:encoded><![CDATA[Dear Annasi,<br />
as you know im working on the project CHANNEL POSITIONED TV ANTENNA,i need latest software to run it.MPLAB IDE V8.40 is an old version.kindly if you can send me the zip file of new version so that i can run my program.plz]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[ConFuSion!!!]]></title>
			<link>http://www.mcuexamples.com/forum/showthread.php?tid=543</link>
			<pubDate>Wed, 26 Oct 2011 17:33:58 +0600</pubDate>
			<guid isPermaLink="false">http://www.mcuexamples.com/forum/showthread.php?tid=543</guid>
			<description><![CDATA[Dear Annasi,<br />
I want to ask you that if we have to use PIC 18F776A so which burner to be used?<br />
any recommendations?<br />
thankyou.]]></description>
			<content:encoded><![CDATA[Dear Annasi,<br />
I want to ask you that if we have to use PIC 18F776A so which burner to be used?<br />
any recommendations?<br />
thankyou.]]></content:encoded>
		</item>
	</channel>
</rss>
