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
Smile Motorsteuerung mit Taster Eggi123 11 234 26.02.2017 15:48
Letzter Beitrag: MicroBahner
  Arduino-UNO LED über Taster digital zum leuchten zu bringen IvKriz 9 266 18.02.2017 08:33
Letzter Beitrag: renid55
  Hilfe bei Taster huber5093 11 216 14.02.2017 19:26
Letzter Beitrag: Tommy56
  8 Taster an einem Pin Kitt 9 394 04.02.2017 18:51
Letzter Beitrag: ardu_arne
  Led Impuls beim Taster betätigen clemens5555 11 395 17.01.2017 20:00
Letzter Beitrag: renid55
  Über drei Taster zwei externe Timer steuern Sidamo 23 556 09.01.2017 20:12
Letzter Beitrag: Tommy56
  Led mit taster ausschalten Frankeg 17 616 07.01.2017 21:17
Letzter Beitrag: renid55
  aufeinander Aufbauende Lichtaktion mit einem Taster Colby 9 429 17.12.2016 13:30
Letzter Beitrag: Colby
  mehrere Taster entprellen Kitt 15 871 24.10.2016 21:17
Letzter Beitrag: georg01
  Hilfe: IR Remote Steuerung, MSGEQ7 + RGB-LED Streifen dastob 1 232 14.10.2016 21:40
Letzter Beitrag: hotsystems

Gehe zu:


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