Mastering Microcontroller Programming

Learn Microcontroller Programming (8-bit AVR) to use Peripherals like GPIO, Timer, Interrupt, PWM, ADC, Serial UART etc.

4.38 (115 reviews)

Mastering Microcontroller Programming


5 hours


Feb 2021

Last Update
Regular Price

What you will learn

Embedded C Programing

Microcontroller Architecture (8-bit AVR)

Bare-metal Microcontroller Programming

Setting up Atmel Studio 7 for C Programming & Debugging

Learn to develop peripheral drivers GPIO, TIMER, INTERRUPT, ADC, Serial UART etc.

Much more, Please See Curriculum for a Full Listing ............


If you’re reading books of microcontroller programming, following different blogs and still feel stuck. Then you came to the right place, this microcontroller programming course designed around most popular 8-bit ATmega328 AVR Microcontroller. In this course, we will learn how to write C Programs for ATmega328 MCU. I’ve made complex concept easy to understand using quality content. It doesn’t matter if you’re new to microcontrollers or already know basics. I am sure you’ll enjoy learning with this course.

Short Description:

We’ll begin our journey to explore microcontroller right from the basics like setting-up official Atmel Studio7 IDE, installing programming utilities and hooking up the circuits in easiest way. To keep the hardware part simple in the beginning, we will use ATmega328 chip on Arduino Uno. Believe me this will save our time at hardware side so that we can focus more on core microcontroller features through AVR C Programming. Later on, as the time rolls on we will use ATmega328 Xplained Mini evaluation kit to learn advance debugging techniques.

"The Biggest objective of this course is to help you build sound understanding of microcontroller architecture and peripheral registers in-order to use them while writing professional embedded systems software”

We will setup every circuit from scratch and write microcontroller firmware for it. We will spend enough time in the beginning to get basics right. This will save time in long run and make you feel confident working with Microcontroller Architecture and C Programming.

Later on, we will be building mini projects to use LED, Switches, Analog and Digital Sensors (temperature/humidity/light Intensity/distance), IR Sensor, Relays and many more. These projects can be small yet very powerful to lay down strong foundation to use GPIO, Timer/Counter, Interrupt, PWM, ADC, Serial UART and other peripherals while developing embedded software and hardware.



AVR ATmega328

Technical Specifications

Select Development Board

Pin Description of ATmega328

Setup and Install Software

Download Atmel Studio7 IDE

Setup Hardware for Programming

Create Microcontroller Project

Basics of Bit Manipulation

Number Systems

Bitwise Operator


Control Digital Devices (LED, Switches, etc.)

Control GPIO as Output

Control GPIO as Input

Timer and Counters


Programming Timers

Use Timer Flag in Project

Interrupts and ISR


Types of Interrupts

Use Timer Interrupt in Project

Serial Communication: UART

Introduction of UART

Install PuTTY Terminal

Transmit Character Byte

Receive Character Byte

Send String to Serial Console (PC)


Joe26 August 2020

the content and its visual presentation is very good but the verbal presentation is difficult to listen to as Umesh speaks far too fast and with many repetitions. although the verbal presentation is difficult, from section 7 there is a marked improvement.

Akshay23 August 2020

Excellent Course. The entire course is designed in a planed manner. The trainer has covered every aspect of Microcontroller and explained how we can use it in IoT projects. It's not too fast nor too slow. Guys, you will enjoy it. Go for it!!

Ivo25 July 2020

I really liked this course because it really digs down into how an Arduino works on a lower level than what we see when using the Arduino IDE for example. Coding in C, reading the datasheet, using the Atmega328 registers directly: awesome! Some complex parts could be explained more clearly, and the only thing I'm missing is a "Required parts" overview. Looking forward to more content being added!

Jakub6 July 2020

Bardzo słaby, tłumaczony powierzchownie, dla osoby która miała styczność z tym zrozumie, ale niczego sie nie nauczy, dla osoby która jest początkująca to wszystko jest tłumaczone zbyt chaotycznie.

Shanthanu7 June 2020

It was really a very good course and i am able to learn programing from scratch, till now i was using arduino but now onwards i wish to program in avr studio. Thank You !!

Aswin8 January 2020

The Course was good enough for someone like me who just wanted an overview of programming a micro controller for a project. Does not go to in depth into the functioning behind the codes, but does give you enough expertise to use the codes to program a atmega328p microcontroller. The part on 'interrupts' could have been better and hs left me a little confused, and that`s why i gave a 4 star. If that part is improved, I am more than satisfied with the course.

Roshankumar31 December 2019

I already have some hands on practice on the chip explained in initial videos of this course. This course focuses on development with AVR studio using C programming. It is really helpful for those who not only want to learn and program ATmega328 but also study its internal peripherals and registers etc.. Thank you...!! :)

Sohini26 December 2019

very nicely explained.. I would also like to know more on I2C and SPI Protocols.. In case u already have some courses on the same, I would like to know their names

Neelam20 December 2019

course is good. But it would be better if you the complete example of usart with hardware and saving the sensor data into pc.

Mohd24 November 2019

Hi, I just completed the course. It is a good course but I think its lack of contents. It will be much better if the instructor adds more contents such as I2C, SPI, etc.. Hope to see it soon. Thank you.

Rajbir10 November 2019

The explanations given by the instructor is in details. I didn't feel confused or lost at any time. Even a person with least knowledge will feel comfortable while learning. Great work.

Phanuwit1 October 2019

Finished the course, the presenter is very clear and logical...and easy to understand (I have some prior knowledge)...in his presentation of the materials. I find his subject presentation order sensible. Each video lesson is not burdensome and long (and boring). He says just enough to make his point. A bit hard to understand his pronunciation some times...or else I would give him full marks! I would recommend this course to any slightly informed beginner...especially the last few lessons when prior programming knowledge would make understanding the code possible. One note of confusion, in lesson 23, which is essentially the last lesson...the presenter says 'this technique will be used extensively in future lessons'. Are there more lessons coming? Did the presenter never finish the full course lessons?

Jose27 September 2019

I liked this course, the instructor give excellent examples, he explain everything pretty good. I liked this course, i want to thank the instructor.

John10 September 2019

I struggled with the explanation of the HEX number system. I had to look externally for a full explanation so I understood it. Having finished the course I would say it is not really effective for me. I understand all the hardware and the principles involved but without having a knowledge of the C language I could not keep up with the code development. The lack of comments in the code also made it harder to go back and review without having to repeat the whole lesson each tme. So, what I learned from this course is that I need to first learn more about the C language and then try it again.

Jack5 September 2019

These video is very helpful towards to my uni study which provide me a good guide. saved me many time and effort


Udemy ID


Course created date


Course Indexed date
Course Submitted by