Tag Archives: atmega168


Making a smart I2C DC motor controller

A full-fledged DC motor controlling application requires a lot of I/O resources and MCU time. This project is about making a dedicated DC motor controllerthat would release the main microcontroller from this duty so that it could do other important tasks more efficiently. The controller uses Atmega168 as a slave I2C device that receives commands from a host MCU through I2C signal lines, and controls two DC motors using the L293D high-current H-driver chip. Separate PWM signals are used for each motor to achieve precise motor steering. The built-in motor steering library routines makes the motor control much easier.

Smart DC motor controller with I2C interface

Arduino: 24 hours digital clock

This is an Arduino powered 24-hour digital clock that uses the RTC chip DS1307 for timekeeping. DS1307 has a small battery backup so that it keeps the correct time even the rest of the circuit is not powered. The time is displayed on 5×7 LED dot matrix.

The ATMEGA168 controller and the rest of the circuit is powered by a 9 volt 650 mA power supply with a LM7805 regulator IC.

Read more

Power usage monitor using Atmel AVR

This project uses Atmega168 microcontroller to compute the power usage at home and logs it to an SD card. It has a graphical LCD display too that shows the power usage as a strip chart. Besides, the voltage and current waveforms can also be displayed on the LCD.

The current is measured using a pair of current transformers whereas the voltage is measured using a 2000:1 voltage divider network. An LMC6484AIN quad op-amp and an AD623AN instrumentation amplifier are also used for signal amplification from the current sensor and the voltage divider. Read more