PID Fan
This project implements a PID loop in AVR assembly to control the speed of a fan with a potentiometer used as the input. It also communicates over UART with a computer to visualize the fan speed on a graph.
The program uses timer interrupts to poll the potentiometer input at a constant interval. It also uses timer interrupts to send data over UART at a constant interval. The PWM routine to set the fan speed is also done using timer interrupts to trigger the correct pulse width.
You can check out the project on GitHub.