Go Down

Topic: Schieblehre - Arduino Versuchsaufbau (Read 51385 times) previous topic - next topic

Muecke

Oct 19, 2014, 01:22 pm Last Edit: Nov 02, 2014, 06:29 pm by Muecke
Hallo miteinander,

ich habe eine Arduino Mega und möchte daran 5 Schieblehre anschließen und gleichzeitig auslesen.

meine Vorstellung an Material:
- Digitale Präzisions-Schieblehre, 150 mm
- Arduino Mega

so könnte man die Schieblehre anschließen << Hier >>


Warum ich das machen möchte:
- Ich habe eine Linearführung Schwebend verbaut, und sollte Ihre Belastbarkeit Testen, dazu würde ich gerne wissen wie Stark sie sich wann verdrehen wird wie ein Korkenzieher, aus dem Grund würde ich gerne alle Schieblehren auf Knopfdruck auslesen, um später die Daten dann in einer Excel Tabelle zu verarbeiten.
Da meine Zug wage leider keine Schnittelle besitzt muss ich die Daten parallel dazu aufschreiben aus dem Grund würde ich die Schieblehre per Knopfdruck auslesen, oder einen Marken Sätzen und die Schieblehren alle 0,5-1s auslesen.

Ich habe so was noch nie gemacht es ist bisher nur eine Idee es so zu machen, für andere Ideen bin ich immer offen, besonders wenn sie weniger Kosten (EURO) verursachen würden.

meine Linearführung hat einen Hub von 1,10 M ist also nicht gerade ganz klein.

was meint Ihr dazu?
würdet Ihr einen anderen weg einschlagen? oder könnte das so klappen? was sagen die Experten hier?
welche Ideen habt Ihr zu meinem Vorhaben?


Bevor ich es vergesse, ich möchte mit rund 40Kg an der Linearisierung ziehen.  

Gruß
Mücke




EDIT: für alle die das Thema über google und co gefunden haben.

es gibt unterschiedliche Protokolle etc. bei den Schieblehre daher möchte ich euch kurz zeigen welche ich im Einsatz habe hier.


Schieblehre 1:  2 x 24bit
Bilder gibt es im Post #88
ich habe die Schieblehre bei Reichelt 05/2013 gekauft.  


es handelt sich hier um ein 2x24bit Typ

den dazu gehörigen Code den "Doc_Arduino" für uns erstelt habt findet Ihr im Post: #90




Schieblehre 2:
es wird noch auf eine andere Schieblehre eingegangen vom User "BordIng" das fängt am Post: #87 an.


es handelt sich um Messschieber bei denen der Hersteller so nicht identifiziert werden kann, schade ist aber leider so, es gibt keine hinweise auf dem Schiebern selbst.
jedoch ist bei den Messschiebern das (+1,5V) mit dem Gehäuse verbunden. 


ich versuche hier noch auf dem Laufenden zu bleiben, und versuche dann das Ergebnis hier mit rein zu stellen, im ersten Post



- Anfänger in allen Hinsicht - Bilder sichtbar einstellen
1  Bild Hochladen (Attachements); 2 Beitrag Save; 3 Anhang rechter Mausklick; "Adresse des Links kopieren"; 4 Beitrag „Modify"; 5 img-Tags mit dem kopierten Link einfügen; 6 Beitrag Save
DANKE

sschultewolter

Ich versteh noch nicht ganz was du vor hast. Wichtig wäre erst einmal, hat dein Messschieber diese Ausgänge überhaupt?

Mach mal ein Bild von dem Teil was du bislang am stehen hast.
Orginal Atmel AVRISP mkII zu verkaufen. Anfrage per PN ;)

Doc_Arduino

#2
Oct 19, 2014, 05:19 pm Last Edit: Apr 01, 2016, 08:47 pm by Doc_Arduino
Hallo,

im Batteriefach sind die Anschlüsse.

Ich hatte das auch mal zum Spass probiert und es funktionierte nach paar Rückschlägen.
Wenn Du das mal komplett liest, weis Du wie es geht.
http://forum.arduino.cc/index.php?topic=213037.0
Falls Dein Meßschieber das gleiche Protokoll verwendet. Das variiert manchmal.

Nur habe ich bedenken, dass ein Meßschieber nicht dafür ausgelegt ist, ständig hin und her bewegt zu werden. Deswegen halte ich das zwar für eine tolle Idee, aber nicht Praxistauglich.



Tschau
Doc Arduino '\0'

Messschieber auslesen: http://forum.arduino.cc/index.php?topic=273445
EA-DOGM Display - Demos: http://forum.arduino.cc/index.php?topic=378279

Muecke

#3
Oct 19, 2014, 05:49 pm Last Edit: Apr 27, 2015, 10:15 am by Muecke
je die Teile haben den Anschluss, das es mit dem Protokoll nicht so einfach ist habe ich schon gelesen, der Link war nur zur Orientierung gedacht.

ich benötige das ganze hoffe ich nur 1 mal oder 2 mal es ist also nicht im Dauer Einsatz.

habe das mal ein Bild gemacht, wie ich mir das vorstelle:

noch habe ich die Linearführung nicht habe nur ein Muster hier mit dem ich mal ein Bild gemacht habe.


Bildschirmfoto 2014-10-19 um 17.27.55.png


P1160903.JPG
- Anfänger in allen Hinsicht - Bilder sichtbar einstellen
1  Bild Hochladen (Attachements); 2 Beitrag Save; 3 Anhang rechter Mausklick; "Adresse des Links kopieren"; 4 Beitrag „Modify"; 5 img-Tags mit dem kopierten Link einfügen; 6 Beitrag Save
DANKE

Doc_Arduino

Hallo,

na dann los, wenn es nicht für den Dauereinsatz gedacht ist.  ;)  Ich hab die Kabel gleich fest im Meßschieber angelötet.
Tschau
Doc Arduino '\0'

Messschieber auslesen: http://forum.arduino.cc/index.php?topic=273445
EA-DOGM Display - Demos: http://forum.arduino.cc/index.php?topic=378279

Muecke

ja ich dachte auch das ich die da fest einlösten würde,
dort ist ja keine öse oder so was, ... ;-(

Ihr seht auch kein Problem darin 5 Schieber gleichzeitig
am Arduino anzuschließen und auszulesen?

- Anfänger in allen Hinsicht - Bilder sichtbar einstellen
1  Bild Hochladen (Attachements); 2 Beitrag Save; 3 Anhang rechter Mausklick; "Adresse des Links kopieren"; 4 Beitrag „Modify"; 5 img-Tags mit dem kopierten Link einfügen; 6 Beitrag Save
DANKE

rudirabbit

Quote
Ihr seht auch kein Problem darin 5 Schieber gleichzeitig
am Arduino anzuschließen und auszulesen?

Ich wollte meine Meinung dazu gerade tippen, war wohl Gedankenübertragung   :)
Das ganze hat Ähnlichkeit mit der Auswertung eines DCF Signals 
Also die Zeiten der Flanken messen und das 5 mal.

Wenn du alle 5 Meßschieber an die ext. Interruptpins des Mega anschließst könnte es funktionieren. 
So würde ich die Sache angehen.
Aber mal abwarten was die Freaks dazu sagen.
Arduino UNO,MEGA,DUE 
Dunkel die andere Seite ist. - Klappe, Yoda, und iss deinen Toast :-)

Doc_Arduino

Quote

Ihr seht auch kein Problem darin 5 Schieber gleichzeitig
am Arduino anzuschließen und auszulesen?


Hallo,

Du kannst so viele anschließen wie möglich sind. Die Dinger geben ja permanent ihre Messwerte raus. Man muß warten um den Anfang des Datenpaketes zu erkennen. Also es ist zeitlich gesehen egal wann Du den nächsten abfragst. Nur beim abfragen eines Meßschiebers ist das Timing während des einlesens wichtig. Deswegen kann man an einer bestimmten Stelle nicht mehr mit digital.Read arbeiten. Das war bei mir zu langsam. Siehste aber im Code.

@ rudi:
Interrupt geht nicht. Man muß die einzeln abfragen. Der Anfang der Datenpakete muß erkannt werden. Wenn alle permanent einen ISR auslösen würden, wäre Kaos vorprogrammiert. Die haben auch keinen Ausgang der irgendeinen "bin fertig" Status signalisiert.
Tschau
Doc Arduino '\0'

Messschieber auslesen: http://forum.arduino.cc/index.php?topic=273445
EA-DOGM Display - Demos: http://forum.arduino.cc/index.php?topic=378279

Muecke

also ich muss gestehen das ich die Idee schon eine weile habe, jedoch andere Projekte Leier eine Höhere Priorität hatten / haben, aus dem Grund habe ich das immer nur überflogen was das auslesen des Schiebers anbelangt.

Jedoch habe ich mir das Thema vom Doc gerade durchgelesen und bin etwas entmutigt worden.

denn ich habe nicht mal die helft verstanden von dem um was es da ging  :smiley-roll-sweat: jetzt bin ich mir nicht mehr so sicher ob das eine gute Idee ist was ich da vorhabe, oder ob ich mich etwas übernehmen werde damit.

ich dachte das ich das teil wie einen "Seriellen Monitor" abfragen kann also ich bekomme immer eine Zahlenreihe zu gesendet in der die Absolute Position beinhaltet ist, und ich das dann verarbeiten muss,
wenn ich das aber richtig verstanden habe muss ich das Arduino wie ein oszilloskop Einsätzen und die Daten auswerten. was die Sache etwas schwerer machen würde tut für mich.  
- Anfänger in allen Hinsicht - Bilder sichtbar einstellen
1  Bild Hochladen (Attachements); 2 Beitrag Save; 3 Anhang rechter Mausklick; "Adresse des Links kopieren"; 4 Beitrag „Modify"; 5 img-Tags mit dem kopierten Link einfügen; 6 Beitrag Save
DANKE

rudirabbit

#9
Oct 19, 2014, 08:00 pm Last Edit: Oct 19, 2014, 08:04 pm by rudirabbit Reason: 1
@Doc_Arduino: Hatte da einen falschen Gedankenansatz.
Die Logig wäre: Erkenne den Schieber der gerade mit seinem Paket beginnt und arbeite diesen ab.  
usw.
Oder besser warte bis Schieber 1 beginnt usw....

Quote
ich dachte das ich das teil wie einen "Seriellen Monitor" abfragen

Leider nicht du must wie gesagt die Zeiten messen.
Zuerst den Punkt finden wo der Anfang des Protokolls ist dann anhand der Pulsbreite eine 1 oder 0 in ein array schreiben.
Dieses dann auswerten.

Versuche es erstmal mit einem Schieber und dem Code von Doc.
Arduino UNO,MEGA,DUE 
Dunkel die andere Seite ist. - Klappe, Yoda, und iss deinen Toast :-)

Muecke

habe gerade meinen Schieber aufgeschraubt, das ist ja erstaunlich wie wenig darin ist.

muss ich da noch etwas einlesen, wenn ich das richtig bisher verstanden habe, muss ich keine Elektronik Bauteile mit dazwischen klemmen.

wie das mit der Batterie ist bin ich mir noch nicht sicher, wird der Schieber dann vom Arduino versorgt? und die Batterie muss raus, oder nicht, ...

noch sind ein paar Fragen offen und ich muss da etwas nachlesen ;-)

EDIT: ja ich fange erst mal mit einem an und dann schaue ich mal weiter, ....
- Anfänger in allen Hinsicht - Bilder sichtbar einstellen
1  Bild Hochladen (Attachements); 2 Beitrag Save; 3 Anhang rechter Mausklick; "Adresse des Links kopieren"; 4 Beitrag „Modify"; 5 img-Tags mit dem kopierten Link einfügen; 6 Beitrag Save
DANKE

Doc_Arduino

Hallo,

oh, jetzt hast Du Dich leider durcheinander gebracht. Das kannst Du Dir schon vorstellen wie eine ständige serielle Übertragung der absoluten Position. Meiner gibt 2 Positionswerte raus, ich lese nur den 2. ein.

Das Bild was Dich durcheinander gebracht hat, ist nur ein Mitschnitt vom Takt/Datensignal wie das wirklich aussieht.

Das kleine Problem ist nur, Du kannst dem Meßschieber kein Befehl geben in der Art, ich will dich genau jetzt auslesen, fange bitte an mir Deine Daten genau jetzt zu senden. Der sendet ständig seine Daten. Der Trick ist, die große Lücke zwischen 1. und 2. Meßwert zu erkennen. Wenn man das hat, weis man ab wann man definiert mit jeden Takt einlesen kann.

Mein Code ist ein angepaßter Code von der c't Hacks. Weil das Protokoll nicht zu meinem Meßschieber paßte, mußte ich das ändern.

Wie gesagt, man wartet eigentlich nur auf eine größere Pause im Taktsignal, wenn das paßt, kann man mit den anschließenden Takten die Daten einlesen. Der Rest ist umrechen. Im Thread sind noch andere Links drin. Lies das mal. Ich hoffe das etwas klarer gewurden. Ich hatte auch gedacht, meine Kommentare im Code helfen.

Ich hatte meinen fremd versorgt. Also ungefähr die Spannung angelegt die die Batterie auch hätte. Batterie komplett rausgenommen. Die hält eh nicht lange. Nur die Signalpegel mußte auf Arduino typische 5V anheben. Dafür hatte ich einen Doppel OPV verwendet. Im Thread am Ende beschrieben.
Tschau
Doc Arduino '\0'

Messschieber auslesen: http://forum.arduino.cc/index.php?topic=273445
EA-DOGM Display - Demos: http://forum.arduino.cc/index.php?topic=378279

Muecke

Ok, das habe ich verstanden.

ich bekomme immer Daten vom Schieber ob ich möchte oder nicht, es ist aber nichts in einem Puffer den ich auslesen kann sondern kann immer nur die Live Daten mit hören, wenn ich einen Puffer haben möchte muss ich den programmieren.

Ok das ist etwas beruhigend, auch wenn ich noch nicht wies ob mich das Positiver stimmt ;-) .



was auch immer ein OPV, laut Wiki = Operationsverstärker
wenn ich das dann richtig verstanden habe muss ich die die V des Schiebers auf 5V für das Arduino hoch bekommen.

das mit der Fremd Versorgung habe ich nicht verstanden, hast du die Batterie raus genommen und ein Kabel dran gemacht und des den Schieber extra versorgt?

Welchen Schieber hast du den genau im Einsatz bei dir gehabt?
Typen
- Anfänger in allen Hinsicht - Bilder sichtbar einstellen
1  Bild Hochladen (Attachements); 2 Beitrag Save; 3 Anhang rechter Mausklick; "Adresse des Links kopieren"; 4 Beitrag „Modify"; 5 img-Tags mit dem kopierten Link einfügen; 6 Beitrag Save
DANKE

Doc_Arduino

Hallo,

genau, der Schieber gibt ununterbrochen seinen aktuellen Meßwert raus. Alles live.

Guck Dir meinen Code dazu in aller Ruhe an und versuche es gedanklich nachzuvollziehen.

OPV, richtig, ist ein Operationsverstärker. Dann muß man nicht mit Transistoren handieren und ist mit dem Schwellwert flexibel an dem er umschaltet. Wenn man ein Poti verwendet.

Meine Fremdversorgung. Genau, ich habe die Batterie rausgenommen, die lutscht es eh aller paar Tage leer, und an alle Anschlüsse ein Kabel rangelötet., Ub, Masse, Takt, Data. Die ca. 3V habe ich mir aus den Arduino 5V generiert.

Mein Schieber ist von Tchibo und hat das 2x 24 Bit Protokoll, also Typ A.
Und wenn Du Dir im Bild von Typ A den Takt anguckst, siehst Du zwischen den beiden 24 Bit Paketen eine große Pause. Die muß man erkennen und dann die Daten mit jeden Takt einlesen. Der Meßwert vor der großen Lücke ist auch ein Meßwert. Ich eis nur noch wofür der da ist. Bei manchen ist das der innere abweichende Skalenwert, bei anderen der relative zum selbst gedrückten Nullpunkt am Schieber, bei mir machte das kein Unterschied. Der Meßwert nach der großen Lücke ist bei mir auf jedenfalls der Wert, den man immer auf dem Display auch sehen würde. Egal wie man den Meßschieber bedient. Und da es der zweite Wert ist, macht es das einlesen einfacher. Oder man speichert die nächsten 24 Bits in eine neue Variable. Ist egal, sobald man die große Pause sicher erkannt hat, ist der Rest einfach.

Beim Typ B Protokoll sind es sieben 4 Bit BCD Werte.

Was zum lesen.

http://www.shumatech.com/support/chinese_scales.htm#Digimatic%20Protocol
http://www.yadro.de/digital-messleiste/protokoll.html
http://www.pcbheaven.com/exppages/Digital_Caliper_Protocol/?topic=chinesebin

Wenn man einmal das Prinzip verstanden hat, ist es eigentlich einfach. Ich hatte aber auch Rückschläge zu verkraften. Nach paar Tagen Abstand  kam der Ehrgeiz wieder. Kopf hoch, wird schon.
Tschau
Doc Arduino '\0'

Messschieber auslesen: http://forum.arduino.cc/index.php?topic=273445
EA-DOGM Display - Demos: http://forum.arduino.cc/index.php?topic=378279

Muecke

so heute habe ich mich dran gemacht den Schieber aufzuschreiben und zu zerlegen,
dann habe ich Ihn wider zusammen gesetzt um zu schauen ob er noch geht, Klappt *Heppy*

dann habe ich mich dran gemacht und habe 4 Kügelchen dran gelötet, (könnte besser ausschauen)
dann habe ich es wider zusammen gebaut und bekomme nur Müll angezeigt,
also wider zerlegen und so testen, klappt also liegt das Display nicht richtig drin also jetzt nach dem 30 mal zusammen und auseinander bauen klappt es immer noch nicht :-(

hat mir jemand einen Tipp wie man das am besten machen kann so das es wider am Schluss alles klappt?
also die anzeige !!!

*könnte gerade ... arrrr*
- Anfänger in allen Hinsicht - Bilder sichtbar einstellen
1  Bild Hochladen (Attachements); 2 Beitrag Save; 3 Anhang rechter Mausklick; "Adresse des Links kopieren"; 4 Beitrag „Modify"; 5 img-Tags mit dem kopierten Link einfügen; 6 Beitrag Save
DANKE

Go Up