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
Analoger Eingang mit 3 verschiedenen Schaltvorgängen
05.06.2016, 22:22
Beitrag #33
RE: Analoger Eingang mit 3 verschiedenen Schaltvorgängen
(05.06.2016 21:04)Tueftler1971 schrieb:  Jetzt muss ich nur noch dieses irgendwie lösen, damit nicht jedes mal die "else" Anweisung bei Taste 1 und 2 durchläuft.

Da versteh ich nicht was du meinst.
Und wenn du einen Sketch postest, setze den bitte in Code-Tags.

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
06.06.2016, 14:17 (Dieser Beitrag wurde zuletzt bearbeitet: 06.06.2016 19:59 von Tueftler1971.)
Beitrag #34
RE: Analoger Eingang mit 3 verschiedenen Schaltvorgängen
Ich muss nur noch das mit der Taste 3 lösen, weil die "else" Anweisung von Taste 3 immer auch aufgerufen wird bei Taste 1 und Taste 2.
Zudem blinkt die LED3 trotzdem hin und wieder mal, obwohl der letzte Teil "hinzugefügt zum unterbinden von blinken der LED3" drinsteht.
Code:
int LED1 = 2;  // LED - Bereitschaft
int LED2 = 3;  // LED - Taste 3 gedrückt

//alle gegen Masse mit genannten Widerstand
int LED3 = 4; // Taste 1 mit 3.9kΩ - Up
int LED4 = 5; // Taste 2 mit 2.2kΩ - Down
int LED5 = 6; // Taste 3 ohne Widerstand - Enter

//Taste - Eingang Masse
int Signal = A1; //Signalleitung
int Signalstatus; //war 0
int VorherigerStatus;
int Taste1Status = 0;
int Taste2Status = 0;
int Taste3Status = 0;


void setup() {
  pinMode(LED1, OUTPUT);
  pinMode(LED2, OUTPUT);
  pinMode(LED3, OUTPUT);
  pinMode(LED4, OUTPUT);
  pinMode(LED5, OUTPUT);
}

void loop() {

  Signalstatus = analogRead (Signal);


// ######################## Taste 1 UP #############################################  
  if (Signalstatus >= 460 && Signalstatus <= 560 && Taste1Status == 0) { //Taste 1 mit R3.9kΩ auf Masse
    digitalWrite(LED3, HIGH); //LED3
    delay (1000);
    digitalWrite(LED3, LOW); //LED3
    Taste1Status = 1;
  }
  else {
    Taste1Status = 0;
  }
// #############################################################################


// ######################## Taste 2 DOWN ###########################################
  if (Signalstatus >= 600 && Signalstatus <= 700 && Taste2Status == 0) { //Taste 2 mit R2.2kΩ auf Masse
    digitalWrite(LED4, HIGH); //LED4
    delay (1000);
    digitalWrite(LED4, LOW); //LED4
    Taste2Status = 1;
  }
  else {
    Taste2Status = 0;
  }
// ############################################################################


// ######################## Taste 3 ENTER ##########################################
  if (Signalstatus >= 0 && Signalstatus <= 30) { //Taste 3 auf Masse
  }
  if (Signalstatus != VorherigerStatus)
  {
    if (Signalstatus == 0)
    {
      digitalWrite(LED1, LOW);
      delay (10);
      digitalWrite(LED2, HIGH);
      delay (10);
      digitalWrite(LED4, HIGH);
      delay (100);
      digitalWrite(LED4, LOW);
      delay (100);
      digitalWrite(LED5, HIGH);
    }
    else
    {
      digitalWrite(LED5, LOW);
      delay (100);
      digitalWrite(LED3, HIGH);
      delay (100);
      digitalWrite(LED3, LOW);
      delay (10);
      digitalWrite(LED2, LOW);
      digitalWrite(LED1, HIGH);
    }
  }
  VorherigerStatus = Signalstatus;
// ###############################################################



// ######### hinzugefügt zum unterbinden von blinken der LED3 ######################
  {
    digitalWrite(LED3, LOW);
  }
// ###############################################################
}
Ich danke Dir auf jeden Fall für deine Mühe, weiß ich zu schätzen

Edit: Codebereich formatiert
Gruß Arne


Habe es endlich hinbekommen.... Habe es so gelöst

Code:
// ######################## Taste 3 ENTER ##########################################
  if (Signalstatus >= 0 && Signalstatus <= 30) { //Taste 3 auf Masse
  }
  if (Signalstatus != VorherigerStatus)
  {
    if (Signalstatus == 0)
    {
      digitalWrite(LED1, LOW);
      delay (10);
      digitalWrite(LED2, HIGH);
      delay (10);
      digitalWrite(LED4, HIGH);
      delay (100);
      digitalWrite(LED4, LOW);
      delay (100);
      digitalWrite(LED5, HIGH);
      ANAUS = (HIGH); // setzte LED3 auf HIGH
    }
    else
    {
      digitalWrite(LED5, LOW);
      delay (100);
      digitalWrite(LED3, (ANAUS)); // LED3 HIGH oder LOW
      delay (100);
      digitalWrite(LED3, LOW);
      delay (10);
      digitalWrite(LED2, LOW);
      digitalWrite(LED1, HIGH);
      ANAUS = (LOW); // setzte LED3 wieder auf LOW
    }
  }
  VorherigerStatus = Signalstatus;
// ################################################################################​#
}
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Digitaler und analoger Temperatursensor unterschiedlich Pit 3 644 16.01.2016 19:05
Letzter Beitrag: Pit
  Eingang analog oder digital? Wie macht man es richtig? Gelegenheitsbastler 3 979 25.03.2015 15:45
Letzter Beitrag: Bitklopfer
  Neu hier und gleich ein Problem (Analog Eingang und Spannungsteiler) jackill 17 2.215 03.02.2015 20:21
Letzter Beitrag: jackill
  Zähler in verschiedenen Modi betreiben Nimes 2 662 25.09.2014 10:19
Letzter Beitrag: Nimes

Gehe zu:


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