INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Selbsthaltung für Taster - Bitte um Hilfe!
21.07.2015, 09:10
Beitrag #1
Selbsthaltung für Taster - Bitte um Hilfe!
Hallo Leute!

Ich versuche seit einiger Zeit vergeblich eine Selbsthaltung für meine Motorsteuerung zu programmieren.

Ich habe zwei 12V DC Motoren die jeweils vor- und rückwärts drehen, diese werden über eine H-Brücke (Infineon BTN8982TA) gesteuert.
Nun habe ich für das vor- und rückwärtsfahren einen Joystick welcher zuerst den Interrupt auslöst und anschließend einlesen soll, welcher der zwei Taster betätigt wird. Hier kommt nun mein Problem: ich brauche für diese zwei Taster eine Selbsthaltung, die so lange besteht, bis die andere Richtung (also der andere Taster) aktiviert wird.

Bin für jegliche Hilfestellung sehr dankbar!!! Habe schon einiges ausprobiert, aber bisher hat nichts funktioniert, langsam kommt die Verzweiflung!Confused
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
21.07.2015, 09:35
Beitrag #2
RE: Selbsthaltung für Taster - Bitte um Hilfe!
(21.07.2015 09:10)Shadowier schrieb:  ich brauche für diese zwei Taster eine Selbsthaltung, die so lange besteht, bis die andere Richtung (also der andere Taster) aktiviert wird.
Das klingt doch erstmal ganz einfach: Mach Dir zwei Variablen, eine für jede Richtung. Wenn eine Richtung betätigt wird, dann wird die entsprechende Variable auf TRUE oder HIGH gesetzt. Wenn die andere Richtung betätigt wird, dann auf FALSE oder LOW. Was auch immer Du momentan mit den Tastern machst, machst Du dann mit den beiden Variablen.

Falls ich mit einer Antwort helfen konnte, wuerde ich mich freuen, ein paar Fotos oder auch ein kleines Filmchen des zugehoerigen Projekts zu sehen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
21.07.2015, 09:42
Beitrag #3
RE: Selbsthaltung für Taster - Bitte um Hilfe!
kA ob ich den Code anders auch reinstellen kann, hab mich gerade erst angemeldet ^^ und habe jetzt nur den Teil fürs vorwärtsfahren eingestellt (rückwärts ist ja eh fast dasselbe). Als ich den Joystick mit zwei Drucktastern simuliert habe, hat das noch so funktioniert. Joystick gibt High-Pegel aus, hab ich schon nachgeprüft. Gibt hoffentlich mehr Aufschluss! Bedanke mich schonmal fürs Kopfzerbrechen.

byte HS = LOW;
volatile byte S1_VOR = LOW;
volatile byte S1_RUCK = LOW;
byte Scheinwerfer = LOW;
byte Ruecklicht = LOW;
byte Polizeilicht = LOW;
byte max_Geschwindigkeit = 255;
byte ruck_Geschwindigkeit = 175;
byte mom_Geschwindigkeit;
byte Geschwindigkeit = 0;
byte Beschleunigung = 200;
volatile byte buttonlast = 0;
volatile byte buttoncounter = 1;
volatile byte buttonlast2 = 0;
volatile byte buttoncounter2 = 0;
byte Gas = LOW;
volatile byte VOR = LOW;
volatile byte RUCK = LOW;


void setup() {
//Pinsetup-blabla

attachInterrupt(5, Richtung, CHANGE);
}

void loop() {
HS = digitalRead(HS_IN);
if(HS == HIGH){
digitalWrite(Scheinwerfer_OUT, HIGH);
digitalWrite(Ruecklicht_OUT, 127);

Vor();

Zurueck();

Polizeilicht = digitalRead(S2_IN);
if(Polizeilicht == HIGH){
digitalWrite(Polizeilicht_OUT, HIGH);
}else{
digitalWrite(Polizeilicht_OUT,LOW);
}
}else{
digitalWrite(Scheinwerfer_OUT, LOW);
digitalWrite(Ruecklicht_OUT, LOW);
digitalWrite(Polizeilicht_OUT, LOW);
digitalWrite(M1_RUCK, LOW);
digitalWrite(M2_RUCK, LOW);
digitalWrite(M1_VOR, LOW);
digitalWrite(M2_VOR, LOW);
digitalWrite(LED_VOR_OUT, LOW);
digitalWrite(LED_RUCK_OUT, LOW);

}

}

void Vor(){

if(VOR == HIGH){
buttoncounter2 = 0;
digitalWrite(LED_VOR_OUT, HIGH);

Gas = digitalRead(Gas_IN);
if(Gas == HIGH){

digitalWrite(M1_RUCK, LOW);
digitalWrite(M2_RUCK, LOW);
digitalWrite(M1_VOR, HIGH);
digitalWrite(M2_VOR, HIGH);
for(int i = 0; i < max_Geschwindigkeit; i++){
Geschwindigkeit = i;
mom_Geschwindigkeit = Geschwindigkeit;
analogWrite(PWM_M1_VOR, Geschwindigkeit);
analogWrite(PWM_M2_VOR, Geschwindigkeit);
delay(Beschleunigung);
}
analogWrite(PWM_M1_VOR, max_Geschwindigkeit);
analogWrite(PWM_M2_VOR, max_Geschwindigkeit);
mom_Geschwindigkeit = max_Geschwindigkeit;
}else{
digitalWrite(M1_VOR, LOW);
digitalWrite(M2_VOR, LOW);
digitalWrite(M1_RUCK, LOW);
digitalWrite(M2_RUCK, LOW);

}
}else{
digitalWrite(LED_VOR_OUT, LOW);
}
}

void Richtung(){
S1_VOR = digitalRead(S1_VOR_IN);
if(S1_VOR != buttonlast){
if(S1_VOR == HIGH){
buttoncounter++;
}buttonlast = S1_VOR;
}if(buttoncounter % 2 == 1){
VOR = HIGH;
}

S1_RUCK = digitalRead(S1_RUCK_IN);
if(S1_RUCK != buttonlast2){
if(S1_RUCK == HIGH){
buttoncounter2++;
}buttonlast2 = S1_RUCK;
}if(buttoncounter2 % 2 ==1){
RUCK = HIGH;
}
}
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
21.07.2015, 09:54
Beitrag #4
RE: Selbsthaltung für Taster - Bitte um Hilfe!
Hi,
verwende code-Tags um Dein Coding herum, also [ c o d e ] hier kommt das Coding hin [ \ c o d e ], nur ohne Blanks.
Ansonsten: Schmeiß mal alles raus, was nicht direkt zum Vor- und Zurückfahren gehört. Ansonsten ist es zu viel Aufwand, sich da durchzuarbeiten.
Vielleicht hilft es schon, in Richtung da wo Du VOR auf HIGH setzt auch RUCK auf LOW zu setzen, dasselbe auch andersrum.
Gruß,
Thorsten

Falls ich mit einer Antwort helfen konnte, wuerde ich mich freuen, ein paar Fotos oder auch ein kleines Filmchen des zugehoerigen Projekts zu sehen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
21.07.2015, 10:01
Beitrag #5
RE: Selbsthaltung für Taster - Bitte um Hilfe!
Code:
void Vor(){

if(VOR == HIGH){
buttoncounter2 = 0;
digitalWrite(LED_VOR_OUT, HIGH);

Gas = digitalRead(Gas_IN);
if(Gas == HIGH){

digitalWrite(M1_RUCK, LOW);
digitalWrite(M2_RUCK, LOW);
digitalWrite(M1_VOR, HIGH);
digitalWrite(M2_VOR, HIGH);
for(int i = 0; i < max_Geschwindigkeit; i++){
Geschwindigkeit = i;
mom_Geschwindigkeit = Geschwindigkeit;
analogWrite(PWM_M1_VOR, Geschwindigkeit);
analogWrite(PWM_M2_VOR, Geschwindigkeit);
delay(Beschleunigung);
}
analogWrite(PWM_M1_VOR, max_Geschwindigkeit);
analogWrite(PWM_M2_VOR, max_Geschwindigkeit);
mom_Geschwindigkeit = max_Geschwindigkeit;
}else{
digitalWrite(M1_VOR, LOW);
digitalWrite(M2_VOR, LOW);
digitalWrite(M1_RUCK, LOW);
digitalWrite(M2_RUCK, LOW);

}
}else{
digitalWrite(LED_VOR_OUT, LOW);
}
}

void Richtung(){
S1_VOR = digitalRead(S1_VOR_IN);
if(S1_VOR != buttonlast){
if(S1_VOR == HIGH){
buttoncounter++;
}buttonlast = S1_VOR;
}if(buttoncounter % 2 == 1){
VOR = HIGH;
RUCK = LOW;
}

S1_RUCK = digitalRead(S1_RUCK_IN);
if(S1_RUCK != buttonlast2){
if(S1_RUCK == HIGH){
buttoncounter2++;
}buttonlast2 = S1_RUCK;
}if(buttoncounter2 % 2 ==1){
RUCK = HIGH;
VOR = LOW;
}
}
Hey Thorsten, danke für den Tipp Smile

Leider hat das LOW setzen in Richtung nicht geholfen Sad
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
21.07.2015, 10:16
Beitrag #6
RE: Selbsthaltung für Taster - Bitte um Hilfe!
Hi,
kannst Du mal erklären, was es genau tun soll und was es genau tut? Tut es etwa gar nichts?
Z.B. sieht es so aus, als ob es erst nach jeweils zwei Klicks reagieren soll.
Außerdem: Was für ein Arduino ist das?
Könntest Du mal das ganze Coding für den einfach-Sketch einstellen?
Hast Du den einfach-Sketch tatsächlich mal auf den Arduino geladen und ausprobiert?
Gruß,
Thorsten

Falls ich mit einer Antwort helfen konnte, wuerde ich mich freuen, ein paar Fotos oder auch ein kleines Filmchen des zugehoerigen Projekts zu sehen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
21.07.2015, 10:39 (Dieser Beitrag wurde zuletzt bearbeitet: 21.07.2015 10:40 von Shadowier.)
Beitrag #7
RE: Selbsthaltung für Taster - Bitte um Hilfe!
Also, ich habe hier einen Arduino Mega, welcher in eine art SPS (Controllino) eingebaut ist und wird mit 12V versorgt. Das spannende an dieser ganzen Geschichte ist, dass es mit stinknormalen Buttons noch funktioniert hat und jetzt mit dem Joystick - der nichts anders tut wie die Buttons vorher (Signal durchlassen oder eben nicht) - nichtmehr. HuhHuhHuhUndecided

Ich möchte zwei Motoren (12V DC) vor- und rückwärts ansteuern.
Die Richtung wird über den Joystick ausgewählt ( nach oben oder nach unten drücken)
und wenn man dann das Gaspedal betätigt, sollen diese Motoren in die gewählte Richtung fahren.
Es wird in beide Richtungen der selbe Interrupt aufgerufen und der soll auslesen welcher der Taster kurz aktiviert wird.

Mit Buttons hat es das noch gemacht, mit Joystick sehe ich zwar an der "SPS", dass das Signal ankommt aber mehr passiert hier nichtmehr...
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
21.07.2015, 10:57
Beitrag #8
RE: Selbsthaltung für Taster - Bitte um Hilfe!
...auch nicht, wenn Du den Joystick jeweils zweimal nach oben bzw. unten drückst?

Falls ich mit einer Antwort helfen konnte, wuerde ich mich freuen, ein paar Fotos oder auch ein kleines Filmchen des zugehoerigen Projekts zu sehen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  mehrere Taster entprellen Kitt 15 526 24.10.2016 21:17
Letzter Beitrag: georg01
  Hilfe: IR Remote Steuerung, MSGEQ7 + RGB-LED Streifen dastob 1 123 14.10.2016 21:40
Letzter Beitrag: hotsystems
Sad Ich brauche Hilfe Prosac 4 237 09.10.2016 18:39
Letzter Beitrag: Prosac
  at24c256 Hilfe Gandalf 6 249 29.08.2016 18:59
Letzter Beitrag: MKc
Smile Progammier Neuling Codeschloss bittet um Hilfe Donalonso 2 287 27.08.2016 18:23
Letzter Beitrag: Binatone
  Hilfe gesucht. Webserver Statsiche und Dynamische HTMl Seite b3ta 11 454 22.08.2016 08:07
Letzter Beitrag: b3ta
  Taster für mehrere Funktionen matthias3579 5 353 16.08.2016 16:00
Letzter Beitrag: StephanBuerger
  Hilfe: Mega2560 - ENC 28J60 - MYSQL Gandalf 1 181 28.07.2016 16:30
Letzter Beitrag: Gandalf
  Steuern von 4 Servo mittels eines Taster und eines Potis Jackie09 17 758 16.07.2016 11:43
Letzter Beitrag: Binatone
  Selbstfahrender Roboter Programm änderung hilfe ? arekklone 11 550 06.07.2016 14:59
Letzter Beitrag: Binatone

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste