
Explore embedded C basics for the AVR ATMEGA32, covering the preprocessor, macro substitution, include and conditional compilation, plus volatile and typedef for hardware-driven variables and clean types.
Learn to implement an LCD driver for AVR ATmega32 in four-bit mode, including initialization, command and data transmission, and displaying numbers and strings by ASCII conversion.
Learn to implement a 4x4 keypad driver on an AVR ATmega32, including scanning a matrix, pull-up resistors, debouncing with delay, ASCII conversion, and displaying results on an LCD.
Understand analog to digital conversion on the ATmega32 via sampling and quantization of sensor voltages, with ten-bit resolution, 5-volt range, eight single-ended inputs, seven differential channels, and two amplified inputs.
Learn how a servo motor, a motor with feedback, reaches a target angle via pwm within a 20 ms period, linking duty cycle to angles from 0 to 180 degrees.
Explore the ATmega32 uart driver, covering udr, ucsr, ubrr registers, asynchronous mode, eight data bits, no parity, one stop bit, and a two-microcontroller pushbutton-led example.
The Intro to Embedded Systems with AVR ATMEGA32 Course is the gate and start point for anyone interested in learning embedded systems and using the ATMEGA32 microcontroller. The course starts from scratch with
1) An introduction to embedded systems
to know what are embedded systems and where we see them in our everyday life then the course takes you to
2) An introduction to Microcontrollers
and then you will get to know
3) How to deal with bits
and
4) Embedded C
By having this solid ground you will be able to work with the ATMEGA32 and know its different capabilities and peripherals and how to interface with it. You will start with the
5) Input and output pins
Then seeing data on a
6) 7-segment
and
7) LCD
and entering data with
8) Keypad
After that you will learn how to use
9) Dc motor
as well as different analog input devices by using
10) Analog Digital Converter
then you will control a
11) Servo motor
after learning more about
12) Timers
and last but not least communication between microcontrollers and creating a network using
13) UART
14) SPI
and
15) I2C
The course is mainly divided into
1) Theoretical lectures
for understanding the concept,
2) Practical coding lectures
to implement what you have learnt,
3) A quiz after each section
to make sure that you have understood that part before going on with the course and
4) Some assignments
to exercise by yourself and do some coding . Also at the end of the course you will get a final exam on all the topics as well as a big project to get your hands dirty with embedded systems and make your first own project. The project is a simple model for a smart home.
The course requires that you have a background in C programming language only. No need for any hardware, only your PC or Laptop.