Pages: [1] 2   Go Down
Author Topic: Foliendrucksensor, Arduino als MC?  (Read 2927 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 7
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hallo,

Ich arbeite gerade an meiner Bachelorarbeit. Diese handelt von der Druckverteilung unter einem Schienbeinschoner beim Fußball. Ich bin dabei den Versuchsstand aufzubauen und stehe jetzt vor folgendem Problem:
Ein Foliendrucksensor soll mit Hilfe des Arduino angesteuert werden und möglichst genau Spannungsabfälle aufzeichnen. Der Sensor arbeitet über x- und y-Leiterbahnen, die an den Kreuzungen, abhängig vom einwirkendem Druck, ihren Widerstand verändern.
Jetzt wollte ich zuerst nur eine einzelne Zelle (x/y Kreuzung) ansprechen. Als Multiplexer ist dieser IC vorgesehen: ADG 731 (Datasheet: http://www.analog.com/static/imported-files/data_sheets/ADG725_731.pdf)
Wie kann ich mittels der Truth Table bestimmte Ausgänge ansteuern? Wie müsste das Programm ungefähr aussehen?

Ich besitze das Arduino Uno, bin aber ein absoluter Einsteiger. Einige Examples habe ich aber bereits durchgeführt.
Ich hoffe ich habe nichts vergessen, falls ihr aber genauere Informationen braucht, bitte bescheid sagen.
Danke!

Gruß

Logged

Offline Offline
Jr. Member
**
Karma: 0
Posts: 73
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bekomme ich denn Deinen Batchelor wenn ich es Dir verrate? smiley-twist
Denk an Herrn von und zu Nichtschlechterhügel.

Aber mal im Ernst, meinst Du nicht es wäre fairer sich zunächst mit der Materie grundsätzlich vertraut zu machen, mit dem Programm anzufangen und dann gegebenenfalls nach Lösungen zu Detailproblemen zu fragen, statt übertrieben ausgedrückt zu fragen: wer erzählt mir von die Pieke auf an, wie meine Arbeit auszusehen hat?
Ich finde das stilistisch doch sehr fragwürdig.

LG Lena
Logged

„Zwei Dinge sind unendlich, das Universum und die menschliche Dummheit, aber bei dem Universum bin ich mir noch nicht ganz sicher.“

Albert Einstein

Offline Offline
Newbie
*
Karma: 0
Posts: 7
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

jop, da hast du recht! Es ist aber nicht so, dass ich mich mit der Materie überhaupt nicht auseinander gesetzt habe. Leider sind in meinem Studiengang Elektronik und Programmentwicklung etwas kurz gekommen, was den Einstieg bei Arduino schon recht schwer macht. Die Frage oben war aber wohl eindeutig zu allgemein...
Ich versuche mich mal weiter in die Materie einzuarbeiten. Kennt denn jemand ein Bsp (außer diesen: http://arduino.cc/en/Tutorial/HomePage), dass mir helfen kann die SPI-Kommunikation weiter zu verstehen? Vor allem interessiert mich, wie ich mittels dem Arduino ein Binärwort an den Multiplexer schicken kann...

Edit:
@Lena: meinen Bachelor kann ich dir nicht anbieten, aber natürlich eine Erwähnung in meiner Danksagung smiley-lol
 

« Last Edit: April 23, 2012, 06:49:12 am by tt22 » Logged

Offline Offline
Jr. Member
**
Karma: 0
Posts: 73
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Für die Kommunikation via SPI steht eine spezielle Library zur Verfügung.http://arduino.cc/en/Reference/SPI
Nun brauchst zunächst nur zwei verschachtelte schleifen für Zeilen und Spalten, setzt die jeweigen Schalter und speicherst das Ergebnis in einem array[16,16].
Mal so gaaanz grundsätzlich ohne nähere Kenntniss was am Ende rauskommen soll.

LG Lena
Logged

„Zwei Dinge sind unendlich, das Universum und die menschliche Dummheit, aber bei dem Universum bin ich mir noch nicht ganz sicher.“

Albert Einstein

0
Offline Offline
Faraday Member
**
Karma: 23
Posts: 3480
20 LEDs are enough
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Ich sehe das ähnlich wie Lena. Neulich hat sich hier einer bei seiner Meisterarbeit helfen lassen. Hinterher ist im eingefallen, dass die Prüfer vieleicht eine andere Auffassung von selbständiger Arbeit haben als er. Davon hat am Ende keiner was.

Was für Bachelor willst Du werden?
Logged

Check out my experiments http://blog.blinkenlight.net

Forum Moderator
BZ (I)
Online Online
Brattain Member
*****
Karma: 257
Posts: 21481
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ich sehe das ähnlich wie Lena. Neulich hat sich hier einer bei seiner Meisterarbeit helfen lassen. Hinterher ist im eingefallen, dass die Prüfer vieleicht eine andere Auffassung von selbständiger Arbeit haben als er. Davon hat am Ende keiner was.
Das schöne war noch, daß er den Moderator frech forderte, alles zu löschen und seinen Freund, den Anwalt zitierte. Das alles noch unter 3 verschiedenen Usern.

Wir helfen gerne, aber lassen uns nicht ausnutzen. Ums blumig zu sagen: Das meiste muß auf Deinen Mist wachsen.   smiley-wink smiley-wink smiley-wink
 
Grüße Uwe

Logged

Germany
Offline Offline
Edison Member
*
Karma: 47
Posts: 2315
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Ich denke nicht, dass das hier in eine Grundsatzdiskussion ausarten sollte, die beiden Fälle sind auch nicht vergleichbar. Beim letzten Mal war eine Komplettleistung gefragt, hier geht es um die Ansteuerung eines ICs im Rahmen einer Arbeit. Ist wohl eher mit dem Carrerabahn-Thread zu vergleichen, oder?
Da mir selbst die nöige Erfahrung mit SPI-Programmierung fehlt, muss ich an dieser Stelle auch passen. Eine Frage drängt sich mir aber auf: Wird der ADC des Mega328 schnell genug sein, um die Messwerte auswerten zu können? Ich habe mal versucht, eine Gameboy-Kamera anzusteuern, da versagte der inerne ADC auf ganzer Linie...
Logged

Mein Arduino-Blog: http://www.sth77.de/ - letzte Einträge: Teensy 3.0 - Teensyduino unter Window 7 - Teensyduino unter Windows 8

Offline Offline
Jr. Member
**
Karma: 0
Posts: 73
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ich wollte da auch keine Grundsatzdiskussion draus machen und deshalb habe ich im Anschluß auch versucht konstruktiv auf die Sprünge zu helfen.
Die Frage des Timings habe ich für mich auch sofort hinterfragt. tt22 (ich liebe solche Anreden) will 64 Messwerte erfassen, die (verm.) in einem Zeitfenster von wenigen ms auftreten - das wird wirklich eng.
Bei einem Zeitfenster von 10 ms und geschickter Programmireung könnte das aber funktionieren.
Leider tappen wir ja bezüglich der Rahmenbedingen sehr im dunkeln.
Mag der Threadstarter sich zunächst die geschilderten Aspekte zu gemüte führen und dann sehen wir weiter.

LG Lena
Logged

„Zwei Dinge sind unendlich, das Universum und die menschliche Dummheit, aber bei dem Universum bin ich mir noch nicht ganz sicher.“

Albert Einstein

Munich/Germany
Offline Offline
God Member
*****
Karma: 11
Posts: 643
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Als Entscheidungshilfe, ob ich eine Lichtschranke Analog oder Digital mit Schmitt-Trigger auswerte, hatte ich mal eine kleine Versuchsreihe gemacht. Ich hatte für die Zeitmessung analogRead() in einer Schleife 10000 mal aufgerufen. Um halbwegs realistische Zeiten zu erhalten, wurden in der Schleife auch noch diverse Berechnungen durchgeführt (schließlich bringt einem das reine Auslesen wenig).

Ich kam dabei auf 8,93 Aufrufe pro Millisekunde bzw. 0,112 Millisekunden für einen Aufruf.

Wenn man den ADC des ATmega beschleunigt, kommt man auf 58,59 Aufrufe/ms (0,017 ms/Aufruf).
Logged

_______
Manfred

Offline Offline
Newbie
*
Karma: 0
Posts: 7
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hallo,
bitte entschuldigt, dass ich erst jetzt Antworte. Zunächst einmal muss ich sagen, dass die Arduino Programmierung nur einen kleinen Teil meines Projekts darstellt. Die konstruierte Messeinrichtung verfügt außerdem über einen Kraftaufnehmer, Winkelmesser und Beschleunigungssensor, die ich aber alle mittels LabView ansteuern kann...
(Der Arduino sollte am Ende möglichst auch mit LabView kommunizieren, aber da habe ich mit VISA schon etwas gefunden...)
Den ersten Beitrag habe ich echt unüberlegt hier hin "gerotzt"...sry dafür.

Zu dem Timingproblem:
Leider sollen nicht nur 64 Messwerte erfasst werden, sondern im Optimalfall 484. Das Zeitfenster würde etwa 15ms betragen.
Dabei wird eine Messfläche von ca.64 cm^2 abgedeckt. Die Anzahl der Messwerte könnte ich durch verkleinern des Messfelds oder verringern der Auflösung noch mindern.

Quote
Ich kam dabei auf 8,93 Aufrufe pro Millisekunde bzw. 0,112 Millisekunden für einen Aufruf.

Das wären in 15ms also ca 134 Messwerte...damit könnte ich mit Sicherheit schon ein Aussagekräftiges Ergebnis erzielen. (klar, besser gehts immer...)

Ich werde jetzt erstmal versuchen, mittels analogRead() (ähnlich wie MaFu) ein kleines Programm zu schreiben um mal den ADC meines Arduino zu testen.

Grüße

Edit: http://arduino.cc/en/Reference/AnalogRead
Habe gerade noch was zur max. lese Rate gefunden. Diese beträgt ca. 10MHz. Also könnte ich immerhin etwa 150 Messwerte in 15ms aufnehmen.
« Last Edit: May 02, 2012, 07:23:36 am by tt22 » Logged

Germany
Offline Offline
Edison Member
*
Karma: 47
Posts: 2315
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Edit: http://arduino.cc/en/Reference/AnalogRead
Habe gerade noch was zur max. lese Rate gefunden. Diese beträgt ca. 10MHz. Also könnte ich immerhin etwa 150 Messwerte in 15ms aufnehmen.
Einigen wir uns auf 10 kHz? smiley-wink Aber das mit 150 Messwerte in 15 ms passt.
Logged

Mein Arduino-Blog: http://www.sth77.de/ - letzte Einträge: Teensy 3.0 - Teensyduino unter Window 7 - Teensyduino unter Windows 8

Offline Offline
Newbie
*
Karma: 0
Posts: 7
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Edit: http://arduino.cc/en/Reference/AnalogRead
Habe gerade noch was zur max. lese Rate gefunden. Diese beträgt ca. 10MHz. Also könnte ich immerhin etwa 150 Messwerte in 15ms aufnehmen.
Einigen wir uns auf 10 kHz? smiley-wink Aber das mit 150 Messwerte in 15 ms passt.

joa, damit kann ich leben;)
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 36
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

hallo zusammen,

guck dir doch mal hier nach. Wenn du Geschwindigkeit brauchst, dann hilft nur noch in Assembler oder C den ADC direkt anzusprechen. Nur so wirst du wissen, wo deine Taktzyklen abgeblieben sind. Nix gegen "analogRead", aber wenn ich mir die Doku des mega328 durchlese, glaube ich, dass du mit direkter CPU programmierung in C am meisten rausholen kannst.

cu markus
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 23
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Was hältst du von einer zufälligen Abfrage der Werte, so kannst du alle Messstellen Abfragen, und erhältst zufällig an manchen Punkten ne höhere Auflösung. Oder zwei Arduinos die gekoppelt sind und zeitversetzt abfragen.

Meine Vorschläge sollen nur dazu dienen dich in eine andere Denkrichtung zu stoßen. ;-)

Edit: oder prioritäten setzen, vielleicht sind Werte am Rand wichtiger oder weniger wichtig.
« Last Edit: May 16, 2012, 02:37:13 pm by Razor1990 » Logged

Munich/Germany
Offline Offline
God Member
*****
Karma: 11
Posts: 643
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Ich komm nochmal auf die Anmerkung in meinem letzten Post zurück:
Wenn man den ADC des ATmega beschleunigt, kommt man auf 58,59 Aufrufe/ms (0,017 ms/Aufruf).
580 Abfragen in 10 ms, reicht das nicht?
Logged

_______
Manfred

Pages: [1] 2   Go Up
Jump to: