AVR ATmega Controllers

AVR ATmega Controllers

AVR ATmega is popular 8 bit controller family manufactured by ATmel.


ATmega Basics

Getting Started with Atmel Studio

Atmel AVR microcontroller programming using Atmel Studio 7

GPIO Ports and Registers in AVR ATmega16/ATmega32

ATmega16/32 has four General Purpose Input Output ports for their I/O operations.

ADC in AVR ATmega16/ATmega32

AVR ATmega16/ATmega32 has an inbuilt 10-bit ADC (Analog to Digital Converter) to convert Analog voltage to a digital value.

Timer in AVR ATmega16/ATmega32

AVR ATmega16/ATmega32 has three timers which are generally used for generating delay and waveform.

Timer Input Capture Mode in AVR ATmega16/ATmega32

AVR Atmega16/ATmega32 has a feature of Input Capture Mode through which it can capture signal rising or falling edge events on its pin.

Clear Timer on Compare Match (CTC mode) in AVR ATmega16/ATmega32

AVR ATmega16/ATmega32 has features of Clear Timer value whenever it matches with compare register value.

USART in AVR ATmega16/ATmega32

USART (Universal Synchronous Asynchronous Receiver Transmitter) which transfers the data bits serially. Using USART, we can communicate with the PC and serial UART devices like GSM module, GPS, etc.

PWM in AVR ATmega16/ATmega32

AVR-based ATmega16/32 has inbuilt Pulse Width Modulation (PWM) unit through which the width of a pulse is varied while keeping the frequency constant.

External Hardware Interrupts in AVR ATmega16/ATmega32

AVR ATmega16/ATmega32 External Interrupts feature provides a way to get noticed by external events.

EEPROM in AVR ATmega16/ATmega32

ATmega16 has 512 bytes of EEPROM, which is used to store user-defined contents which will remain even power is off, due to non-volatile type memory.

Analog Comparator in AVR ATmega16/ATmega32

AVR-based ATmega16/ATmega32 has an on-chip Analog Comparator which compares two input Analog voltage signals and gives which is higher in between them.

Watchdog Timer in AVR ATmega16/ATmega32

AVR based ATmega16/32 Watchdog Timer (WDT) is a hardware timer which automatically resets the system when its timeout occurs. It is mostly used in Real-Time Applications.

SPI in AVR ATmega16/ATmega32

ATmega16/ATmega32 based on AVR has inbuilt SPI which is used to communicate with SPI enabled devices such as seven-segment displays, EEPROM, MMC, and SDC memory cards, etc.

I2C in AVR ATmega16/ATmega32

AVR-based ATmega16/ATmega32 supports I2C protocol, it also called as Two Wire Interface (TWI) protocol which is used to communicate with I2C enabled devices like Magnetometer, Accelerometer, RTC, EEPROM, etc.

IoT and Wireless

XBee(ZigBee) interfacing with AVR ATmega32

XBee is a radio module developed by Digi International. It is a popular wireless transceiver used to send or receive data.

HTTP Client using SIM900A GPRS and AVR ATmega16

Hypertext Transfer Protocol (HTTP) is a standard application layer protocol between server and client. Using the SIM900A GPRS module, we can implement HTTP server/client over GPRS for IoT applications.

TCP Client using SIM900A GPRS and AVR ATmega16

Transmission Control Protocol (TCP) is a standard transport layer internet protocol in between server and client. Using the SIM900A GPRS module, we can implement TCP server/client over GPRS for IoT applications.

MQTT Client using SIM900A GPRS and AVR ATmega16

MQTT (Message Queue Telemetry Transport) is a lightweight messaging protocol that is built on TCP protocol. Using the SIM900A GPRS module, we can implement MQTT server/client over GPRS for IoT applications.

SIM900A GSM module Interfacing with AVR ATmega16/ATmega32

SIM900A GSM module is a communication device which is used to make or receive calls, send or receive SMS, connecting to the internet over GPRS.

HC-05 Bluetooth Module Interfacing with AVR ATmega16/ATmega32

Bluetooth is a wireless communication protocol used to communicate over short distances. Here we design a smartphone-controlled LED using the HC-05 Bluetooth module.

ESP8266 WiFi Module Interface with AVR ATmega16

ESP8266 is Wi-Fi enabled system on chip (SoC) module developed by Espressif system. It is mostly used for the development of IoT (Internet of Things) embedded applications.

Displays

LCD16x2 Interfacing with AVR ATmega16/ATmega32

LCD16x2 has two lines with 16 characters in each line. LCD16x2 generally used for printing values and string in an embedded applications.

Graphical LCD 128x64 interfacing with AVR ATmega16/ATmega32.

GLCD 128x64 is a graphical LCD with pixel resolution 128x64. GLCD 128x64 generally used for displaying text in different fonts, displaying Images, animation, and symbols.

Nokia5110 graphical display interfacing with AVR ATmega16/ATmega32

Nokia5110 is a 48x84 dot LCD display with Serial Peripheral Interface (SPI) Connectivity. It was designed for cell phones, also used in embedded applications.

Interfacing LCD16x2 with AVR ATmega16/ATmega32 in 4-bit mode

LCD16x2 can be interfaced by using 4 data lines, which saves GPIO pins.

LCD16x2 custom character display using AVR ATmega16/ATmega32

LCD16x2 can display user-defined custom characters. This can be used for displaying symbols and different patterns.

7-Segment Display Interfacing with AVR ATmega16/ATmega32

7-Segment LED displays are basically used to display numerical values from 0 to 9 and few characters like A, b, C, d, e, F, H, L, O, P, U, etc. 7-segment displays are widely used in a digital clock.

Sensors

PIR Motion Sensor Interface with AVR ATmega16/ATmega32

PIR motion sensor senses the Infrared signal radiated from moving human or animal body. It is generally used to detect the motions of humans or animals.

Accelerometer ADXL335 Interfacing with AVR ATmega16

Accelerometer ADXL335 sensor measures the acceleration of gravity. It is used to measure the angle of tilt or inclination in application systems such as in mobile devices, gaming applications, laptops, digital cameras, airplanes, etc.

DHT11 Sensor Interfacing with AVR ATmega16/ATmega32.

Interface single wire DHT11 sensor with ATmega16/ATmega32 and read the value of Temperature and Humidity from DHT11. Display these Temperature and Humidity values on a 16x2 LCD.

Triple Axis Magnetometer HMC5883L interfacing with AVR ATmega16

Triple axis Magnetometer HMC5883L is developed by Honeywell which gives heading directions. A magnetometer is used as a digital compass in Mobiles Phones, Navigation systems in vehicles to indicate directions.

Soil Moisture Sensor Interfacing with AVR ATmega16/32.

The soil moisture sensor is used to measure the water content (moisture) in soil. It is used in agriculture applications, irrigation and gardening systems, etc.

Thermistor Interfacing with AVR ATmega16/ATmega32

A thermistor is a type of resistor whose resistance changes in accordance with the change in temperature. It is used to measure the temperature over a small range typically -100 °C to 300 °C.

DTMF (MT8870) Interfacing with AVR ATmega16/ATmega32.

MT8870 is a DTMF (Dual Tone Multiple Frequency) receiver, which decodes the dial tone generated from the telephone (mobile) when any key is pressed and provides corresponding binary output.

MPU6050 (Gyroscope + Accelerometer + Temperature) interface with AVR ATmega16.

MPU6050 (Gyroscope + Accelerometer + Temperature) is a combination of 3-axis Gyroscope, 3-axis Accelerometer and Temperature sensor with onboard Digital Motion Processor (DMP). It is used in mobile devices, motion enabled games, 3D mice, Gesture (motion command) technology, etc.

IR communication using AVR ATmega16/ATmega32.

The IR (infrared) communication is wireless communication technology, used for short-distance data/control transmission. For example, it is used in the TV remote, mobile phones, computers, and PDAs, etc.

Thermocouple Interfacing with AVR ATmega16/ATmega32

A thermocouple is a device consisting of two dissimilar metals connected together creating a junction that is used for measuring the temperature.

LM35 Temperature Sensor Interfacing with AVR ATmega16/ATmega32

LM35 is a sensor that is used to measure temperature. It provides an electrical output proportional to the temperature (in Celsius).

Modules

Analog Joystick interface with AVR ATmega16/ATmega32

Analog joystick is the input device used to control the pointer movement in the 2-dimension axis. Generally, a joystick is used for getting angular movements.

Real Time Clock RTC DS1307 interfacing with AVR ATmega16/ATmega32

DS1307 is a two-wire (I2C) serial interface RTC (Real Time Clock) with 56 bytes of nonvolatile RAM. This provides clock and calendar with a second, minute, hour, day, date, month and year.

EM18 RFID Reader Interface with AVR ATmega16/ATmega32.

EM18 RFID reader module used to read 125 kHz RFID card wirelessly for a very short distance. It is generally used in applications like attendance system, access management, tracking of goods, etc.

DC motor interfacing with AVR ATmega16/ATmega32

DC Motor is a device that converts electrical energy into mechanical energy. It is used in the robotics field, toys, quadcopters, etc.

GPS module Interfacing with AVR ATmega16/ATmega32

Interfaced GPS receiver module with ATmega16/ATmega32 and display the Time, Latitude, Longitude, and Altitude on LCD20x4 display. ATmega controller read the data serially from the GPS receiver using USART communication with 9600 Baud rate.

4x4 Keypad interfacing with AVR ATmega16/ATmega32

The keypad is an input device which generally used in applications such as calculator, ATM machines, computers, etc.

Ultrasonic Module HC-SR04 interfacing with AVR ATmega16/ATmega32

The ultrasonic module HC-SR04 is generally used for finding the distance to an object and obstacle detection. It can operate in the range of 2-400cm.

Motors and Actuators

Servo Motor Interfacing with AVR ATmega16

Servo motor is an electromechanical device that consists of Motor, Gear assembly, and feedback circuitry. It is used in Robotics applications, airplanes, rudders, quadcopters, etc.

Stepper Motor Interfacing with AVR ATmega32

Interface stepper motor with ATmega32 microcontroller to rotate it 360° clockwise by half step sequence and 360° anticlockwise by full step sequence. Here, the ULN2003 driver is used to driving a stepper motor.