Messverstärker Drehmomentmesswelle?

Liebe Community, hier etwas für Elektroniker und Bastler:

Es geht um eine Drehmomentmesswelle für die Messung von Drehmomenten bis 2000Nm. Die Versorgungsspannung beträgt 12VDC. Beim Messignal handelt es sich um einen Spannungsausgang von 0 bis +/- 10V, je nachdem, ob das Drehmoment gegen den Uhrzeigersinn oder im Uhrzeigersinn anliegt.

Folgendes Problem: Die Steuerung, mit der das Messignal ausgewertet werden soll, ist nur in der Lage positive Spannungen gegen GND zu messen. D.h. also, ich könnte nur Drehmomente in die eine Richtung auswerten. Die Sache ist nun, dass der Messverstärker der Messwelle einen vom Versorungs-GND galvanisch getrennten Messignal-GND besitzt, auf den sich die +/- 10V beziehen.

Die Frage ist nun, ob ich diesen Mess-GND einfach um +10V anheben könnte (separates Netzteil oder +12V vom Versorgungsnetzteil), sodass ich praktisch Ausgangssignale von 0V (Vollausschlag in Linksrichtung), 10V (kein Moment) und 20V (Vollausschlag in Rechtsrichtung) erhalte.

Wäre das möglich oder eher nicht oder könnte es gar eine Zerstörung zur Folge haben? es handelt sich bei dem Messverstärker ja praktisch um eine von der Versorgung unabhängige Spannungsquelle...

Wenn jemand Erfahrung in der Messtechnik hat wäre das super, vielen Dank!

Computer, Studium, Schule, Elektronik, Strom, Elektrik, Elektrotechnik, Spannung, Arduino, Elektriker, Elektrizität, Maschinenbau, Physik, Schaltung, Widerstand
Mein Arduino Programm für einen Tresor funktioniert nicht?

Ich muss für die Schule einen Tresor mit einem 3x4Keypad , einem Servo und einem Lcd Display programmieren. Dafür habe ich einen Arduino UNO. Das Programm funktioniert aber nicht so wie ich es will.

Wenn ich eine Taste drücke, die nicht # oder * ist soll sie auf dem Display angezeigt werden und auf der Variable inputPasswort gespeichert werden. Diese sollen aber nicht immer in der ersten Spalte stehen, sondern sollen nebeneinander in einer Zeile angezeigt werden. Wenn ich # drücke soll der Arduino prüfen ob das eingegebene Passwort richtig ist. Wenn das der Fall ist, soll sich der Servo öffnen und das Display "Passwort richtig" anzeigen. Wenn nicht soll der Servo geschlossen bleiben und das Display soll "Passwort falsch" anzeigen. Wenn * gedrückt wird soll das Programm alle bisher eingegebenen Zahlen von der Variable inputPasswort löschen.

Das Display zeigt die Zahlen aber nur kurz und immer an verschiedenen Stellen an. Der Arduino erkennt auch nicht wenn das Passwort richtig ist. Kann mir bitte jemand helfen?

So sieht mein Programm bisher aus:

#include <LiquidCrystal_I2C.h>
#include <Wire.h>
#include <Servo.h>
#include <Keypad.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
int cursorPosition = 0; // Variable für die Position des Cursors
Servo IHateThis;    // Servo heißt jetzt "IHateThis"
const int ROW_NUM = 4;  // Anzahl der Tastenfeld Reihen
const int COLUMN_NUM = 3; // Anzahl der Tastenfeld Zeilen
byte pin_rows[ROW_NUM] = { 9, 8, 7, 6 };  //die Pins für die Reihen des Tastenfelds
byte pin_column[COLUMN_NUM] = { 5, 4, 3 }; //die Pins für die Zeilen des Tastenfelds
char keys[ROW_NUM][COLUMN_NUM] = {
 { '1', '2', '3' },
 { '4', '5', '6' },
 { '7', '8', '9' },
 { '*', '0', '#' }
};
Keypad keypad = Keypad(makeKeymap(keys), pin_rows, pin_column, ROW_NUM, COLUMN_NUM);
char Passwort[5] = { '0', '1', '2', '3', '#' }; //Array mit Länge des Passworts (4 + #) und dem Passwort selbst (0123)
String inputPasswort;  // Variable um die eingegebenen Tasten abzuspeichern
void setup() {
 inputPasswort.reserve(4); 
 lcd.init();
 lcd.clear();
 lcd.backlight(); //Das Display soll beleuchtet sein
 IHateThis.attach(12);  //Servo ist an Pin 12 angeschlossen
 IHateThis.write(140);  //Servo ist anfangs in der Position 140 (Tresor ist zu)
}
void loop() {
 char Taste = keypad.getKey();    //Variable "Taste" ist hier definiert
 if (Taste != '*' && Taste != '#') { 
  lcd.setCursor(cursorPosition, 0); // Cursor position at position 0 of the first row of the LCD.
  lcd.print(Taste);         //Wenn eine Taste außer * und # gedrückt wird, wird diese auf dem Display angezeigt
  cursorPosition = cursorPosition + 1;
 }
 if (Taste == '#') { //Nachdem # gedrückt wurde, wird überprüft ob das eingegebene Passwort dem tatsächlichen Passwort entspricht
  if (inputPasswort == Passwort) {   //Wenn das eingegebene Passwort dem tatsächlichen Passwort entspricht, wird für 3 Sekunden "Passwort richtig" angezeigt. Danach wird der inhalt der Variable inputPasswort gelöscht, der Servo geöffnet, die Variable cursorPosition auf 0 zurückgesetzt und das Display geleert.
   lcd.setCursor(0, 0);
   lcd.print("Passwort richtig");
   delay(3000);
   inputPasswort = "";
   lcd.clear();
   cursorPosition = 0;
   lcd.setCursor(cursorPosition, 0);
   IHateThis.write(30);
  }
  if (inputPasswort != Passwort) {     //Wenn das eingegebene Passwort nicht dem eingegebenen Passwort entspricht, wird "Passwort falsch" für 3 Sekunden angezeigt, und danach die reset schleife ausgeführt
   lcd.clear();
   lcd.setCursor(0, 0);
   lcd.print("Passwort falsch");
   delay(3000);
   reset();
  }
 }
 if (Taste == '*') { //Wenn * gedrückt wird, wird die reset Schleife ausgeführt
  reset();
 }
}
void reset() {      
 inputPasswort = "";   //Alles was auf der Variable inputPasswort gespeichert war, wird gelöscht
 lcd.clear();       //Display wird geleert
 cursorPosition = 0;   //Die Variable cursorPosition wird auf 0 gesetzt
 IHateThis.write(140);  //Der Servo wird geschlossen
}
Arduino, Code, Arduino Uno
Mehrer micro Servos an Arduino anschließen?

Hallo, ich habe momentan ein Projekt am Laufen und stoße auf mehrere Probleme. Mein Ziel ist es, 3 Servos an ein Arduino anzuschließen und einen um 180 Grad drehen, wenn ein Button gedrückt wurde, den anderen mit einer Fotodiode und den letzten mittels eines Reedsensors. Ich habe den Schaltkreis schon erstellt, jedoch nur für 2 Servos. Online stoße ich immer wieder darauf, dass man mehrere Servos nicht direkt über die Stromversorgung des Arduino versorgen sollte. Ich habe nun ein online-Video gefunden, wobei die Person im Video die Servos mittels einer 9-V-Batterie betreibt. Wenn ich diesen Schaltkreis jedoch in Tinker CAD simuliere, wird mir angezeigt, dass die Spannung zu groß für die Servos sei. Wie kann ich nun, ohne dass die Servos oder der Arduino kapput gehen, 3 Servos über einen Arduino Uno 3 steuern?

Vielen Dank im Vorab für jede Antwort.

Code :

#include <Servo.h>

Servo servo1;

Servo servo2;

int pos = 0;

int sensorWert = 0;

int onTime = 200;

int offTime = 200;

int eingang = A0;

int buttonPin = 2;

int servoPin1 = 9;

int servoPin2 = 10;

void setup()

{

  Serial.begin(9600);

  servo1.attach(servoPin1);

  servo2.attach(servoPin2);

  pinMode(buttonPin, INPUT_PULLUP);

}

void loop()

{

  sensorWert = analogRead(eingang);

Serial.print("Sensorwert = " ); 

  Serial.println(sensorWert);

  int buttonState = digitalRead(buttonPin);

  

  if (buttonState == LOW) 

  {

    servo2.write(180);

  }

  delay(15);

    

  if (sensorWert > 100)

  {

    servo1.write(180);

  }

}

Bild zu Frage
Elektrik, Arduino, Schaltung, Servomotor

Meistgelesene Fragen zum Thema Arduino