Hilfe bei einem Code Teil

Mehr
29 Mär 2018 15:46 #397 von littlekenny
littlekenny erstellte das Thema Hilfe bei einem Code Teil
Hallo zusammen,

vorweg, ich bin Anfänger was die Programmierung eines NodeMCU-Boards angeht!

Ich habe folgenden Code, welcher auch bereits super funktioniert!
#include <RCSwitch.h>

int led = 5;     // LED pin (D1)
int button = 16; // push button is connected (D0)
int temp = 0;    // temporary variable for reading the button pin status

RCSwitch mySwitch = RCSwitch();

void setup() {
  Serial.begin(9600);
  pinMode(led, OUTPUT);   // declare LED as output
  pinMode(button, INPUT); // declare push button as input
  mySwitch.enableTransmit(0); //Daten PIN D3 für das Sender Modul
  // Optional set protocol (default is 1, will work for most outlets)
  mySwitch.setProtocol(1);

  // Optional set pulse length.
  mySwitch.setPulseLength(759);
}

void loop() {
  temp = digitalRead(button);
     
     if (temp == LOW) {
        digitalWrite(led, LOW);
        Serial.println("bereit zum senden!");
        delay(1000);
     }
     if (temp == HIGH) {   
        digitalWrite(led, HIGH);
        /* Binärcode für die Klingel (433MHZ) */
        mySwitch.send("010010010100000101000001");
        Serial.println("Signal wurde gesendet");
        delay(500);
       }
}

Jetzt würde ich gerne wenn das Signal von einem zweiten Taster an einem anderen Pin gesendet wird, einen anderen Binärcode senden!

Hab also 2 Taster, welche jeweils einen anderen Binärcode senden sollen!

Hoffe ihr könnt mir helfen.

Vielen Dank.

Lieben Gruß, littlekenny

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
29 Mär 2018 20:05 - 29 Mär 2018 20:07 #398 von supporter
Hilfe bei einem Code Teil
Hallo littlekenny,

herzlich Willkommen im Forum.

Deine Lösung ist doch sehr einfach:

void loop() {
temp = digitalRead(button);
bool temp2=digitalRead(buttonNr2);

if (temp == LOW && temp2==0) {
digitalWrite(led, LOW);
Serial.println("bereit zum senden!");
delay(1000);
}
if (temp == HIGH || temp2==1) {
digitalWrite(led, HIGH);
/* Binärcode für die Klingel (433MHZ) */
if (temp==1){mySwitch.send("010010010100000101000001");
Serial.println("Signal 1 wurde gesendet");
}
if (temp2==1){mySwitch.send("11111111111111111111oderso");
Serial.println("Signal 1 wurde gesendet");
}
delay(500);
}

}

ABER:
1. Diese Lösung ist ungeprüft ;-)
2. delay(); -> raus damit und durch Programmierbeispiel "Blink without delay" ersetzen
Letzte Änderung: 29 Mär 2018 20:07 von supporter.

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
29 Mär 2018 21:25 #399 von littlekenny
Hilfe bei einem Code Teil
Vielen Dank.

Werde es nachher auch mal durchtesten.

Habe es jetzt wie folgt gelöst und direkt noch deinen Rat mit eingebaut!
#include <RCSwitch.h>

int led = 5;     // LED pin (D1)
int button = 16; // push button is connected (D0)
int button_2 = 13;  // push button is connected (D7)
int temp = 0;    // temporary variable for reading the button pin status
int temp2 = 0;   // temporary variable for reading the button 2 pin status
RCSwitch mySwitch = RCSwitch();

unsigned long previousMillis = 0;        // will store last time LED was updated
const long interval = 1000;           // interval at which to blink (milliseconds)

void setup() {
  Serial.begin(9600);
  pinMode(led, OUTPUT);   // declare LED as output
  pinMode(button, INPUT); // declare push button as input
  pinMode(button_2, INPUT); // declare push button 2 as input
  mySwitch.enableTransmit(0); //Daten PIN D3 für das Sender Modul
  // Optional set protocol (default is 1, will work for most outlets)
  mySwitch.setProtocol(1);

  // Optional set pulse length.
  mySwitch.setPulseLength(759);
}

void loop() {
  unsigned long currentMillis = millis();
  if (currentMillis - previousMillis >= interval) {
    // save the last time you blinked the LED
    previousMillis = currentMillis;
    
  temp = digitalRead(button);
     
     if (temp == LOW) {
        digitalWrite(led, LOW);
        Serial.println("bereit zum senden!");
     }
     if (temp == HIGH) {   
        digitalWrite(led, HIGH);
        /* Binärcode für die Klingel (433MHZ) */
        mySwitch.send("000000000");
        Serial.println("Signal wurde gesendet");
       }
  
  temp2 = digitalRead(button_2);

  if (temp2 == LOW) {
    digitalWrite(led, LOW);
    Serial.println("bereit zu senden über Button 2!");
  }
  if (temp2 == HIGH) {
    digitalWrite(led, HIGH);
    /*Binärcode für die Klingel 2 (433MHZ) */
    mySwitch.send("0000000000");
    Serial.println("Signal 2 wurde gesendet");
   }
  }
}

Wäre es so OK?

Vielen Dank.

Gruß, littlekenny

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Powered by Kunena Forum