den CMPS10/11 muss man nicht kalibrieren!
Wie hasst du das compass kalibriert ?
den CMPS10/11 muss man nicht kalibrieren!
Hier http://www.hobbytronics.co.uk/cmps10-tilt-compass wird etwas anderes gesagt :
Calibration the CMPS10
I would recommend evaluating the CMPS10 performance first before implementing this function. Its purpose is to remove offsets caused by constant magnetic sources around the CMPS10. First of all you need to determine North and align the CMPS10 with it, then enter the calibration mode by writing 0xF0 to the command register (22). To calibrate the first point write 0xF5 to the command register, this should also light the LED, then move the object through 90° and write 0xF5 to the command register. Repeat this twice more so four points are calibrated and the LED should also turn off to confirm calibration completion. Please make sure that the CMPS10 is not located near to ferrous objects as this will distort the magnetic field and induce errors in the reading.
ok, ich gebe mich geschlagen (hatte es beim CMPS11 noch nie machen müssen) - aber du hast offenbar recht und ich behaupte das Gegenteil ! :P
ich hatte ihm zwar schon auf seine PM geantwortet aber ich machs nochmal öffentlich:
ihc hab jetzt keinen gezeichneten schaltplan zur hand, daher muss ich es mal mit worten versuchen
ich habe in die VCC leitung eine diode gehängt, damit strom nur aus der versorgung zum sensor fließen kann und dann auf der sensorseite der diode 2 relativ dicke 10uF dran gehangen (später durch einen low drop spannungsregler ersetzt) an die anderen pins, außer GND selbstverständlich, habe cih jeweils 2 dioden anti-parallel gehangen (also parallel aber jeweils eine diode in die andere richtung) damit auch an den Pins eine vergleichbare spannung abfällt wie in der Versorgung um die elektronik zu schützen
Es gibt 10 Sorten von Menschen: Die einen können binär zählen, die anderen
nicht.
Also ich stimme HaWe zu es bedarf keiner kalibrierung bei cmps 10 doch bei LSM 303 sehr wohl.
Das hat aber leider gar nichts gebracht. Die Schwankungen sind leider immer noch da.
Ich Probiere die Version vom Ceos mal sehen was das bringt . Allerdings verstehe ich nicht warum du die IO 's mit Dioden abgesichert hast ...
Gruß
Chris
nicht abgesichert, ich habe durch die diode im VCC einen spannungsabfall von ca. 0.7V oder 0.3V wenn du eine Shottky nimmst
das heißt, wenn ich jetzt vom Controller irgendein Signal bekommen sollte ist es in der regel VCC ... da aber die logik im CMPS VCC-0.7V ist, habe ich 0.7V überspannung an den IO Pins und das ist (manchmal) schädlich für die elektronik, also eine reine sicherheitsmaßnahme um die überspannung zu vermeiden schalte ich halt eine diode in reihe mit jedem pin ... wenn man genau weis welcher pin was macht und wie die toleranzen sind braucht man die dioden nicht, da ich aber nicht weis wie der sensor ausgelesen wird war das nur ein sicherheitshinweis
wenn man den sensor analog ausließt ist es eh egal, aber man sollte wenn möglich VREF für den analogeingang auf VCC des sensor legen um saubere werte zu bekommen .... aber vorsicht auch dabei, es kann sein, dass andere analoge eingänge benutzt werden die größer sind als VCC am sensor und das ist schädlich für den ADC
Es gibt 10 Sorten von Menschen: Die einen können binär zählen, die anderen
nicht.
wieso analog? der CMPS10/11 ist digital (wahlweise i2c, UART). Ich würde hier niemals andere Spannungen verwenden als genau die, die auch der Bus benutzt, und so ist es für dieses CMPS Sensoren auch vorgesehen...! Und sollte er wirklich intern analoge Hilfsschaltungen benutzen, so ist das intern bereits berücksichtigt!
Dioden sind NICHT vorgesehen!
und das heißt: für Spannungsversorgung vom CMPS genau die Spannung, wie sie aus dem Arduino Bordnetz kommt!
SDA+SCL bzw. RX+TX wie sonst üblich.
Hersteller-Seite:
http://www.robot-electronics.co.uk/htm/cmps11doc.htm
meine vermutung war eine verseuchte und instabile versorgung daher eine diode + kondensatoren als "backup" ohne strom rückfluss in die schaltungfür Spannungsversorgung vom CMPS genau die Spannung, wie sie aus dem Arduino Bordnetz kommt!
SDA+SCL bzw. RX+TX wie sonst üblich.
wenn es I2C ist isses eh egal, da brauchst dann nur pull-ups an SDA und SCL nach VCC hinter der diode ... 0.7V weniger sollten auf der controller seite überhaupt kein problem darstellen, aber wenn ich pullups vor die diode hänge, liegen mal beispielhaft gerechnet 5V and SDA und SCL aber die VCC des Sesnsor ist nur 4.3V und das könnte schädlich sei für die elektronik
Es gibt 10 Sorten von Menschen: Die einen können binär zählen, die anderen
nicht.
Die Diode würde ich auch weglassen. Die Bringt nämlich außer Verpolungsschutz gegen Störungen ziemlich wenig.
Wenn man seine Versorungsspannung stabilisieren will ist ein oder mehrere Elko in Kombination mit einem Keramikkondensator eine gute Wahl. So zur Größen Wahl würde ich so 100 bis 470uF beim Elko und 100nF beim Keramikkondensator vorschlagen.
Um trotzdem noch mal die Dioden Problematik zu diskutieren:
Das ist mit heutigen ICs eigentlich kein Problem solche Spannungsdifferenzen auf Logikleitungen zu haben. Wenn der Sensor zum Mikrocontroller sendet dann hat er eben ein Signal mit 4,3 - 4,7V statt 5V -> Wird als High erkannt alles gut. Die andere Richtung legt der Mc 5V an. Kann je nach Empfänger ICs Problematisch sein. Fast alle Konsumer ICs die man heutzutage aber kaufen kann, haben Protection Dioden am Eingang. Die Leiten das nach VCC ab. Wenn man auf Nummer sicher gehen will, packt man einen Widerstand ins Serie um den Strom zu begrenzen.
Man benutzt das auch gerne um sich Pegelwandler zwischen 3,3V und 5V ICs bei UART zu sparen.
Könntest du bitte mal in Zahlenwerten sagen wie groß die Schwankungen sind, wenn Motoren und andere Leistungselektronik in der Nähe ausgeschaltet sind?
Lesezeichen