Aug 23, 2016

Natural Mosquito Repellent Circuit Using High Watt Resistor

As the name suggests, to build this simple natural mosquito repellent circuit you will just require a high watt resistor, a few drops of lemon eucalyptus oil and  mains supply input.

You might be already familiar with these popular ready made mosquito repellent units which come in the form of coils, liquids, mats etc, and most of us already use these products for keeping mosquitoes at bay.

Although these methods are effective and help our homes to get rid of dangerous mosquito transmitted diseases like dengue, malaria, hay fever, etc, the chemicals ( mainly DEET) used in these repellents in turn have the potentials to cause many unknown body ailments, which could include lung diseases, severe headache such as migraine etc.
Therefore using these ready made chemical based repellents may not be after all safe either.

An alternative and much safer way of driving away mosquitoes could be by using naturally available options, one of which is available by the name Lemon Eucalyptus Oil.

Lemon eucalyptus oil is extracted from the tree lemon eucalyptus and can be easily procured from any nearby chemist shop or may be ordered online.

Normally this oil is required to be applied on the exposed areas of the body in order to protect from mosquito bites, however it may be much cleaner and safe if its fragrance could be dispensed through in the air instead of applying on body. This could be probably done using a homemade fragrance dispenser circuit

To build the above suggested homemade mosquito liquid dispenser circuit, you would just need a high watt resistor, and a mains input supply.

The set up can be seen in the following diagram:

In the shown set up we can see a high watt resistor and an aluminum dish glues over the resistor.

The resistor leads are terminated into a mains 220V or 120V socket.

The aluminum dish is used for placing a piece of cotton wad drenched with lemon eucalyptus oil.

That's all, once this set up is built and plugged in, the high watt resistor could be seen heating up and enabling the aluminum dish to also heat up, causing the heat to evaporate the oil and its fragrance in the air.

This special fragrance which may not be harmful to humans but irritating for the mosquitoes would ultimately help to drive away the creatures away from our homes, naturally and without any health risks.



Aug 22, 2016

Incubator Temperature Controller Circuit using LM35 IC

A very simple egg incubator temperature controller thermostat circuit using LM 35 IC is explained in this article. Let's learn more.

An Incubator is a system where bird/reptile eggs are hatched through artificial methods by creating a temperature controlled environment. Here the temperature is precisely optimized to match the natural incubating temperature level of eggs, which becomes the most crucial part of the whole system.

The advantage of artificial incubation is faster and healthier production of the chicks compared to the natural process

Anybody involved in this profession will understand the importance of a temperature controller circuit which should be not only reasonably priced but also have features like precise temperature control and manually adjustable ranges, otherwise the incubation could get hugely affected, destroying most the eggs or developing premature offspring.

I have already discussed an easy to build incubator thermostat circuit in one of my earlier posts, here we'll learn a couple of incubator systems having easier and much more user friendly setting up procedures.

The first design shown below uses an opamp and a LM35 IC based thermostat circuit and indeed this looks quite interesting due to its very simple configuration:

 The idea presented above looks self explanatory, wherein the IC 741 is configured as a comparator
with its inverting pin#2 input pin is rigged with an adjustable reference potentiometer while the other non-inverting pin#3 is attached with output of temperature sensor IC LM35

The reference pot is used to set the temperature threshold at which the opamp output is supposed to go high. It implies that as soon as the temperature around the LM35 goes higher than the desired threshold level, its output voltage becomes high enough to cause pin#3 of the opamp to go over the voltage at pin#2 as set by the pot. This in turn causes the output of the opamp to go high. The outcome is indicated by the lower RED LED which now illuminates while the green LED shuts off.

Now this outcome can be easily integrated with a transistor relay driver stage for switching the heat source ON/OFF in response to the above triggers for regulating the incubator temperature.

A standard relay driver can be seen below, wherein the base of the transistor may be connected with pin#6 of the opamp 741 for the required incubator temperature control.

Incubator Temperature Controller Thermostat with LED Indicator

In the next design we see another cool incubator temperature controller thermostat circuit using an LED driver IC LM3915

In this design the IC LM3915 is configured as a temperature indicator through 10 sequential LEDs and also the same pinouts are used for initiating the ON/OFF switching of the incubator heater device for the intended incubator temperature control.

Here R2 is installed in the form of a pot and it constitutes the threshold level adjustment control knob and is used for setting up the temperature switching operations as per the desired specifications.

The temperature sensor IC LM35 can seen attached to the input pin#5 of the IC LM3915. With rise in temperature around the IC LM35 the LEDs begin sequencing from pin#1 towards pin#10.

Let's assume, at room temperature the LED#1 illuminates and at the higher cut-off temperature the LED#15 illuminates as the sequence progresses.

It implies that pin#15 may be considered the threshold pinout after which the temperature could be unsafe for the incubation.

The relay cut-off integration is implemented according to the above consideration and we can see that the base of the transistor is able to get its biasing feed only upto pin#15.

Therefore as long as the IC sequence is within pin#15, the relay remains triggered and the heater device is held switched ON, however as soon as the sequence crosses over pin#15 and lands on pin#14, pin#13 etc. the transistor biasing feed is cut off and the relay is reverted towards the N/C position, subsequently switching OFF the heater..... until temperature normalizes and the sequence restores back below the pin#15 pinout.

The above sequential up/down drift keeps on repeating in accordance with the surrounding temperature and the heater element is switched ON/OFF maintaining almost a constant incubator temperature as per the given specifications.

Aug 20, 2016

SG3525 Pure Sinewave Inverter Circuit

In this post we learn how to make a SG3525 pure sinewave inverter circuit using a straightforward PWM integration.

We know that the IC SG3525 is designed to produce a modified sine wave output when used in an inverter topology, and cannot be enhanced to produce a pure sinewave waveform in its typical format.

Although the modified squarewave or sinewave output could be OK with its RMS property and reasonably suitable for powering most electronic equipment, it can never match the quality of a pure sinewave inverter output.

Here we are going to learn a simple method which could be used for enhancing any standard SG3525 inverter circuit into a pure sinewave counterpart.

For the proposed enhancement the basic SG3525 inverter could be any standard SG3525 inverter design configured to produce an modified PWM output. This section is not crucial and any preferred variant could be selected (you can find plenty online with minor differences).

I have discussed a comprehensive article regarding how to convert a square wave inverter to a sinewave inverter in one of my earlier posts, here we apply the same principle for the upgrade.

How the Conversion from Squarewave to Sinewave Takes Place

You might be curious to know regarding what exactly happens in the process of the conversion which transforms the output into a  pure sinewave suitable for all sensitive electronic loads.

It is basically done by optimizing the sharp rising and falling square wave pulses into a gently rising and falling waveform. This is executed by chopping or breaking the exiting square waves into number of uniform pieces.

In the actual sinewave, the waveform is created through an exponential rise and fall pattern where the sinusoidal wave gradually ascend and descend in the course of its cycles.

In the proposed idea, the waveform is not executed in an exponential, rather the square waves are chopped into pieces which ultimately takes the shape of a sinewave after some filtration.

The "chopping" is done by feeding a calculated PWM to the gates of the FET via a BJT buffer stage.

A typical circuit design for converting the SG3525 waveform into a pure sinewave waveform is shown below. This design is actually an universal design which may be implemented for upgrading all square wave inverters into sinewave inverters.

As may be in the above diagram, the lower two BC547 transistors are triggered by a PWM feed or input, which causes them to switch according to the PWM ON/OFF duty cycles.

This in turn rapidly switch the 50Hz pulses of the BC547/BC557 coming from the SG3525 output pins.

The above operation ultimately force the mosfets also to turn ON and OFF number of times for each of the 50/60Hz cycles and consequently produce a similar waveform at the output of the connected transformer.

Preferably, the PWM input frequency should be 4 times more than the base 50 or 60Hz frequency. so that each 50/60Hz cycles are broken into 4 or 5 pieces and not more than this, which could otherwise give rise to unwanted harmonics and mosfet heating.

PWM Circuit

The PWM input feed for the above explained design can be acquired by using any standard IC 555 astable design as shown below:

This IC 555 based PWM circuit can be used for feeding an optimized PWM to the bases of the BC547 transistors in the first design such that the output from the SG3525 inverter circuit acquires an RMS value close to mains pure sinewave waveform RMS value.

Using an SPWM

Although the above explained concept would greatly improve the square wave modified output of a typical SG3525 inverter circuit, an even better approach could be to go for an SPWM generator circuit.

In this concept the "chopping" of each of the square wave pulses is implemented through a proportionately varying PWM duty cycles rather than a fixed duty cycle.

I have already discussed how to generate SPWM using opamp, the same theory may be used for feeding the driver stage of any square wave inverter.

A simple circuit for generating SPWM can eb seen below:

 In this design we see a standard IC 741 opamp whose input pins are configured with a couple of triangle wave sources, one being much faster in frequency than the other.

This forces the opamp to compare the two coinciding peaks of the waveforms and generate SPWM or sinewave PWM consisting of a proportionately widening and narrowing PWMs in each cycle.

When this optimized PWM is fed to the first circuit design causes the output from the transformer to produce a further improved and gentle sine waveform having properties much identical to a standard AC mains sine waveform.

However even for an SPWM, the RMS value will need to be correctly set initially in order to produce the correct voltage output at the output of the transformer.

Once implemented one can expect a real sinewave equivalent output from any SG3525 inverter design or may be from any square wave inverter model.

If you have more doubts regarding SG3525 pure sinewave inverter circuit you can feel free to express them through your comments.

Aug 15, 2016

Arduino Digital Clock Using RTC Module

In this post we are going to construct a digital clock using RTC or Real Time Clock module. We will understand what “RTC” module is, how to interface with Arduino and what it does.

By: Girish Radhakrishnan

RTC module is a circuit, which keeps track of current time accurately. It does two functions, it communicates with microcontrollers and microprocessors to give current time and act as backup circuit for maintaining time in case of power failure, since it has build-in battery backup system.

We can find RTC in any electronic devices where time is an important function of the gadget.

For instance, our computer or laptop maintains its time even after power is plugged off or battery is removed. On the motherboard of any computer we can find a CMOS battery, which powers the RTC circuit.

Similar kind of circuit we are going to use in this project.

RTC module is an inexpensive device which can be found on any E-commerce sites and your local electronic project shops.

Here is an illustration of typical RTC module DS1307:

Most of the RTC modules come with battery (CR2032) at the time of purchase. There are different of size and models, the above illustrated may not be the same for you. But make sure the model number is DS1307. The code written in this post is only compatible with DS1307.

Now you know something about RTCs. Now let’s move on to the digital clock design. Before proceeding with this project you need to download the library from the following links and install on your IDE:

• DS1307RTC.h


• TimeLib.h


Other two libraries would have been preinstalled on Arduino IDE, if you are on latest version.

• LiquidCrystal.h

• Wire.h

The circuit:

Arduino Digital Clock Using RTC Module

The circuit connection between arduino and LCD display is standard, which we can find similar connection on other LCD based projects. The only additional component is the RTC.

To reduce wire congestion during prototype, the RTC can be inserted to the analogue pins directly of the arduino. Solder the SCl, SDA, Vcc, and GND with male header pins and insert it A2 to A5 pins as shown in the prototype.

Author’s prototype: 

How to properly insert RTC on arduino: 

If your RTC has different pin locations and could not replicate as illustrated above, you can always use wires for connection. Now your hardware setup is complete, let’s move to the software part of the project.

How to set time:

Once the RTC module is programmed, it maintains the time even it is removed from the arduino. The battery should last at least a couple of years.

There is no button to adjust the time; the following program will set the time in RTC. The time automatically synchronized with time of your computer, while compiling the code, so make sure your computer is set to correct time, before uploading the programs.

Upload this “SetTime” code to set the time with RTC plugged in:

#include <Wire.h>

#include <TimeLib.h>

#include <DS1307RTC.h>

int P=A3; //Assign power pins for RTC

int N=A2;

const char *monthName[12] = {

"Jan", "Feb", "Mar", "Apr", "May", "Jun",

"Jul", "Aug", "Sep", "Oct", "Nov", "Dec"


tmElements_t tm;

void setup() {





bool parse=false;

bool config=false;

// get the date and time the compiler was run

if (getDate(__DATE__) && getTime(__TIME__)) {

parse = true;

// and configure the RTC with this info

if (RTC.write(tm)) {

config = true;




while (!Serial) ; // wait for Arduino Serial Monitor


if (parse && config) {

Serial.print("DS1307 configured Time=");


Serial.print(", Date=");


} else if (parse) {

Serial.println("DS1307 Communication Error :-{");

Serial.println("Please check your circuitry");

} else {

Serial.print("Could not parse info from the compiler, Time=\"");


Serial.print("\", Date=\"");





void loop() {


bool getTime(const char *str)


int Hour, Min, Sec;

if (sscanf(str, "%d:%d:%d", &Hour, &Min, &Sec) != 3) return false;

tm.Hour = Hour;

tm.Minute = Min;

tm.Second = Sec;

return true;


bool getDate(const char *str)


char Month[12];

int Day, Year;

uint8_t monthIndex;

if (sscanf(str, "%s %d %d", Month, &Day, &Year) != 3) return false;

for (monthIndex = 0; monthIndex < 12; monthIndex++) {

if (strcmp(Month, monthName[monthIndex]) == 0) break;


if (monthIndex >= 12) return false;

tm.Day = Day;

tm.Month = monthIndex + 1;

tm.Year = CalendarYrToTm(Year);

return true;


Once this code is uploaded, open the serial monitor and a success message should pop up saying the time has been set.

 This signifies that your connection between the RTC and arduino is correct and time is set.

Now upload the following code for displaying the time in LCD.

//------------Program Developed by R.Girish-------//

#include <Wire.h>

#include <TimeLib.h>

#include <DS1307RTC.h>

#include <LiquidCrystal.h>

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

int P=A3;

int N=A2;

void setup() {







void loop() {

tmElements_t tm;


if (














if(tm.Hour>12) //24Hrs to 12 Hrs conversion//


if(tm.Hour==13) lcd.print("01");

if(tm.Hour==14) lcd.print("02");

if(tm.Hour==15) lcd.print("03");

if(tm.Hour==16) lcd.print("04");

if(tm.Hour==17) lcd.print("05");

if(tm.Hour==18) lcd.print("06");

if(tm.Hour==19) lcd.print("07");

if(tm.Hour==20) lcd.print("08");

if(tm.Hour==21) lcd.print("09");

if(tm.Hour==22) lcd.print("10");

if(tm.Hour==23) lcd.print("11");

















} else {

if (RTC.chipPresent()) {


lcd.print("RTC stopped!!!");


lcd.print("Run SetTime code");

} else {



lcd.print("Read error!");


lcd.print("Check circuitry!");






//------------Program Developed by R.Girish-------//

Once this is done you should see the time and date is displayed on LCD and running.

Note: The “SetTime” code is modified from example code of DS1307RTC to optimize wire connections for RTC module, uploading original code won’t set time.


Aug 14, 2016

Beacon Level Indicator Circuit for Combine Harvester Grain Tanks

The post explains a beacon indicator circuit for combine harvester grain tanks. The idea was requested by Mr. John Bosch.

The Request

Hi Swagatam.

 I would like to retrofit the rotating beacon grain tank level indicator system shown below,  to my older combine harvester.

The particular part of the system I want to build is this:

Turns on automatically when the grain tank level reaches three-quarter. 

Beacon lights begin an alternating pattern once the three-quarters full sensor is triggered; beacon lights remain on for 10 seconds then turn off for 10 second continually repeating until the grain tank full sensor is triggered. 

Once the grain tank full sensor is triggered the beacon lights remain on constantly. 

Would you be able to design a circuit to perform this function? I already have the bin level sensor, and it is a normally open type of contact. The specs on the sensor are: 48V, .5amp, 10 watt, 300mA, so even though I’m planning on using LED beacon lights, I suspect the output of any circuit would have to trigger a relay to a power circuit for the beacons. I would also like to be able to switch the system off from the control station of the combine.

Thanks in advance for any and all input!

John Bosch

 The Design

The design can be very simply implemented using an IC 555 circuit in its astable mode, as shown below:

Beacon Level Indicator Circuit for Combine Harvester Grain Tanks

The IC 555 is configured in its standard astable mode (flashing mode), where R1,R2, and C values determine the flashing rate of the IC at its pin#3.

These values are calculated to produce a reasonably precise 5 second ON/OFF switching on pin#3 of the IC.

Pin#3 can be seen connected with a relay driver stage whose contacts are configured with the indicator beacon LED lamps.

When the +12V supply from the relay side is switched ON, the circuit is put on a standby position and ready to respond to the signals from the bin sensors.

As soon as the first signal is received from the "3/4 tank full sensor" the astable gets powered through the relevant 2N2222 transistor on the top left, and the circuit immediately begins oscillating at the set rate.

The relay follows the ON/OFF triggers from pin#3 of the IC and initiates the required 5 second ON/OFF activation for the attached rotating beacon lights, indicating that the 3/4 tank full level is reached.

The above ON/OFF is sustained for a period of time until the grain tank reaches its full level, when the subsequent trigger from the "full level sensor" causes a permanent activation of the driver transistor and the relay.

The relay now becomes locked and enables both the beacon indicator lamps to be ON and rotating, indicating the "tank full" situation to the user.

Swagatam Majumdar
Swagatam MajumdarHi Friends, Welcome to my site, a place where you will discover a massive collection of electronic circuit ideas, mostly requested by the dedicated readers and exclusively designed by me for their customized application needs. I have posted more than 1100 circuit designs in this site, if you have a personalized circuit requirement you may feel free to request it through the comment box, if it seems feasible to me then surely you may find it published here with your credentials attached in the post, thanks and please keep reading

Copyright © 2014 Electronic Circuit Projects • All Rights Reserved.
back to top