Hallo! Ich habe einen "Spaltenroboter" gebaut, wie zb.:http://www.braeuer.cc/de/165/ Zur Wegerkennung, Abstandsmessung wird ein Lasersensor Sick DT35 verwendet. Der Lasersensor wird vom ADC am Arduino Mega ausgelesen. 0-5V 0-1024 bit, 0-300cm, Genaugikeit des Lasersensors circa 5mm. Jedoch erhalte ich am ADC schwankende Ergebnisse von 4Bit, Laufen die 2 BLCD Antriebsmotoren, sowie die Sprühvorrichtung erhöht sich die Ungenauigkeit auf bis 10 bit. Mit dem Multimeter (3 Kommastellen genau) habe ich den Lasersensor bereits überprüft, max Abweichung 1bit. Am ADC habe ich jedoch die schwankenden Ergebnisse, am Multimeter nicht. Wie kann ich am ADC genauer messen?
Richard K. schrieb: > Mit dem Multimeter (3 Kommastellen genau) habe ich den Lasersensor > bereits überprüft, max Abweichung 1bit. > > Am ADC habe ich jedoch die schwankenden Ergebnisse, am Multimeter nicht. Das Multimeter mittelt die Spannung über ~0,5s, der ADC zeigt dir den Momentanwert der Spannung. Bei der Mittelung fallen viele Störungen raus. Wenn es dich nicht stört, dass das Signal durch die Mittelung "ausgebremst" wird, dann bau entsprechende Tiefpässe vor die ADC Eingänge.
Wobei 10 Bit Ungenauigleit bei einem 10 Bit ADC dann doch schon etwas sehr ungenau ist ;) Oliver
welche Version hast du vom mega2560 Chip ? Einige haben nähmlich einen ADC errata, ältere.
Hast du nur den optischen Sensor zur Navigation? Der ist doch im Sommer schnell mal von Fliegensch... bedeckt. Oder wenn die Kühe dran schlecken :D Die Spaltenschieber die ich kenne (rot), nutzen einen Gyro und zusätzlich einen Ultraschallsensor um sich seitlich am Fressgitter bzw. einer Mauer zu orientieren. Der Gyro Chip ist auf einer gesonderten kleinen Platine und mit Schaumstoff eingepackt. Vermutlich damit die Temperatur stabil bleibt?
Wie gut ist die Stromversorgung? Dein Schaltbild ist: Unter aller Sau. Wie sieht es mit der Referenz(spannung) aus? Wenn ich sehe, das Du 2 Ampere für einen Stepper vorgesehen hast, und 3 für eine Pumpe, können schon "sparsame" Leiterbahnen lustige Effekte hervorbringen, sollten letztere nicht gerade unter dem Dauernd-an-syndrom leiden.
Das mit den Bits klingt noch etwas verwürfelt. Ein 10 Bit ADC liefert Werte von 0-(2^10-1)=1023. 4 Bit Abweichung würde bedeuten bis zu 2^4=16 daneben. 10 Bit Abweichung würde dann bedeuten dass du auch 1023 statt 0 und umgekehrt rauskriegst. Hast du das so gemeint? Davon abgesehen: Es muss kein externer Tiefpass sein, Mittelwertbildung über mehrere Messungen ist auch eine Möglichkeit.
Andreas K. schrieb: > 10 Bit Abweichung würde dann bedeuten dass du auch 1023 statt 0 und > umgekehrt rauskriegst. > Hast du das so gemeint? Es sind bestimmt 10 LSB gemeint...
Eine Sicherung in der Masseleitung ist eher kontraproduktiv. Die Fehlerbeschreibung riecht sehr nach instabiler Referenz und Einkopplung von Störsignalen. Systematisch messen... alles andere führt zu nichts.
Das Layout wird aehnlich sein wie das Schema. Streifenleiter ? Steckbrett ? Wrapp ? Fädel ? Das war's dann.
Kann mal jemand diese Strickmuster im ersten Beitrag entwirren? Ich erkenne darin ungefähr gar nichts.
Achim S. schrieb: > Das Multimeter mittelt die Spannung über ~0,5s, der ADC zeigt dir den > Momentanwert der Spannung. Bei der Mittelung fallen viele Störungen > raus. > > Wenn es dich nicht stört, dass das Signal durch die Mittelung > "ausgebremst" wird, dann bau entsprechende Tiefpässe vor die ADC > Eingänge. Mit der Mittelung erhalte ich nun brauchbare Werte, Genauigkeit auf +/- 1cm. Das ist mehr als ausreichend. Weiters habe ich eine externe Referenzspannung rangehängt. Was mir noch auffählt: Schaltung wird gestartet: Abstand zur Wand 0cm (korrekte Erfassung). Schaltung wird abgeschaltet, wieder gestartet: Abstand zur Wand -15cm (falsche Erfassung) Die Genauigkeit von +/- 1cm bleibt bei beiden Werten erhalten. Dies hatte ich bei 10 Starts 2mal. Da der Lasersensor auf drei Seiten: Links, Rechts, Vorne misst, wird er von einem Schrittmotor geschwenkt. Nachdem Schwenken des Schrittmotors habe ich noch ein kurzes delay() in den Code eingefügt, das hat die Werte weiter verbessert.
Oliver S. schrieb: > Wobei 10 Bit Ungenauigleit bei einem 10 Bit ADC dann doch schon etwas > sehr ungenau ist ;) > > Oliver Tut mir leid für die falsche Aussage, meinte natürlich die Werteabweichung bei 0-1024.
Georg G. schrieb: > Eine Sicherung in der Masseleitung ist eher kontraproduktiv. Da ich mich noch nicht so gut auskenne, würde ich gerne wissen weshalb die Sicherung an Masse schlecht ist? Ich hatte die Schaltung, bevor ich eine Leiterplatte bestellt habe, auf einer Lochrasterplatine. Durch einen Bedienungsfehler kam es zu einen Kurzschluss von VCC aber nicht am Eingang vom Arduino, der abgesichert war, sondern von den Ladekabel der Akkus...., auf jeden Fall ging der Strom über die Masseleitung der Lochrasterplatine und so ziemlich alles war defekt, aus diesem Grund habe ich auch GND abgesichert.
Wenn das o.a. Schaltbild ungefähr der Realität entspricht, fehlen da selbst die simpelsten Abblockmassnahmen. Keine Entkopplung der Leistungskreise, null Elkos an Betriebsspannungen usw. Das da überhaupt irgendwas funktioniert, ist wahrlich erstaunlich.
Oder D. schrieb: > Das Layout wird aehnlich sein wie das Schema. > Streifenleiter ? Steckbrett ? Wrapp ? Fädel ? > > Das war's dann. Layout des PCB
Richard K. schrieb: > Layout des PCB Ich vermute, das das in wenigen Augenblicken in der Luft zerrissen wird. Ich fang dann schon mal an: * 2A für die Stepper über Leiterbahnen, die schon bei 100mA zu dünn wären. * Leiterbahn Taster über die gesamte Leiterplatte und in unmittelbarer Nähe von Endstufen. * Wie oben schon vermutet, keinerlei Abblockungen an Endstufen oder sonstigen Betriebsspannungen.
dotdotdot schrieb: > Hast du nur den optischen Sensor zur Navigation? Der ist doch im Sommer > schnell mal von Fliegensch... bedeckt. Oder wenn die Kühe dran schlecken > :D > > Die Spaltenschieber die ich kenne (rot), nutzen einen Gyro und > zusätzlich einen Ultraschallsensor um sich seitlich am Fressgitter bzw. > einer Mauer zu orientieren. Der Gyro Chip ist auf einer gesonderten > kleinen Platine und mit Schaumstoff eingepackt. Vermutlich damit die > Temperatur stabil bleibt? Zur Navigation habe ich den Lasersensor sowie RFID TAGS im Boden wobei ich die derzeit nur bei der Ladestation eingesetzt habe. Beim Robby von JOZ steht Wegmessung zur Navigation, ein Rätsel wie das bei Schlupf einwandfrei funktioniert. Der Lasersensor sitzt in der Mitte des Robby. Nach Links und Rechts ist ein Quadrahtrohr mit einer Länge von 20cm, da bin ich gegen Dreck, etc. gut geschützt Nach vorne noch nicht, da muss ich mir noch was einfallen lassen. Mit dem Gyro habe ich mich nur kurz auseinandergesetzt, habe aber einen HMC6343 Compass verwenden wollen: https://www.sparkfun.com/products/12916 Dieser sollte auch mittels Kalibierung die von Eisen im Robby ausgelösten Magnetfelderk kompensieren, aber leider ohne Erfolg.
Richard K. schrieb: > Jedoch erhalte ich am ADC schwankende Ergebnisse von 4Bit, Laufen die 2 > BLCD Antriebsmotoren, sowie die Sprühvorrichtung erhöht sich die > Ungenauigkeit auf bis 10 bit Hast du dir das Signal auch mal am ADC-Eingang angeschaut? Und wie misst du? Single oder Differential? Ich vermute Single Ended und da darfst du bis zu 2.5 LSB haben. Und nutzt du die ADC Noise Reduction? Letzteres spricht auch dafür, dass du ein Signalübersprechen hast. Dafür kann ja der ADC nun nichts. Ich empfehle dir ein Redesign deines Shields wenn das so gravierende Auswirkungen hat. Woher kommt die Versorgung für die Motoren und die Sprühvorrichtung? Hoffentlich nicht aus der selben Quelle wie für den ADC bzw. dessen Referenz.
Das Layout ist maximalkrass. Ein Fehler der heutigen Schemaprogramme vorzugaukeln, ein Netlabel, resp eine Bezeichnung haette einfach dasselbe Potential. Dabei geht der Stromfluss vergessen. Bei diesem Layout sollte der Poster Froh sein, diesen cm an Genauigkeit zu haben. Ist schon mal was, geht. Verbessern kommt irgend wann. Spaeter.
Richard K. schrieb: > Oder D. schrieb: >> Das Layout wird aehnlich sein wie das Schema. >> Streifenleiter ? Steckbrett ? Wrapp ? Fädel ? >> >> Das war's dann. > > Layout des PCB Autorouter??? Das da noch Airwire sind mal abgesehen, Respekt das die Kiste bei dem Layout dennoch läuft :)
Fhutdhb U. schrieb: > Autorouter??? Der hätte wohl nicht im selben Layer die Vorzugsrichtung derart durcheinander geworfen.
Richard K. schrieb: > Sicherung an Masse schlecht Eine Sicherung ist auch ein Widerstand, und ein schwankender noch dazu. Mit der Sicherung in GND (wie bei dir nur für einen Teil der Schaltung) wirfst du die Potentiale undefiniert durch die Gegend. Wenn dann extern noch eine Verbindung zu GND liegt, können bei geschossener Sicherung noch seltsamere Effekte auftreten.
Richard K. schrieb: > schaltplan_robby.png Wie soll der Strom eigentlich durch den Gnubbel durchfinden?
Ich kann nicht einen Puffer-/Ablockkondensator finden. In Verbindung mit dem Layout...Respeckt. Deine ADC-Messung ist unter diesen Umständen faszinierend genau versteh gar nicht wo das Problem ist. ;-)
Da man in der Regel alle Spannungen relativ zu GND misst und angibt, ist es keine gute Idee, die GDN Leitung durch eine Sicherung zu unterbrechen. Wenn die Sicherung ausgelöst ist, dann ist GND eben nicht mehr GND, sondern irgendwas anderes, was schwer zu berechnen ist und technisch sicher auch keine sinnvolle Funktion mehr hat.
Das Layout ist echt krass. Sowas würde ich sogar auf Lochraster ordentlicher hinbekommen. Und ich bin schon ein fauler Hund.
Nicht ärgern lassen, mein erstes Layout sah nicht besser aus. (mein Erstes Schema schon, aber nur ein klein wenig). Am ADC sollte es ruhiger werden wenn Du direkt am Stecker zum Arduino 100nF gegen Masse hängst (oder besser: den grössten Keramikkondensator den die Bastelkiste hergibt). Evtl. findet der Ausgang des Lasersensors kapazitive Last aber nicht so hübsch (kann zu Schwingneigung führen, hab das Datenblatt jetzt nicht angesehen). Daher noch in die Signalleitung vom Sensor zum Board 1kOhm Widerstand. Darüber hinaus: Fahr die Samplerate vom ADC hoch. Der darf ruhig ein paar 1000 mal pro sekunde gucken ob sich was verändert hat. Dann Mittelwert von 64 Wandlungen bilden und schon wird alles viel ruhiger. Und dann musst Du unbedingt an den 12V etwas tun. Ordentlichen Elko direkt an die Klemmen dürfte schon etwas helfen. Vollbringt jetzt keine Wunder, aber eigentlich ist das Arduino keine zickige Plattform, das bringst Du mit ein paar Verbesserungen auch mit Deiner Platine zum laufen. viel Erfolg hauspapa
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.


