Position, Velocity, and Acceleration in Simple Harmonic Motion

x[t_] := A Cos[ω t];
v[t_] := -ω A Sin[ω t];
a[t_] := -(ω^2)A Cos[ω t];

(* Simple values for plotting: *)
A = 1; ω = 2 π;
ttotal = 3;  dt = 1/120; max = 1.1 ;

xpts= Table[{t, x[t]}, {t, 0, ttotal,dt}];
vpts= Table[{t, v[t]}, {t, 0, ttotal, dt}];
apts= Table[{t, a[t]}, {t, 0, ttotal, dt}];

xticks = Table[If[Mod[n,4] == 0, n/4, {n/4, Null}], {n, 1, 4*ttotal}];

Animate[GraphicsColumn[{
Graphics[{
Point[{0,0}], (* Dot at origin *)
{Dotted, Line[{{-1, 0}, {1, 0}}]},
{Dotted, Line[{{0, -1}, {0, 1}}]},
Arrow[{{0,0}, {x[t], 0}}], (* Vector from origin to the oscillating mass *)
{Red, PointSize[0.02], Point[{x[t], 0}]} 
},
AspectRatio->1/10,PlotRange->{{-max, max}, {-max, max}}],ListPlot[{xpts, {{t, x[t]}}}, Joined->{True, False},PlotStyle->{Blue, {Red, PointSize[0.025]}},
LabelStyle -> Larger, AxesLabel -> {"t (s)", "x(m)"}, AspectRatio->1/4, Ticks -> {xticks, Automatic}],
ListPlot[{vpts, {{t, v[t]}}}, Joined->{True, False},PlotStyle->{Red, {Orange, PointSize[0.025]}},
LabelStyle -> Larger, AxesLabel -> {"t (s)", "v(m/s)"}, AspectRatio->1/4, Ticks -> {xticks, Automatic}],ListPlot[{apts, {{t, a[t]}}}, Joined->{True, False},PlotStyle->{Cyan, {Magenta, PointSize[0.025]}},
LabelStyle -> Larger, AxesLabel -> {"t (s)", "a(m/(s^2))"}, AspectRatio->1/4, Ticks -> {xticks, Automatic}]
}, ImageSize-> Scaled[0.6]], {t, 0, ttotal, dt}, DefaultDuration -> 60, DisplayAllSteps -> True, AnimationRunning->False]