Ogólnie można powiedzieć, że PID zakłada, że aktualna wartość sterowania w danej chwili jest proporcjonalna do aktualnego uchybu(P), proporcjonalna do sumy uchybów od początku regulacji do chwili obecnej(czyli akcja całkująca, I) oraz proporcjonalna do pochodnej z aktualnej wartości uchybu(D).
Żeby sobie lepiej to uzmysłowić, możesz sobie wyobrazić regulator PID jako trzech niezależnych operatorów, których działania się sumują. Ten od sterowania proporcjonalnego mnoży każdą wartość uchybu i to co mu wyjdzie takie daje sterowanie. Tego od sterowania całkującego można porównać do takiego upierdliwca co jak mu raz podpadniesz to się już nie uwolnisz, czyli sumuje wszystkie uchyby jakie były do tej pory i takie daje sterowanie. Sterowanie różniczkowe jest zależne od szybkości zmian uchybu bez względu na jego wartość, czyli jak w poprzedniej chwili czasu uchyb był mały, a w aktualnej duży to człon różniczkujący będzie generował duże sterowanie.
Pozostaje jeszcze kwestia doboru nastaw regulatora czyli, który człon z jaką wagą ma być uwzględnianiy w całościowym sterowaniu. O tym się nie będe rozpisywał bo temat szeroki wypadało by powiedzeć tylko, że za pomocą samego członu proporcjonalnego nie zredukujesz uchybu statycznego do zera, do tego potrzebny jest jeszcze przynajmniej człon całkujący z którym trzeba uważać bo wprowadza oscylacje do układu, można je jednak ograniczyć przez człon różniczkujący, który zazwyczaj wpływa na szybsze osiągnięcie stanu ustalonego.
Jeśli chcesz regulator zaimplementować na mikrokontrolerze będziesz musiał użyć algorytmu PID w wersji dyskretnej i tutaj nie ma za bardzo samemu co wymyślać bo chyba już wszystko zostało wymyślone i opisane. Dwa algorytmy, które są stosowane to pozycyjny i przyrostowy, pozycyjny jest prosty w implementacji ale przyrostowy jest z kilku względów lepszy, sporo powinieneś znaleź na ich temat w necie.