This repository contains coursework and lab projects from COMPE 375, a course focused on embedded systems and microcontroller programming. The course utilized the ATmega328PB Xplained development board along with Atmel/Microchip Studio for writing, compiling, and flashing code to the microcontroller. Labs covered fundamental embedded concepts such as LED control, UART communication, keypad scanning, PWM, and sound generation.
- Microcontroller: ATmega328PB Xplained Development Board
- IDE: Atmel/Microchip Studio
- Communication Interface: UART (tested using PUTTY)
- Programming Language: C
Each lab introduced and built upon core embedded system concepts:
- 🔹 Lab 0 – LED Blinking – Basic GPIO control for toggling an LED
- 🔹 Lab 1 – Name Display & Morse Code – Displayed my name using an LED and converted it into Morse code
- 🔹 Lab 2 – UART Communication – Sent my name and ID through UART and received it on a PC using PUTTY
- 🔹 Lab 3 – 4x4 Keypad Scanner – Scanned a keypad and sent pressed key values to PUTTY via UART
- 🔹 Lab 4 – LED PWM & Button Control – Adjusted LED brightness based on button press duration (PWM duty cycle control)
- 🔹 Lab 5 – Sound Output & Keypad Scanner – Adjusted output sound frequency based on keypad input
- 🔹 Lab 6 – Keypad Scanner & LED PWM – Used keypad input to increase or decrease LED brightness via PWM
- Understanding microcontroller GPIO control for input and output operations
- Implementing UART communication for data transfer between embedded systems and PCs
- Scanning and processing input from a 4x4 keypad matrix
- Using PWM for LED brightness control based on user input
- Generating and modifying sound frequencies programmatically
This course and all its labs have been successfully completed. The repository serves as a reference for embedded programming techniques and ATmega328PB microcontroller applications.