Shading Issues with the Array Modifier
For the first issue, you just need to 'merge first last' in the array modifier. This option tells Blender that the extremities of the array have to be merged.



For the second one, it is because the flat face normal is inverted. Select your mesh and use ShiftN to recalculate the normals.



An easy way to check if normals are inverted is to turn on x-ray:



The third one is because the wheel border is not 'regular'. To make it more regular, use the knife tool K to make a loop along the wheel border.

That will make a ngon (on the face above) but luckily that doesn't matter here. Eventually, turn it to quad+tri (not shown in the gif below).