Very good video! Your final piece looked like it was still oscillating a bit so perhaps u should increase the D value. Also increasing the I value increases the overshoot so in the code u should only increment the I value if the error is small (I.e |error| < some threshold)