This project features a custom ATmega328P microcontroller board programmed in C. The board includes 4 LEDs and 2 buttons. The LEDs support multiple blinking modes controlled by one of the buttons, while the other button serves as a reset.
Blinking Modes:
- Default Mode: All LEDs blink simultaneously.
- Shift Left: LEDs blink in sequence from left to right.
- Shift Right: LEDs blink in sequence from right to left.
- Alternate: LEDs blink alternately between odd and even positions.
Hardware Design:
- KiCad Schematic: Includes a detailed schematic for easy replication.
- The design can be implemented on a breadboard, perfboard, or a custom PCB.
Programming the Board:
- Power Setup: An external 5V power supply was used to power the board during programming.
- Programmer: An USBasp programmer was used to program the ATmega328P via SPI.
- Fuse Configuration: The avrdude tool was used to program the fuses of the ATmega328P microcontroller
- Flashing the Hex File: After configuring the fuses, the firmware hex file was flashed to the microcontroller using avrdude.
The project demonstrates efficient use of button interrupts, state management, and LED control in embedded systems programming. Ideal for learning or expanding skills in microcontroller-based projects.