Hallo,
Ich bin hier neu. Ich bin eigentlich Landmaschienentechniker und kein Programmierer oder Elektroniker. Ich tüftle gerne und mir ist auch keine Herausforderung zu Groß. Ich will für unseren Obsrpantaschentraktor ein zusätzliches hydraulisches Steuerventil nachrüsten, weil ich zusätzliche Funktionen benötige. Da der Platz sehr begrenzt ist und ich keinen Platz für einen Kreuzhebel mit Seilzügen habe, bin ich auf die Idee gekommen ich könnte das Steuerventil mit einem 2 Achsen Joystik und einen Taster oben drauf und einem Arduino UNO mit den beiden Servomotoren Ansteuern. Ich verwende hierfür 2 Servomotoren mit 80 kg. Servoposition 45 Grad ist zum Beispiel Hydraulikzylinder ausfahren. 90 Grad ist Nullposition, 135 Grad ist Hydraulikzylinder einfahren. Ein Servomotor muss auch noch auf 170 Grad schwenken. für die Schwimmstellung in der 4. Position. Soweit funktioniert es auch, bis auf dass Umschalten von der Bewegungsfunktion auf die fest Position über den Taster, es manchmal funktioniert und dann auch wieder nicht. Ich muss dann öfter drücken, dann geht es wieder einmal usw. Den sketch habe ich zum Teil, aus dem Internet, Youtupe, selber. Ich kann leider kein Hydraulikventil mit Magnetventile verwenden, da diese nur eine ein aus Schaltung haben und ich somit keine feinfühlige Steuerung habe, die ich aber brauche. Ein hydraulisches Ventil mit Proportionalsteuerung inkl. allem was ich brauche kommt auf 3500 Euro, was meinen Rahmen komplett sprengt. es währe auch noch praktisch wenn man den Joystik etwas in eine Richtung bewegen müsste bis die Servomotoren beginnen zu arbeiten, da ich vermute das in der Obstplantasche durch Erschütterungen des Joystiks es zu einem ungewolten Ansteuern der Servos kommt. Ich habe leider in meinem Bekannten und Freundeskreis niemanden der sich damit aus kennt. Daher bitte ich hir um Hilfe.
#include <Servo.h>
Servo myservo;
int val;
int Tasterpin = 7;
int Tasterzustand = 0;
int Tasterzaeler = 0;
int letzterTasterzustand = 0;
const int myservo1Position = A1;
int LED = LED_BUILTIN;
const int myservo1pin = 5;
Servo myservo1;
int angle = 0;
bool isManual = false;
void setup()
{
// put your setup code here, to run once:
myservo.attach(10);
myservo1.attach(5);
Serial.begin(9600);
pinMode(Tasterpin, INPUT_PULLUP);
myservo1.write(90);
pinMode(LED_BUILTIN, OUTPUT);
}
void loop()
{
{
Tasterzustand = digitalRead(Tasterpin);
if(Tasterzustand != letzterTasterzustand)
{
if(Tasterzustand == 1)
{
Tasterzaeler++;
}
else
{digitalWrite(LED, LOW);
}
if (Tasterzaeler % 2 == 0)
{
{
digitalWrite(LED, HIGH);
}
Tasterzaeler = 0;
}
else
digitalWrite(LED, LOW);
}
letzterTasterzustand = Tasterzustand;
delay(5);}
{Tasterzustand = digitalRead(Tasterpin);
if(Tasterzustand != letzterTasterzustand){
if(Tasterzustand == HIGH){
isManual =! isManual;
if(!isManual){
myservo1.write(170);
}
}
delay(5);
}
letzterTasterzustand = Tasterzustand;
if(isManual){
val = analogRead(1);
val = map(val, 0, 1023, 45, 135);
myservo1.write(val);
}
}
{
// put your main code here, to run repeatedly:
val = analogRead(5);
val = map(val, 0, 1023, 45, 135);
myservo.write(val);
delay(5);
Serial.println(isManual);}
} Verwende dieses Symbol um Code zu posten