Don't tune pids using the simplistic "trial and error" method! You will never get good results because parameters depend on each other. Use FOPDT (first order plus dead time) model together with IMC formulas to calculate Kp, Ki and Kd from test data.
Do a step test on your control signal (directly towards the "plant" without controller) and record your process variable that you are trying to control as it relates to the control signal. Then look at the data and note down process gain, deadtime and process time. (more info here and here).
Generally just read through the whole ControlGuru site. It is a very good resource. I have used the FOPDT model quite successfully to just get the right pid values instantly without any trial and error. It works great and produces an optimal controller. When you then compute your Kp, Ki and Kd from Kp, Ti and Td you also have an option to specify "aggressiveness" value which is a good way to just tell your already properly tuned controller how fast it should converge.
Also you should probably use derivative on PV instead of derivative on error. There is really no point in most cases to do derivative on error. To do this you use negative sign before Kd and use this formula:
This avoids an effect called "derivative kick" when you change your setpoint. More info here.
I never tune manually anymore at all. I think FOPDT model is the simplest method there is to tune PID loops very quickly. You also have to distinguish though between self regulating (self-stabilizing) process and an integrating process (which does not stabilize - such as a position of an object after a force has been applied to it). The tuning methods are a bit different but also are described at the controlguru site here.