Hallo, ich habe nen 3 Achs Gyro von Pollin am Due. Das kleine Board von Pollin ist bereits mit Kondensatoren bestückt, soweit ich es dem Datenblatt entnehmen kann. Eingeschränkt auf den Bereich bis 50 Hz, was mehr als genug für meine Zwecke ist.
Verbunden sind x,y,z auf A0, A1, A2 am Board. Mein "Problem": Der Bereich ist nur sehr klein, der von dem Sensorboard kommt.
Sprich, bei Ruhe (0 lage) habe ich bei 8 Bit 1,6 V und den Wert 128. (1,3V bei Wert 102).
Bei Drehung um 90 Grad an der enstsprechenden Achse habe ich nur ne Differenz von 40 (bezogen auf den Wert, also Bsp 128 -40).
Nun bin ich noch sehr neu in C und erst recht Arduino. Ich habe also etwas in den Headerfiles geschaut, und da bin ich bei den ADC Ports auf einen Gain gestoßen. Wie kann ich den auf 2 setzen, damit ich etwas differenzierte Wert erhalte?
Oder bin ich da auf dem Holzweg mit einer Verstärkung am Controller?
Du kannst aus 3 verschiedenen Referenzspannungen für den ADC wählen.
Siehe: analogReference() - Arduino Reference
Wenn das nicht reicht, gibt es noch die Möglichkeit eine externe Referenzspannung anzulegen.
Die Idee hatte ich auch schon. Laut den Headerfiles ist das bei SAM3X aber nicht vorgesehen. Habs jetzt trotzdem mal versucht und bekomme diese Fehlermeldung.
analogReference(EXTERNAL);
rgbLCD.ino: In function 'void setup()':
rgbLCD:50: error: invalid conversion from 'int' to 'eAnalogReference'
rgbLCD:50: error: initializing argument 1 of 'void analogReference(eAnalogReference)'
Den Pin "ARef" gibts aber am Board. Allerdings auch einen UIn.