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
2 und mehrere Led´s mit Fernbedienung AN / AUS + Blinkfunktion
30.05.2016, 21:45
Beitrag #1
2 und mehrere Led´s mit Fernbedienung AN / AUS + Blinkfunktion
Hallo Arduino Freunde

ich habe seit ein paar Wochen eine Idee und möchte diese umsetzen und zwar möchte ich Led´s mit Fernbedienung AN und AUS Schalten.
Also Led 1 AN und Aus mit der gleichen Taste
Led 2 AN und Aus mit der gleichen Taste
Led 3 AN und Aus mit der gleichen Taste diese soll aber Blinken ( und das bekomme ich nicht hin )
Da Programm sollte erweiterbar sein das ich später mal mehr led´s und mehr Tasten verwenden kann. Ich habe seit Wochen im Netz geschaut und Stunden lang versucht bin aber leider erst am Anfang und benötige Hilfe.
Hier mal der Code bei Muster 2 habe ich auch ein Problem mit den Klammern.
Vielen Dank für eure Hilfe und wenn ich was falsch gemacht habe Entschuldigung [/code]

[code]

// LED AN und AUS
#include <IRremote.h>
int RECV_PIN = 11;
int led2 = 2;
int led3 = 3;
int itsONled[] = {0,0,0,0,0};
#define code1 16724175
#define code2 16718055
IRrecv irrecv(RECV_PIN);
decode_results results;


// LED Blinkt

const int led4 = 4;
unsigned long previousMillis = 0;
const long interval = 1000;

#define code3 16743045



void setup()
{
// LED AN und AUS
Serial.begin(9600);
irrecv.enableIRIn();
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);

// LED Blinkt


pinMode(4,OUTPUT);
}

void Muster1() {
if (irrecv.decode(&results)) {
unsigned int value = results.value;
switch(value) {
case code1:
if(itsONled[2] == 1 ) {
digitalWrite(led2,LOW);
itsONled[2] = 0;
} else {
digitalWrite(led2, HIGH);
itsONled[2] = 1;
}
break;
}

switch(value) {
case code2:
if(itsONled[3] == 1 ) {
digitalWrite(led3,LOW);
itsONled[3] = 0;
} else {
digitalWrite(led3, HIGH);
itsONled[3] = 1;
}
break;
}
Serial.println(results.value);

irrecv.resume();


}
}


void Muster2() {

if (irrecv.decode(&results)) {
unsigned int value = results.value;
switch(value) {
case code3:


unsigned long currentMillis = millis();
if (currentMillis - previousMillis >= interval) {
previousMillis = currentMillis;

if (itsONled[4] == 0) {

itsONled[4] = 1;
} else {

itsONled[4] = 0;


}
digitalWrite(4, itsONled[4]);
}
}}}

void loop()
{
Muster1();
Muster2();
}
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
30.05.2016, 22:57 (Dieser Beitrag wurde zuletzt bearbeitet: 30.05.2016 22:58 von hotsystems.)
Beitrag #2
RE: 2 und mehrere Led´s mit Fernbedienung AN / AUS + Blinkfunktion
Wenn du deinen Sketch innerhalb der Code-Tags setzt, dann wird er auch richtig als Code angezeigt. Die Tags hast du ja schon eingesetzt, nur sind diese oberhalb des Sketches, also wirkungslos.

Ich poste dir mal ein Beispiel, wie ich es machen würde.
Die IR-Dekodierung solltest du immer in der Loop laufen lassen, dann ist es einfacher mit der Erweiterung. Deine einzelnen Muster setzt du in Funktionen und rufst diese entsprechend auf.

Deinen Code habe ich jetzt noch nicht geprüft sondern ungeprüft in meinem Beispiel übernommen.

Code:
// LED AN und AUS
#include <IRremote.h>
int RECV_PIN = 11;
int led2 = 2;
int led3 = 3;
int itsONled[] = {0, 0, 0, 0, 0};
#define code1 16724175
#define code2 16718055
IRrecv irrecv(RECV_PIN);
decode_results results;

// LED Blinkt
const int led4 = 4;
unsigned long previousMillis = 0;
const long interval = 1000;
#define code3 16743045

void setup()
{
  // LED AN und AUS
  Serial.begin(9600);
  irrecv.enableIRIn();
  pinMode(2, OUTPUT);
  pinMode(3, OUTPUT);

  // LED Blinkt
  pinMode(4, OUTPUT);
}

void loop() {
  if (irrecv.decode(&results)) {
    unsigned int value = results.value;
    switch (value) {
      case code1:
        Muster1();
        break;
      case code2:
        Muster2();
        break;
      case code3:
        Muster2();
        break;
    }
    irrecv.resume();
  }
}

void Muster1() {
  if (itsONled[2] == 1 ) {
    digitalWrite(led2, LOW);
    itsONled[2] = 0;
  } else {
    digitalWrite(led2, HIGH);
    itsONled[2] = 1;
  }
}

void Muster2() {
// dein Code
}

void Muster3() {
// dein Code
}

Ich könnte mir vorstellen, dass du in diesem Beispiel auch das Blinken schnell hinbekommst, das geht dann mit "BlinkWithoutDelay". Sonst einfach wieder melden.

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
31.05.2016, 20:57
Beitrag #3
RE: 2 und mehrere Led´s mit Fernbedienung AN / AUS + Blinkfunktion
Hallo

wie gesagt bin neu und Arduino ist für mich auch neu.
Hab mir ein Set gekauft zum Probieren das ist alles schon und gut aber gibt noch nicht wirklich ein Bild für mich. Und ich versuche mich zu bessern.Big Grin

- Sketch bitte in Tags -> ok das bedeutet und wie mache ich das ?
- wie sieht die Schaltung aus -> ist nix besonderes die Led´s sind wie im Code auf einem Steckboard und an pin 2 oder so mit einem Widderstand mit GND verbunden zum Testen ( Arduino UNO )
- Fluß-Diagramm zum Programm-Ablauf -> keine Ahnung was das ist wie gesagt ich will nur ganz einfach eine LED zum Blinken bringen und die mit der Fernbedienung an und aus machen.

vielen Dank hotsystems für deine Hilfe deine Version gefällt mir sehr gut funktioniert auch ganz gut nur das mit dem BlinkWithoutDelay will nicht das ist mein Problem ohne Fernbedienung und nur so Arduino an die LED und sie Blinkt.
Ich verstehe aber einfach nicht wie ich die Fernbedienung und BlinkWithoutDelay zusammen in einen Code schreiben muss das sie Blinkt. Vielleicht könntest mir das noch in deinem Code ergänzen. Das wäre echt super Dankeschön
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
31.05.2016, 21:40
Beitrag #4
RE: 2 und mehrere Led´s mit Fernbedienung AN / AUS + Blinkfunktion
(31.05.2016 20:57)Golffahrer schrieb:  - Sketch bitte in Tags -> ok das bedeutet und wie mache ich das ?

Code-Tags geht mit der Schaltfläche "#". Hatte ich oben auch beschrieben.

Zitat:vielen Dank hotsystems für deine Hilfe deine Version gefällt mir sehr gut funktioniert auch ganz gut nur das mit dem BlinkWithoutDelay will nicht das ist mein Problem ohne Fernbedienung und nur so Arduino an die LED und sie Blinkt.
Ich verstehe aber einfach nicht wie ich die Fernbedienung und BlinkWithoutDelay zusammen in einen Code schreiben muss das sie Blinkt. Vielleicht könntest mir das noch in deinem Code ergänzen. Das wäre echt super Dankeschön

Sorry, du solltest schon selbst an deinem Programm schreiben. Wir helfen gern, aber schreiben nicht für dich.

Hier eine gute Beschreibung dazu. Versuche es selber und zeige uns dein Ergebnis.

Den Blinksketch baust du in die Funktion "Muster3" ein.

Nur so kannst du es lernen.

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
04.06.2016, 20:19
Beitrag #5
RE: 2 und mehrere Led´s mit Fernbedienung AN / AUS + Blinkfunktion
Hallo

ich komme einfach nicht weiter hier mal der code die Led 4 blinkt einfach nicht.
Wenn ich Blink Without Delay ohne Fernbedienung mache geht es nur ich komme nicht klar wie ich die beiden codes so miteinender verbinde das die Led 4 blinkt.
Stundenlanges probieren und Internet helfen mir grade kein bisschen.
Ich glaube das die LED 4 nicht blinkt weil das Programm es nicht wiederholt und der Befehl nicht beibehalten wird bis ich die Taste mit code 3 wieder drücke.
So geht die Led 4 an und aus wie die anderen mit dem unterschied das ich die Taste 2 x oder so drücken muss bis sie an oder aus geht.

wäre dankbar über jede HILFE DANKE


Code:
// LED AN und AUS
#include <IRremote.h>
int RECV_PIN = 11;
int led2 = 2;
int led3 = 3;
int itsONled[] = {0, 0, 0, 0, 0 };
#define code1 16724175
#define code2 16718055
IRrecv irrecv(RECV_PIN);
decode_results results;

// LED Blinkt
long int led4 = 4;
unsigned long previousMillis = 0;
const long interval = 1000;
#define code3 16743045

void setup()
{
  // LED AN und AUS
  Serial.begin(9600);
  irrecv.enableIRIn();
  pinMode(2, OUTPUT);
  pinMode(3, OUTPUT);

  // LED Blinkt
  pinMode(4, OUTPUT);
}

void loop() {
  if (irrecv.decode(&results)) {
    unsigned int value = results.value;
    Serial.println(results.value);
    irrecv.resume();
    switch (value) {
      case code1:
        Muster1();
        break;
      case code2:
        Muster2();
        break;
      case code3:
        Muster3();
        break;
    }
    irrecv.resume();
  }
}

void Muster1() {
  if (itsONled[2] == 1 ) {
    digitalWrite(led2, LOW);
    itsONled[2] = 0;
  } else {
    digitalWrite(led2, HIGH);
    itsONled[2] = 1;
  }
}

void Muster2() {


if (itsONled[3] == 1 ) {
    digitalWrite(led3, LOW);
    itsONled[3] = 0;
  } else {
    digitalWrite(led3, HIGH);
    itsONled[3] = 1;
  }
}

void Muster3() {



unsigned long currentMillis = millis();
  if (currentMillis - previousMillis >= interval) {
    previousMillis = currentMillis;

    if (itsONled[4] == 1) {
      
      itsONled[4] = 0;
    } else {
    
      itsONled[4] = 1;
    }

    
    digitalWrite(led4, itsONled[4]);
  }
}
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
04.06.2016, 22:51
Beitrag #6
RE: 2 und mehrere Led´s mit Fernbedienung AN / AUS + Blinkfunktion
Ja, ok. Das wäre zu einfach. Wink

Folgendes Beispiel (ungetestet) sollte aber den gewünschten Effekt bringen:

Diese Zeilen in den Deklarationsbereich:
Code:
unsigned long currentMillis;
uint8_t ledState = LOW;

Dies an den Anfang der Loop, noch vor die IR-Abfrage, setzen.
Code:
currentMillis = millis();
  if (currentMillis - previousMillis >= interval) {
    previousMillis = currentMillis;
    if (ledState == LOW)
      ledState = HIGH;
    else
      ledState = LOW;
  }

Diese Zeile in deine Funktion "Muster3" setzen.
Alles andere aus der Funktion entfernen.
Code:
digitalWrite(4, ledState);

Natürlich musst du noch den Sketch um das Ausschalten des Blinkens erweitern.

Was mir aber auch nicht klar ist, wie du deine Led-Ausgänge als Output festgelegt hast? Da stimmt noch etwas nicht.

Noch ein Vorschlag, du solltest dich unbedingt mit den Grundlagen und den Beispielen in der IDE beschäftigen.
Da lernt man sehr gut daraus und die Grundlagen musst du selbst lernen.
Ich bin auch damit angefangen.

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
05.06.2016, 09:34 (Dieser Beitrag wurde zuletzt bearbeitet: 05.06.2016 09:35 von hotsystems.)
Beitrag #7
RE: 2 und mehrere Led´s mit Fernbedienung AN / AUS + Blinkfunktion
Hallo,

sorry, habe da noch etwas übersehen.

Folgende Zeile in die Deklaration einfügen:
Code:
uint8_t BlinkStaus;

Diese Zeilen in der Loop tauschen:
Code:
case code3:
  BlinkStaus = 1;
  Muster3 ();
  break;

Und auch die Funktion ändern:
Code:
void Muster3 () {
  if (BlinkStaus == 1) {
    digitalWrite(4, ledState);
  }
}

Zum Ausschalten den BlinkStatus auf 0 setzen.

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
05.06.2016, 12:15
Beitrag #8
RE: 2 und mehrere Led´s mit Fernbedienung AN / AUS + Blinkfunktion
Hallo

also wenn ich das alles Richtig verstanden habe dann so ???


Code:
// LED AN und AUS
#include <IRremote.h>
int RECV_PIN = 11;
int led2 = 2;
int led3 = 3;
int itsONled[] = {0, 0, 0, 0, 0 };
#define code1 16724175
#define code2 16718055
IRrecv irrecv(RECV_PIN);
decode_results results;

// LED Blinkt
long int led4 = 4;
unsigned long previousMillis = 0;
const long interval = 1000;
#define code3 16743045

unsigned long currentMillis;
uint8_t ledState = LOW;
uint8_t BlinkStaus;


void setup()
{
  // LED AN und AUS
  Serial.begin(9600);
  irrecv.enableIRIn();
  pinMode(2, OUTPUT);
  pinMode(3, OUTPUT);

  // LED Blinkt
  pinMode(4, OUTPUT);
}

void loop() {

currentMillis = millis();
  if (currentMillis - previousMillis >= interval) {
    previousMillis = currentMillis;
    if (ledState == LOW)
      ledState = HIGH;
    else
      ledState = LOW;
  }
  
  if (irrecv.decode(&results)) {
    unsigned int value = results.value;
    Serial.println(results.value);
    irrecv.resume();
    switch (value) {
      case code1:
        Muster1();
        break;
      case code2:
        Muster2();
        break;
      case code3:
        BlinkStaus = 1;
        Muster3();
        break;
    }
    irrecv.resume();
  }
}

void Muster1() {
  if (itsONled[2] == 1 ) {
    digitalWrite(led2, LOW);
    itsONled[2] = 0;
  } else {
    digitalWrite(led2, HIGH);
    itsONled[2] = 1;
  }
}

void Muster2() {


if (itsONled[3] == 1 ) {
    digitalWrite(led3, LOW);
    itsONled[3] = 0;
  } else {
    digitalWrite(led3, HIGH);
    itsONled[3] = 1;
  }
}

void Muster3 () {
  
  if (BlinkStaus == 1) {
    digitalWrite(4, ledState);
  }
}
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 504 24.10.2016 21:17
Letzter Beitrag: georg01
  Taster für mehrere Funktionen matthias3579 5 345 16.08.2016 16:00
Letzter Beitrag: StephanBuerger
  Mehrere Wertabfragen blebbens 5 370 18.06.2016 22:58
Letzter Beitrag: Scheams
  Mehrere Abläufe gleichteitig mit "Millis" MarkusSpielt 3 657 11.04.2016 18:23
Letzter Beitrag: MarkusSpielt
  Brauche Hilfe bei der Infrarot Fernbedienung Levi 11 1.218 24.02.2016 06:55
Letzter Beitrag: Levi
  Mehrere MCP23017 dynamisch verwenden itsy 5 611 14.02.2016 13:22
Letzter Beitrag: itsy
  I ch brauche mehrere SDA und SCL am MEGA2560 arduinofan 5 752 10.01.2016 21:15
Letzter Beitrag: arduinofan
  Mehrere Geräte über eine IR Fernbedienung Respun 20 1.995 07.01.2016 23:51
Letzter Beitrag: hotsystems
  mehrere Analoge eingänge seriell ausgeben rieders 5 784 28.11.2015 09:55
Letzter Beitrag: Bitklopfer
  Wie frag ich mehrere Taster in einem Programm ab? blowingwater 7 1.125 02.06.2015 19:05
Letzter Beitrag: blowingwater

Gehe zu:


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