Temperature Based Fan Speed Control And Monitoring Using Arduino

By Biswajit Das


This project is a standalone automatic fan speed controller that controls the speed of an electric fan according to the requirement. Use of embedded technology makes this closed-loop feedback-control system efficient and reliable. The microcontroller (MCU) ATMega8/168/328 allows dynamic and faster control and the LCD makes the system user-friendly. Sensed temperature and fan speed levels are simultaneously displayed on the LCD panel.

The project is very compact and uses a few components only. It can be implemented for several applications including air-conditioners, water-heaters, snow-melters, ovens, heat-exchangers, mixers, furnaces, incubators, thermal baths and veterinary operating tables. The project will help save energy/electricity.

Circuit and working

Fig. 1: Circuit diagram of the temperature-based fan speed control and monitoring using Arduino
Fig. 1: Circuit diagram of the temperature-based fan speed control and monitoring using Arduino

Circuit diagram of the temperature fan speed control and monitoring is shown in Fig. 1. It is built around Arduino Uno board (Board1), 16×2 LCD (LCD1), temperature sensor LM35( IC1) and a few other components.

Arduino is at the heart of the circuit as it controls all functions. LM35 is a precision integrated circuit whose output voltage is linearly proportional to Celsius (Centigrade) temperature. It is rated to operate over a -55°C to 150°C temperature range. It has +10.0mV/Celsius linear-scale factor.

Screenshot of the source code on Arduino IDE
Fig. 2: Screenshot of the source code on Arduino IDE

Temperature sensor LM35 senses the temperature and converts it into an electrical (analogue) signal, which is applied to the MCU through an analogue-to-digital converter (ADC). The analogue signal is converted into digital format by the ADC. Sensed values of the temperature and speed of the fan are displayed on the LCD. Temperature and monitoring using Arduino The MCU on Arduino drives the motor driver to control fan speed.

Fan speed control technique. A low-frequency pulse-width modulation (PWM) signal, usually in the range of about 30Hz, whose duty cycle is varied to adjust the fan’s speed is used. An inexpensive, single, small pass transistor can be used here. It is efficient because the pass transistor is used as a switch.

One disadvantage of this approach, however, is that it can make the fan noisy because of the pulsed nature of the signal. The PWM waveform’s sharp edges cause the fan’s mechanical structure to move (like a badly-designed loudspeaker), which can easily be audible.


  1. Couldn’t understand the relation between fan speed and temperature. Can you plz explain
    “fan speed=temp;
    fan speed=1.5*fan speed” ?

  2. what if I dont want to use the lcd?? Do I just need to erase all the lcd thing in the coding or I need to do a new coding?

  3. hello Sir need to use this techknowledge in radiator cooling fan.
    We need some information about this. could you please call on 8983767988


Please enter your comment!
Please enter your name here