Hey, thanks alot for you replays i learn alot of new stuff and you are being very helpfull

So in my Gyro i have
VCC &
GND pin, i connected the
VCC to the Arduino
3.3v pin and the
GND to one of the
GND pins on the Arduino.
And i connected the
OUT pin of the gyro to the
Analog0 pin on the Arduino.
I use this external Power Supply

As you can see i'm giving
12v to the Arduino, and the
Fixed volts are set to
3.3v and connected stright to the
AREF pin and one of the
GND pins on the arduino.
Now i changed my
sensitivity back to
1.023, and added
analogReference(EXTERNAL);
to the
setup()
in my code.

You can see the purple black and red goes to the gyro, the big connector that connected to the 7,8,9 digitals is a Servo controller, and the 2 pins from the external supply to the
AREF &
GND.
Here is the code, every one milliseconds i call this:
void gyroTest()
{
if(gyroInit) {
finalGyroAngle = calculateGyroAngle(0);
Serial.println(finalGyroAngle);
}
}
float calculateGyroAngle(int pin)
{
gyroAdc = calibrateGyro(0);
if(abs(gyroAdc - gyroZero) <= Threshold)
gyroAdc = gyroZero;
gyroRate = (gyroAdc-gyroZero)/sensitivity;
gyroRotation+=gyroRate*dtime/1000;
unsigned long t = millis();
dtime = t - stime;
stime = t;
return gyroRotation;
}
void InitGyro(int pin)
{
Serial.println("Calibrating Gyro...");
sensitivity = 1.023; //0.692454545; //0.716454545;
gyroAdc = 0;
gyroRate = 0;
gyroRotation = 0;
gyroAngle = 0;
gyroZero = calibrateGyro(pin);
Serial.print("Gyro Calibrated: ");
Serial.println(gyroZero);
}
int calibrateGyro(int pin)
{
long resultGyro = 0;
for(int i=0;i<100;i++)
{
resultGyro += analogRead(pin);
delay(0.5);
}
resultGyro = resultGyro/100;
return resultGyro;
}
Am i doing everything ok ?