Serial geht nicht

Ich verstehe die Welt nicht mehr, eigentlich müsste doch licht auf 0 gesetzt werden wenn ich seriell eine 0 sende und eine 1 wennich eine 1 sende... das tut es aber nicht.

Kann mir mal einer sagen warum?

const int gruenLED =  2;
const int rotLED = 3;
int bluetooth = 0; // Serial
int dunkel = 0; // Schalter
int licht = 0;
int ledState = 0;


// Zeit
unsigned long serialMillis = 0;
unsigned long previousMillis = 0;

// Intervall LED
const long standbyinterval = 1000;
const long aninterval = 500;




void setup() {

  pinMode(gruenLED, OUTPUT);
  pinMode(rotLED, OUTPUT);
  digitalWrite(gruenLED, 1);
  digitalWrite(rotLED, 1);



  Serial.begin(9600);

}

void loop() {

  unsigned long currentMillis = millis();
  // UHR
  // RELAIS
  // ULTRASCHALL

  // SERIAL

  if (Serial.available() > 0) {
    bluetooth = Serial.read();
    if (bluetooth == 0) {
      licht == 0;
    }
    if (bluetooth == 1) {
      licht == 1;
    }
  } 

 


  // STANDBY
  if (licht == 0) {
    if (currentMillis - previousMillis >= standbyinterval) {

      previousMillis = currentMillis;

      if (ledState == HIGH) {
        ledState = LOW;
      } else {
        ledState = HIGH;
      }

      digitalWrite(gruenLED, ledState);
    }
  }
  // AN

  if (licht == 1) {
    if (currentMillis - previousMillis >= aninterval) {

      previousMillis = currentMillis;

      if (ledState == HIGH) {
        ledState = LOW;
      } else {
        ledState = HIGH;
      }

      digitalWrite(rotLED, ledState);
    }
  }
}

if (bluetooth == 0)
if (bluetooth == '0')
Und natürlich mit der 1 genau so

Das geht auch nicht, "licht" bleibt bei 0

Gestern habe ich es auch mal geschafft dass es auf 1 wechselt, ging dann aber nicht mehr wieder auf 0

Edit:
mit bluetooth = '0'
und licht = 0
bekomme ich die 0 zu einer 1, aber nicht anders herum

aus

if (bluetooth == 0) {
      licht == 0;

würde ich

if (bluetooth == '0') {
      licht = 0;

machen usw......

Aleksi1999:
Das geht auch nicht, "licht" bleibt bei 0
Gestern habe ich es auch mal geschafft dass es auf 1 wechselt, ging dann aber nicht mehr wieder auf 0

Edit:
mit bluetooth = '0'
und licht = 0
bekomme ich die 0 zu einer 1, aber nicht anders herum

Natürlich behebt das einen deiner Fehler!
Und sowohl 0 und auch 1 funktionieren.

Hier ein minimalistischen Testprogramm:

const int LED =  13;

void setup() 
{
  Serial.begin(9600);
  pinMode(LED, OUTPUT);
  digitalWrite(LED, 1);
}

void loop() 
{
  byte b;
  if (Serial.available() > 0) 
  {
    b = Serial.read();
    if(b == '0') digitalWrite(LED,0);
    if(b == '1') digitalWrite(LED,1);
  }
}

Nachtrag:
Niemand hat "mit bluetooth = '0'" gesagt!
Sondern mit bluetooth == '0'

Wo und warum setzt du das denn ein?

Wenn dann "licht = 1" und nicht "licht == 1"

Geht jetzt, dann muss ich meinen Drahtlosen schalter doch nicht aufgeben , ich entschuldige mich eure Zeit geraubt zu haben.

Hoffe auf weitere Leute die das selbe Problem habe damit helfen zu können.

dann fehlt ja nur noch das Relais, der Vorbeigehsensor und die Uhr :smiley:

Schritt für Schritt, dann wird das auch was. :slight_smile: