Wissensdatenbank Wirtschaftsrecht

image5
image4
image3
image2
image1
 Alle Kategorien:
  Forschungsdatenbank
  Lehrveranstaltungen
  Lexikon
  Literatur
  Rechtsgebiete
  Rechtsprechung
  Service
  Studium F H S
  Wissensmanagement
ich war hier: ArduinoBeispielKraftsensorenTisch

Mikroprozessor-Beispielanwendung


Es soll mithilfe von 3 Kraftsensoren und einem Arduino die Position eines Testobjekts bestimmt werden, welches sich auf einem 3-beinigen Tisch befindet. Die 3
Kraftsensoren werden unter den 3 Beinen des Tischs angebracht. Durch die Verteilung des Gewichts auf die 3 Sensoren kann man darauf schließen, wo auf dem Tisch
sich das Testobjekt befindet.

Die Sensoren haben jeweils 2 Pins, einer wird an 5 Volt angeschlossen und der andere an einen analogen Eingang des Arduino. Der Sensor wirkt dabei wie ein
Widerstand; je nachdem wie stark die Kraft ist, die auf ihn drückt, verändert sich sein Widerstand. Zusätzlich werden noch die analogen Eingänge, an denen die
Sensoren angeschlossen sind, durch jeweils einen 220 Ohm Widerstand mit GND verbunden. Dieser wirkt dadurch als Pull-Down Widerstand
(https://rn-wissen.de/wiki/index.php?title=Pullup_Pulldown_Widerstand), das bedeutet wenn keine Kraft auf die Sensoren drückt, wird am analogen Eingang auch
tatsächlich der Wert 0 gemessen.

Schematische Darstellung des Testaufbaus

Der Testaufbau

Der Testaufbau

Zuerst wird der Tisch ohne Testobjekt auf die 3 Sensoren gestellt um seine Eigenmasse zu bestimmen. Durch das Drücken eines Buttons wird dann eine Funktion
aufgerufen, die die 3 Messwerte der Sensoren in den Variablen tischgewicht_1 bis 3 speichert. Danach wird das Objekt auf den Tisch gelegt und die 3 Messwerte
werden ständig von den Sensoren abgefragt. Dabei wird das Tischgewicht vom jeweiligen Messwert subtrahiert. Die Messwerte werden dann als 3-dimensionaler Vektor
auf dem seriellen Monitor ausgegeben.

int sensor_1;
int sensor_2;
int sensor_3;
int tischgewicht_1 = 0;
int tischgewicht_2 = 0;
int tischgewicht_3 = 0;
int buttonPin = 12;
boolean buttonPress;

void setup() {
  pinMode(buttonPin, INPUT_PULLUP);
  Serial.begin(9600);
}

void loop() {
  buttonPress = digitalRead(buttonPin);
  if(buttonPress == 0) {
	tischgewicht();
  }
  sensor_1 = analogRead(A0) - tischgewicht_1;
  sensor_2 = analogRead(A1) - tischgewicht_2;
  sensor_3 = analogRead(A2) - tischgewicht_3;
  Serial.print("(");
  Serial.print(sensor_1);
  Serial.print("|");
  Serial.print(sensor_2);
  Serial.print("|");
  Serial.print(sensor_3);
  Serial.println(")");
}

void tischgewicht () {
  tischgewicht_1 = analogRead(A0);
  tischgewicht_2 = analogRead(A1);
  tischgewicht_3 = analogRead(A2); 
}


Eigengewicht des Tischs
Vor dem Drücken des Buttons wird das Eigengewicht des Tischs ausgegeben (die ungleichmäßige Verteilung, vor allem bei Sensor 1, kann daran liegen dass das
Tischbein nicht perfekt mittig auf dem Sensor steht oder der Sensor weniger gut funktioniert als die anderen beiden).


Nach Drücken des Buttons
Nach dem Drücken des Buttons wird das Eigengewicht des Tischs von den Messwerten abgezogen (das Testobjekt befindet sich noch nicht auf dem Tisch)


Testobjekt befindet sich in der Mitte des Tischs
Das Testobjekt befindet sich in der Mitte des Tisch (zum Testen wurde eine volle 1,5L Flasche verwendet, also eine Masse von ca 1,5kg)


Testobjekt befindet sich über Tischbein 1
Das Testobjekt befindet sich über Tischbein 1
Diese Seite wurde noch nicht kommentiert.
Valid XHTML   |   Valid CSS:   |   Powered by WikkaWiki