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
Lauflicht zwei Richtungen mit 2 Tastern
10.12.2014, 17:04
Beitrag #9
RE: Lauflicht zwei Richtungen mit 2 Tastern
Hi,
das sieht doch schonmal ganz gut aus. ...wobei ich eine halbe Sekunde zum Entprellen für etwas übertrieben halte.
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
13.12.2014, 13:16 (Dieser Beitrag wurde zuletzt bearbeitet: 13.12.2014 15:31 von Hansl.)
Beitrag #10
RE: Lauflicht zwei Richtungen mit 2 Tastern
Hallo Ihr fleißigen Helferlein,


ich grübele gerade über die Vorgehensweise die Laufrichtung abzufragen.

Mein Erster Gedanke war:

- im "if (lesen links...) Block nach dem "zeit = millis();" einzufügen:

PHP-Code:
digitalWrite(LEDlinkszustand);
delay(3000// Verzögerung bis zur nächsten LED
digitalWrite(LEDmittezustand);
delay(3000// Verzögerung bis zur nächsten LED
digitalWrite(LEDrechtszustand); 

bei der "if (lesen rechts) natürlich umgekehrt

Das funktioniert aber überhaupt nicht. Was gibt es für Möglichkeiten?
Eine die mir einfällt - ich aber nicht weiß ob es so eine Funktion gibt:
Wenn (Bedingung = wahr) springe zu Programmzeile XY --- (Bedingung = falsch) --> nächste Wenn Abfrage

wenn links gedrückt springe Zeile 117, wenn links nicht gedrückt ---> wenn rechts gedrückt springe Zeile 137, wenn rechts nicht gedrückt springe Zeile 1


Gleich vorweg ein großes Dankeschön


edit:
habe die goto-Funktion entdeckt - funktioniert leider nicht.

PHP-Code:
int LEDlinks 8//LED an Pin 8
int LEDmitte 10;
int LEDrechts 12;

int tasterlinks 4;  //Taster an Pin 2
int tasterrechts 2;  //Taster B an Pin 3

int zustand LOW;      //aktueller LED-Zustand,
int lesenlinks;      //aktueller zustand Taster links
int lesenrechts;    //aktueller Zusatnd Taster rechts
int vorherlinks HIGH;    //letzter Taster-Zustand links
int vorherrechts HIGH;  //letzter Taster-Zustand rechts

int anfanglinks;
int anfangrechts;

int zeit 0;
int prellen 250;

int laufzeit 2500;

void setup()
{
  
pinMode(tasterrechtsINPUT_PULLUP);  //Taster mit PULLUP
  
pinMode(tasterlinksINPUT_PULLUP);  //Taster mit PULLUP
  
  
pinMode(LEDlinksOUTPUT);         //PIN 10 = LED
  
pinMode(LEDmitteOUTPUT);         //PIN 11 = LED
  
pinMode(LEDrechtsOUTPUT);        //PIN 12 = LED
  
}
void loop()
{
  
lesenlinks digitalRead(tasterlinks);    //Taster einlesen
  
lesenrechts digitalRead(tasterrechts);

  if (
lesenlinks==HIGH && vorherlinks==LOW && millis()-zeit prellen)
  {
    if (
zustand==HIGH)      
      
zustand=LOW;
    else
      
zustand=HIGH;

    
zeit millis();      
    
    goto 
anfanglinks;
  }

  if (
lesenrechts==HIGH && vorherrechts==LOW && millis()-zeit prellen)
  {
    if (
zustand==HIGH)
      
zustand=LOW;
    else
      
zustand=HIGH;

    
zeit millis();  
    
    goto 
anfangrechts;

  }
 


anfanglinks:

digitalWrite(LEDlinkszustand);
delay(laufzeit);
digitalWrite(LEDmittezustand);
delay(laufzeit);
digitalWrite(LEDrechtszustand);
delay(laufzeit);

vorherlinks lesenlinks;    
  
vorherrechts lesenrechts;
  
  
anfangrechts:

digitalWrite(LEDrechtszustand);
delay(laufzeit);
digitalWrite(LEDmittezustand);
delay(laufzeit);
digitalWrite(LEDlinkszustand);
delay(laufzeit);

vorherlinks lesenlinks;    
  
vorherrechts lesenrechts;



Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
13.12.2014, 13:22
Beitrag #11
RE: Lauflicht zwei Richtungen mit 2 Tastern
Hi,
zu irgendwelchen Zeilen zu springen geht theoretisch, ist aber nie eine gute Idee. Deshalb werde ich nicht anfangen zu erklären, wie das geht.
Deine Idee sieht erstmal gar nicht schlecht aus, nur dass Du dann in den ersten 6 Sekunden nicht ausschalten kannst. Zeig uns mal das komplette Coding, dann könnte man mehr sagen.
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
13.12.2014, 15:28
Beitrag #12
RE: Lauflicht zwei Richtungen mit 2 Tastern
Hallo Thorsten,

ich denke unsere Antworten haben sich zeitlich überschnitten. Habe das komplette Programm eingefügt.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
13.12.2014, 15:38
Beitrag #13
RE: Lauflicht zwei Richtungen mit 2 Tastern
Hi,
ich werde Dir bestimmt nicht sagen, wie das mit dem goto richtig geht. Nur so viel: Das Ding springt da hin, aber es wird immer noch auch das ausgeführt, was danach steht. Verschiebe das ganze Coding, was bei den Sprungmarken steht einfach mal dahin, wo momentan das jeweilige goto steht.
Wenn es dann nicht funktioniert, dann sag' uns was das Ding macht und was daran falsch ist.
...außerdem bitte wieder das Coding.
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
13.12.2014, 15:47 (Dieser Beitrag wurde zuletzt bearbeitet: 13.12.2014 15:50 von Hansl.)
Beitrag #14
RE: Lauflicht zwei Richtungen mit 2 Tastern
Ich hoffe das ich Dich richtig verstanden habe:

Das Du mir das GoTo nicht erklären willst - bestätigt mich in meinem Eindruck, dass es mindestens eine andere Möglichkeit gibt das Ganze zu lösen Smile

PHP-Code:
//3 Led mit Laufrichtung je nach Tasterdruck

int LEDlinks 8//LED an Pin 8
int LEDmitte 10;
int LEDrechts 12;

int tasterlinks 4;  //Taster an Pin 2
int tasterrechts 2;  //Taster B an Pin 3

int zustand LOW;      //aktueller LED-Zustand,
int lesenlinks;      //aktueller zustand Taster links
int lesenrechts;    //aktueller Zusatnd Taster rechts
int vorherlinks HIGH;    //letzter Taster-Zustand links
int vorherrechts HIGH;  //letzter Taster-Zustand rechts

int anfanglinks;
int anfangrechts;

int zeit 0;
int prellen 250;

int laufzeit 2500;

void setup()
{
  
pinMode(tasterrechtsINPUT_PULLUP);  //Taster mit PULLUP
  
pinMode(tasterlinksINPUT_PULLUP);  //Taster mit PULLUP

    
pinMode(LEDlinksOUTPUT);         //PIN 10 = LED
  
pinMode(LEDmitteOUTPUT);         //PIN 11 = LED
  
pinMode(LEDrechtsOUTPUT);        //PIN 12 = LED

}
void loop()
{
  
lesenlinks digitalRead(tasterlinks);    //Taster einlesen
  
lesenrechts digitalRead(tasterrechts);

  if (
lesenlinks==HIGH && vorherlinks==LOW && millis()-zeit prellen)
  {
    if (
zustand==HIGH)      
      
zustand=LOW;
    else
      
zustand=HIGH;

    
zeit millis();      

    
digitalWrite(LEDlinkszustand);
    
delay(laufzeit);
    
digitalWrite(LEDmittezustand);
    
delay(laufzeit);
    
digitalWrite(LEDrechtszustand);
    
delay(laufzeit);

    
vorherlinks lesenlinks;    
    
vorherrechts lesenrechts;

  }

  if (
lesenrechts==HIGH && vorherrechts==LOW && millis()-zeit prellen)
  {
    if (
zustand==HIGH)
      
zustand=LOW;
    else
      
zustand=HIGH;

    
zeit millis();  

    
digitalWrite(LEDrechtszustand);
    
delay(laufzeit);
    
digitalWrite(LEDmittezustand);
    
delay(laufzeit);
    
digitalWrite(LEDlinkszustand);
    
delay(laufzeit);

    
vorherlinks lesenlinks;    
    
vorherrechts lesenrechts;

  }
}

//Ende 

Das DING macht gar nichts.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
13.12.2014, 15:52
Beitrag #15
RE: Lauflicht zwei Richtungen mit 2 Tastern
Hi,
erstens vermute ich mal, dass Du einen Compilerfehler hast, da Du einmal "zustan" ohne d geschrieben hast.
Außerdem muss das
Code:
vorherlinks = lesenlinks;    
    vorherrechts = lesenrechts;
...außerhalb der ifs stehen, da ja die vorher-Felder sonst nie LOW werden und die ifs nie "wahr" werden können.
P.S.: Du hast das so schnell geschrieben, dass Du Dir garantiert selbst keine Gedanken gemacht hast. Das solltest Du aber tun.
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
13.12.2014, 16:17
Beitrag #16
RE: Lauflicht zwei Richtungen mit 2 Tastern
Aktueller Stand:
Der linke Taster funktioniert --> Laufrichtung der LED passt auch
der rechte Taster hat dagegen Null-Funktion

Was habe ich so schnell geschrieben?
Das d von zustan - habe ich während deiner Antwort geändert - hatte den Code eingefügt ohne ihn vorher zu kompilieren.




PHP-Code:
//3 Led mit Laufrichtung je nach Tasterdruck

int LEDlinks 8//LED an Pin 8
int LEDmitte 10;
int LEDrechts 12;

int tasterlinks 4;  //Taster links an Pin 4
int tasterrechts 2;  //Taster rechts an Pin 2

int zustand LOW;      //aktueller LED-Zustand,
int lesenlinks;      //aktueller zustand Taster links
int lesenrechts;    //aktueller Zusatnd Taster rechts
int vorherlinks HIGH;    //letzter Taster-Zustand links
int vorherrechts HIGH;  //letzter Taster-Zustand rechts

int anfanglinks;
int anfangrechts;

int zeit 0;
int prellen 25;

int laufzeit 1000;

void setup()
{
  
pinMode(tasterrechtsINPUT_PULLUP);  //Taster mit PULLUP
  
pinMode(tasterlinksINPUT_PULLUP);  //Taster mit PULLUP

    
pinMode(LEDlinksOUTPUT);         //PIN 10 = LED
  
pinMode(LEDmitteOUTPUT);         //PIN 11 = LED
  
pinMode(LEDrechtsOUTPUT);        //PIN 12 = LED

}
void loop()
{
  
lesenlinks digitalRead(tasterlinks);    //Taster einlesen
  
lesenrechts digitalRead(tasterrechts);

  if (
lesenlinks==HIGH && vorherlinks==LOW && millis()-zeit prellen)
  {
    if (
zustand==HIGH)
      
zustand=LOW;
    else
      
zustand=HIGH;

    
zeit millis();

    
digitalWrite(LEDlinkszustand);
    
delay(laufzeit);
    
digitalWrite(LEDmittezustand);
    
delay(laufzeit);
    
digitalWrite(LEDrechtszustand);
    
delay(laufzeit);



  }

   
vorherlinks lesenlinks;
    
vorherrechts lesenrechts;

  if (
lesenrechts==HIGH && vorherrechts==LOW && millis()-zeit prellen)
  {
    if (
zustand==HIGH)
      
zustand=LOW;
    else
      
zustand=HIGH;

    
zeit millis();

    
digitalWrite(LEDrechtszustand);
    
delay(laufzeit);
    
digitalWrite(LEDmittezustand);
    
delay(laufzeit);
    
digitalWrite(LEDlinkszustand);
    
delay(laufzeit);



  }

  
vorherlinks lesenlinks;
    
vorherrechts lesenrechts;

}

// ENDE 
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Zwei ident Feuchtesensoren an Arduino Uno R4 Karli 5 350 24.07.2016 23:36
Letzter Beitrag: SkobyMobil
  DC Motor in beide Richtungen steuern WIMunios 5 639 24.03.2016 12:04
Letzter Beitrag: Bitklopfer
Bug Mit zwei Ultraschallsensoren die Drehbewegung eines Servos steuern Poet 5 557 21.02.2016 18:37
Letzter Beitrag: Carlo
  Webserver erzeugt zwei Durchläufe. favicon.ico?!? WOHER??? BERND87 6 1.572 04.02.2016 13:56
Letzter Beitrag: Pit
  Zahlenformat bei Kommunikation mit zwei Arduinos Matthias_Arduino 5 631 07.01.2016 22:40
Letzter Beitrag: Bitklopfer
  Mit dem Pin 8 und 9 vom Yun werden zwei LED wechselseitig blinken über http arduinofan 1 549 08.12.2015 15:03
Letzter Beitrag: arduinofan
  I2P mit zwei Microcontroller diode1990 2 549 26.10.2015 20:07
Letzter Beitrag: Bitklopfer
  Serielle Kommunikation zw. zwei Arduino UNOs Marduino_UNO 2 1.101 20.08.2015 07:13
Letzter Beitrag: Marduino_UNO
  Zwei Programme gleichzeitig Lindi01 9 2.018 27.07.2015 23:27
Letzter Beitrag: hotsystems
  Taster für zwei Funktionen nutzen - wie macht man das? Gelegenheitsbastler 2 944 22.07.2015 11:56
Letzter Beitrag: Scherheinz

Gehe zu:


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