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 mit Kontrolle
11.05.2018, 19:38
Beitrag #1
Lauflicht mit Kontrolle
Hallo

hab ein kleines Problem
hab hier 2 Lauflichter
die ich je mit einer LED abfragen möchte
wenn das Lauflicht LED 2,3,4 läuft soll LED 8 aus gehen
5,6,7 ist das gleiche und LED 9
mit einer weiteren taste kann ich sie auch an / aus (8 und 9) schalten wie ich will
soweit geht es auch jetzt mein Problem wenn das Lauflicht aus ist also wenn ich die taste drücke soll LED 8 wieder Leuchten über loop leuchtet sie dauernd und im Unterprogramm blinkt sie mit bei dem was ich versucht hab jetzt hab ich keine Idee mehr
also Lauflicht läuft LED 8 aus Lauflicht aus LED 8 ein
wenn die Spannung anliegt sollte aber alles aus sein erst bei tasten druck was der Fall ist




Code:
#include <IRremote.h>
int RECV_PIN = 11;
#define code1 16738455
#define code2 16750695
#define code3 16756815
#define code7 16728765
IRrecv irrecv(RECV_PIN);
decode_results results;
unsigned long LED_timestore;  
int itsONled[] = {0, 0, 0, 0, 0, 0, 0, 0 ,0 ,0 };

int led2 = 2;
int led3 = 3;
int led4 = 4;
int led5 = 5;
int led6 = 6;
int led7 = 7;
int led8 = 8;
int led9 = 9;

void setup() {

  Serial.begin(9600);
  irrecv.enableIRIn();
  
  pinMode(led2, OUTPUT);
  pinMode(led3, OUTPUT);
  pinMode(led4, OUTPUT);
  pinMode(led5, OUTPUT);
  pinMode(led6, OUTPUT);
  pinMode(led7, OUTPUT);
  pinMode(led8, OUTPUT);
  pinMode(led9, OUTPUT);
}

boolean musterAn = false;
boolean musterAn2 = false;
boolean musterAn3 = false;

void loop() {

  if (irrecv.decode(&results)) {
    unsigned long value = results.value;
    Serial.println(value);
    switch (value) {
       case code1:
        musterAn = ! musterAn;    
        break;
        case code2:
        musterAn2 = ! musterAn2;    
        break;
        case code3:
        musterAn3 = ! musterAn3;  
        break;
        case code7:
        Muster7();
        break;
    }
    irrecv.resume();
  }
  if (musterAn) Muster1();
  else {
      digitalWrite(led2, LOW);
      digitalWrite(led3, LOW);
      digitalWrite(led4, LOW);
      
}
if (musterAn2) Muster2();
  else {
      
      digitalWrite(led5, LOW);
      digitalWrite(led6, LOW);
      digitalWrite(led7, LOW);
      
}
if (musterAn3) Muster3();
  else {
    
      digitalWrite(led2, LOW);
      digitalWrite(led3, LOW);
      digitalWrite(led4, LOW);
      digitalWrite(led5, LOW);
      digitalWrite(led6, LOW);
      digitalWrite(led7, LOW);
}
}

void Muster1() {

  if (itsONled[2] == LOW)   {
    if (millis() - LED_timestore> 300 ) {
      digitalWrite(led2, HIGH);
       digitalWrite(led8, LOW);
        
    if (millis() - LED_timestore> 400 ) {
      digitalWrite(led3, HIGH);
      
        
    if (millis() - LED_timestore> 500 ) {
      digitalWrite(led4, HIGH);

      if (millis() - LED_timestore> 700 ) {
        LED_timestore = millis();
        
      digitalWrite(led2, LOW);
      digitalWrite(led3, LOW);
      digitalWrite(led4, LOW);  
  }}}}}}
  
void Muster2() {
  
  if (itsONled[9] == LOW)   {
    if (millis() - LED_timestore> 300 ) {
      digitalWrite(led7, HIGH);    
      digitalWrite(led9, LOW);  
    if (millis() - LED_timestore> 400 ) {
      
      digitalWrite(led6, HIGH);    
        
    if (millis() - LED_timestore> 500 ) {
      
      digitalWrite(led5, HIGH);

      if (millis() - LED_timestore> 700 ) {
        LED_timestore = millis();

      digitalWrite(led5, LOW);
      digitalWrite(led6, LOW);
      digitalWrite(led7, LOW);  
  }}}}}}

void Muster3() {
  
  if (itsONled[9] == LOW)   {
    if (millis() - LED_timestore> 300 ) {
      digitalWrite(led2, HIGH);
      digitalWrite(led7, HIGH);
      digitalWrite(led8, LOW);
      digitalWrite(led9, LOW);
        
    if (millis() - LED_timestore> 400 ) {
      digitalWrite(led3, HIGH);
      digitalWrite(led6, HIGH);    
        
    if (millis() - LED_timestore> 500 ) {
      digitalWrite(led4, HIGH);
      digitalWrite(led5, HIGH);

      if (millis() - LED_timestore> 700 ) {
        LED_timestore = millis();
        
      digitalWrite(led2, LOW);
      digitalWrite(led3, LOW);
      digitalWrite(led4, LOW);
      digitalWrite(led5, LOW);
      digitalWrite(led6, LOW);
      digitalWrite(led7, LOW);    
  }}}}}}
  
void Muster7() {
  if (itsONled[8] == 1 ) {
    digitalWrite(led8, LOW);
    digitalWrite(led9, LOW);
    itsONled[8] = 0;
  } else {
    digitalWrite(led8, HIGH);
    digitalWrite(led9, HIGH);
    itsONled[8] = 1;
  }
}
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
11.05.2018, 19:57
Beitrag #2
RE: Lauflicht mit Kontrolle
Sorry, ich habe es nicht verstanden, was Du willst.

Du hast einen langen Sketch hier abgekippt mit einer verworrenen Beschreibung und ohne zu erklären, was Du nun von uns willst.

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
11.05.2018, 20:35
Beitrag #3
RE: Lauflicht mit Kontrolle
ich bekomme es nicht hin die LED 8 die ich ausschalte wenn das Lauflicht eingeschalten ist wieder einzuschalten wenn das Lauflicht ausgeschalten wird
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
11.05.2018, 20:42
Beitrag #4
RE: Lauflicht mit Kontrolle
(11.05.2018 20:35)Golffahrer schrieb:  ich bekomme es nicht hin die LED 8 die ich ausschalte wenn das Lauflicht eingeschalten ist wieder einzuschalten wenn das Lauflicht ausgeschalten wird
Du musst Dir für diese sonderLED eine eigene Statusvariable setzen. Diese setzt Du je nach Priorität der Bedingungen (die letzte gewinnt) auf true oder false.
Am Ende vom Loop setzt Du in Abhängigkeit dieser Statusvariable die LED an oder aus.
Ich habe jetzt Deine Bedingungen nicht im Kopf aber etwa so (Pseudocode):
Code:
boolean led8Status = false;

...

if (lauf1) led8Status = false;
...

if (taster8) led8Status = true;

...
digitalWrite(led8Pin,led8Status);

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
13.05.2018, 09:03
Beitrag #5
RE: Lauflicht mit Kontrolle
hallo

hier ist mein sketch leider noch nicht perfekt
Muster 1 und Muster 2 ist wie ich es möchte
Muster 3 ist nur 1 und 2 zusammen geschrieben nur das geht nicht ???
im sketch habe ich eine stelle ausgeblendet und mit ????? markiert wenn das eingeblendet wird spinnt es total
Muster 7 geht aber nur so lange bis ich kein Muster 1,2 oder 3 Starte
Muster 7 soll wie ein Notschalter sein hier led 8,9, an und aus und ist vorrangig vor allem

vielen dank

Code:
#include <IRremote.h>
int RECV_PIN = 11;
#define code1 16738455
#define code2 16750695
#define code3 16756815
#define code7 16728765
IRrecv irrecv(RECV_PIN);
decode_results results;
unsigned long LED_timestore;  
int itsONled[] = {0, 0, 0, 0, 0, 0, 0, 0 ,0 ,0 };

int led2 = 2;
int led3 = 3;
int led4 = 4;
int led5 = 5;
int led6 = 6;
int led7 = 7;
int led8 = 8;
int led9 = 9;

void setup() {

  Serial.begin(9600);
  irrecv.enableIRIn();
  
  pinMode(led2, OUTPUT);
  pinMode(led3, OUTPUT);
  pinMode(led4, OUTPUT);
  pinMode(led5, OUTPUT);
  pinMode(led6, OUTPUT);
  pinMode(led7, OUTPUT);
  pinMode(led8, OUTPUT);
  pinMode(led9, OUTPUT);
}

boolean musterAn = false;
boolean musterAn2 = false;
boolean musterAn3 = false;
boolean musterAn7 = false;
boolean led8Status = false;
boolean led9Status = false;

void loop() {
  if (irrecv.decode(&results)) {
    unsigned long value = results.value;
    Serial.println(value);
    switch (value) {
       case code1:
        musterAn = ! musterAn;  
        break;
        case code2:
        musterAn2 = ! musterAn2;    
        break;
        case code3:
        musterAn3 = ! musterAn3;  
        break;
        case code7:
        musterAn7 = ! musterAn7;
        break;
    }
    irrecv.resume();
  }

  if (musterAn) Muster1();
  
  else {
      digitalWrite(led2, LOW);
      digitalWrite(led3, LOW);
      digitalWrite(led4, LOW);

      digitalWrite(led8,led8Status);

}
if (musterAn2) Muster2();

  else {
      
      digitalWrite(led5, LOW);
      digitalWrite(led6, LOW);
      digitalWrite(led7, LOW);
      
      digitalWrite(led9,led9Status);
}
if (musterAn3) Muster3();
  else {
    
      digitalWrite(led2, LOW);
      digitalWrite(led3, LOW);
      digitalWrite(led4, LOW);
      digitalWrite(led5, LOW);
      digitalWrite(led6, LOW);
      digitalWrite(led7, LOW);  
//   digitalWrite(led8,led8Status);   ?????
//   digitalWrite(led9,led9Status);   ?????  

if (musterAn7) Muster7();
  else {
    
      digitalWrite(led8, LOW);
      digitalWrite(led9, LOW);
      
}}
}
void Muster1() {

  if (itsONled[2] == LOW)   {
    if (millis() - LED_timestore> 300 ) {
      digitalWrite(led2, HIGH);
      digitalWrite(led8, LOW);
      
    if (millis() - LED_timestore> 400 ) {
      digitalWrite(led3, HIGH);
            
    if (millis() - LED_timestore> 500 ) {
      digitalWrite(led4, HIGH);

      if (millis() - LED_timestore> 700 ) {
        LED_timestore = millis();
        
      digitalWrite(led2, LOW);
      digitalWrite(led3, LOW);
      digitalWrite(led4, LOW);  
    if (musterAn) led8Status = true;

  }}}}}}
void Muster2() {
  
  if (itsONled[9] == LOW)   {
    if (millis() - LED_timestore> 300 ) {
      digitalWrite(led7, HIGH);    
      digitalWrite(led9, LOW);

    if (millis() - LED_timestore> 400 ) {
      
      digitalWrite(led6, HIGH);    
        
    if (millis() - LED_timestore> 500 ) {
      
      digitalWrite(led5, HIGH);

      if (millis() - LED_timestore> 700 ) {
        LED_timestore = millis();

      digitalWrite(led5, LOW);
      digitalWrite(led6, LOW);
      digitalWrite(led7, LOW);  

    if (musterAn2) led9Status = true;

  }}}}}}
void Muster3() {
  
  if (itsONled[9] == LOW)   {
    if (millis() - LED_timestore> 300 ) {
      digitalWrite(led2, HIGH);
      digitalWrite(led7, HIGH);
      digitalWrite(led8, LOW);  
      digitalWrite(led9, LOW);
        
    if (millis() - LED_timestore> 400 ) {
      digitalWrite(led3, HIGH);
      digitalWrite(led6, HIGH);    
        
    if (millis() - LED_timestore> 500 ) {
      digitalWrite(led4, HIGH);
      digitalWrite(led5, HIGH);

      if (millis() - LED_timestore> 700 ) {
        LED_timestore = millis();
        
      digitalWrite(led2, LOW);
      digitalWrite(led3, LOW);
      digitalWrite(led4, LOW);
      digitalWrite(led5, LOW);
      digitalWrite(led6, LOW);
      digitalWrite(led7, LOW);    
    if (musterAn3) led8Status = true;  
    if (musterAn3) led9Status = true;  
  
  }}}}}}
void Muster7() {
    digitalWrite(led8, HIGH);
    digitalWrite(led9, HIGH);
}
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
13.05.2018, 17:07
Beitrag #6
RE: Lauflicht mit Kontrolle
Wenn ich schon solche Zeilen sehe:
Code:
}}}}}}
schaue ich mir den Code nicht mehr gern an. Formatiere ihn ordentlich (<Strg>+T in der IDE hilft Dir dabei), schreibe an wichtige Stellen Kommentare, was da passieren soll (und was evtl. nicht passiert) und vor allem setze an entscheidende Stellen im Code serielle Ausgaben mit Text und den dort wichtigen Werten, dmit Du siehst, was Dein Code macht.

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
13.05.2018, 17:45
Beitrag #7
RE: Lauflicht mit Kontrolle
(13.05.2018 17:07)Tommy56 schrieb:  Wenn ich schon solche Zeilen sehe:
Code:
}}}}}}
schaue ich mir den Code nicht mehr gern an. Formatiere ihn ordentlich (<Strg>+T in der IDE hilft Dir dabei), schreibe an wichtige Stellen Kommentare, was da passieren soll (und was evtl. nicht passiert) und vor allem setze an entscheidende Stellen im Code serielle Ausgaben mit Text und den dort wichtigen Werten, dmit Du siehst, was Dein Code macht.

Gruß Tommy

ok das mit STRG +T wüsste ich nicht wollte es kompakt schreiben da mal gemeckert würde wegen zu vielen leer Zeilen und das man nicht so viel hoch runter Scrollen muss
ich dachte Profis brauchen das nicht Smile aber wenn doch Muster 1 und 2 geht und es wird nur zusammen geschrieben warum geht das nicht es ist doch 100% das gleiche ??? also für mich kein unterschied
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
13.05.2018, 18:23
Beitrag #8
RE: Lauflicht mit Kontrolle
Hast Du die Funktion mit seriellen Ausgaben analysiert?

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Lauflicht mit Fernbedienung und Shift Register Golffahrer 8 1.549 02.07.2017 19:05
Letzter Beitrag: Tommy56
  Lauflicht mit Nano Pixel und Joystick strobo 3 740 20.05.2017 20:16
Letzter Beitrag: Tommy56
  Mal wieder ein Lauflicht Legolas085 7 6.634 05.05.2015 08:38
Letzter Beitrag: Thorsten Pferdekämper
Question Bei Led Lauflicht delay ersetzen partizan0180 27 9.726 12.03.2015 19:35
Letzter Beitrag: partizan0180
  Lauflicht zwei Richtungen mit 2 Tastern Hansl 18 5.243 26.12.2014 08:30
Letzter Beitrag: aoLaopsa
  i2c-Slave: Kontrolle der korrekten i2c-Verbindung HaWe 0 955 27.09.2014 18:06
Letzter Beitrag: HaWe

Gehe zu:


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