Duration of the online course: 5 hours and 41 minutes
New course
Master robotics with the Advanced Arduino Programming course. Learn register-level programming, GPIO setup, PWM, I2C, and more for innovative Arduino projects.
In this free course, learn about
Course Overview and Development Environment
ATmega328 Pinout and Basic GPIO
Seven Segment and Character LCD Interfaces
Digital Inputs, Buttons, and Relays
Interrupts and Timer Fundamentals
Advanced Timer Modes and Input Capture
PWM Generation and ADC Basics
UART, Bluetooth, and I2C Communication
Course Description
Dive deep into the technical realms of robotics with the Advanced Arduino Programming course. Designed for enthusiasts and professionals alike, this comprehensive program offers a meticulously structured curriculum that guides you through the complexities of register-level programming in Arduino. Explore the features and capabilities of the Atmega328 microcontroller, central to the Arduino Uno, and unravel its intricacies over various thematic modules.
Begin your journey with an introduction to the essential hardware and software, gaining insights into the Arduino IDE's dynamic environment. Master the fundamentals of pin layout and port structure for precise control and learn to configure GPIO with practical examples. This course offers a rich hands-on experience, from interfacing LEDs and 7-segment displays to understanding advanced hardware like 16x2 LCDs.
Expand your understanding with a deep dive into input device logic and explore the seamless integration of push buttons and relays. Delve into the world of interrupts, mastering both external and timer interrupt programming to elevate your projects to new heights. The course equips you with skills to harness Timer Output Compare and Input Capture modes, setting a foundation for sophisticated task execution.
PWM and ADC modules come to life, empowering you to control LED brightness and build dimmers with confidence. Communications are made easy with explanations and applications of UART and I2C protocols. Unlock connectivity by integrating an HC-05 Bluetooth Module, or dive into memory interfacing with expertise gleaned from the I2C EEPROM modules.
This course offers not just theoretical understanding but also hands-on engagement with real-world applications. From hardware setup to advanced programming techniques, the Advanced Arduino Programming course ensures you have the knowledge and skills to innovate and implement sophisticated Arduino projects. Embark on this educational journey to become proficient in robotics and expand your programming arsenal.
Course content
Video class: Curriculum for Register Level Programming Course in Arduino04m
Exercise: Select the best interface to drive a 2004 LCD with minimal Arduino pins
Video class: Introduction to Atemga328 (Arduino Uno) | Register Level Programming in Arduino | T - 102m
Exercise: Reliable Serial debugging alongside Wi-Fi communication on Arduino
Video class: Features of Atmega328 Microcontroller (Arduino Uno) | Register Level Programming in Arduino T - 202m
Exercise: Which memory on ATmega328 defines the maximum sketch size you can upload
Video class: Hardware and Software used in this Register Level Programming Course in Arduino T - 302m
Exercise: Which ATmega328P pin maps to Arduino Uno digital 13 for the onboard LED
Video class: Hardware Components Required for Register Level Programming Course in Arduino | T - 402m
Exercise: Ensuring reliable push button input for a Bluetooth-triggered action on Arduino
Video class: Downloading and Installing Arduino IDE to PC01m
Exercise: Setting up the Arduino IDE for register-level development
Video class: Introduction to Arduino IDE | Register Level Programming in Arduino | T - 501m
Exercise: Non-blocking control of LCD, RFID, and 90° servo on Arduino
Video class: Pin Layout and Port Structure of ATMEGA328 (Arduino Uno) | Register Programming in Ardiuno | T - 603m
Exercise: On ATmega328-based boards, which statement correctly describes Port B availability when the external crystal is used?
Video class: GPIO Configuration Part - 1 for Arduino | Register Level Programming in Arduino | T - 716m
Exercise: Direct register setup for input with pull-up on ATmega328P
Video class: GPIO Configuration Part - 2 for Arduino | Register Level Programming in Arduino | T - 808m
Exercise: Configuring PB08 via direct registers Which bitmask enables it as output when writing to DIRSET on a SAMD based Arduino
Video class: Interfacing of LED with Arduino | Register Level Programming in Arduino T - 905m
Exercise: Which approach best toggles a digital output on pin 5 without blocking other logic in an advanced Arduino sketch
Video class: 7 Segment Display Working Explained10m
Video class: Interfacing of 7 Segment Display with Arduino | Register Level Programming in Arduino T - 1109m
Exercise: Best method to multiplex four 7‑segment displays in an advanced Arduino project while keeping loop responsive
Video class: 16x2 LCD Working principle explained05m
Video class: Interfacing of 16x2 LCD with Arduino | Register Level Programming in Arduino T - 1313m
Exercise: Strobing the LCD Enable pin correctly in 4-bit mode
Video class: LCD Working Explained in 4 Bit Mode | 16x2 LCD Functions for any Microcontroller17m
Exercise: Which Arduino serial function should you use to send raw binary bytes to an RS232 UART device?
Video class: Input devices working logics explained | Pull-up and Pull-down04m
Video class: Interfacing of Push Buttons with Arduino | Register Level Programming in Arduino T - 1506m
Exercise: Reading a pull-down button on PD2 to drive the LED on PB5 at register level
Video class: Relay working principle explained13m
Exercise: Controlling a 110 V AC lamp with Arduino
Video class: Interfacing of Relay with Arduino | Register Level Programming in Arduino T - 4006m
Exercise: Using registers to read a button on PD7 and drive a relay on PB0
Video class: Interrupt Method Programming Working Explained in Arduino | Register Programming in Arduino | T - 1606m
Exercise: Best method to handle a mechanical button in an advanced Arduino sketch to prevent false triggers
Video class: External Interrupt Programming in Arduino | Register Level Programming in Arduino | T - 1713m
Exercise: Configure INT0 for rising-edge interrupt via registers on Arduino Uno
Video class: TIMER INTERRUPT MODE IN AVR MICROCONTROLLER WORKING EXPLAINED04m
Exercise: Compute overflow time for an 8 bit Arduino timer in Normal mode at 16 MHz with prescaler 64
Video class: Timer Interrupt Register Configuration in Arduino | Register Programming in Arduino | T - 1910m
Exercise: Configure Timer1 prescaler to 1024 on ATmega328
Video class: Timer Interrupt Programming in Arduino | Register Level Programming in Arduino | T - 2004m
Exercise: Best practice for button IF logic and timing-friendly debounce on Arduino
Video class: TIMER OUTPUT COMPARE IN AVR MICROCONTROLLER WORKING EXPLAINED03m
Exercise: Output Compare Mode Period Calculation
Video class: Timer Output Compare Mode Register Configuration in Arduino | Register Programming in Arduino | T 2210m
Exercise: Timer1 CTC: OCR1A for 1 kHz on OC1A with toggle, 16 MHz clock, prescaler 8
Video class: Timer Output Compare Programming in Arduino | Register Level Programming in Arduino | T - 2304m