Hello, World.

Die Fernbedienung.

Die Fernbedienung

Ein Pappkarton, eine Lochrasterplatiene, ein 4 x 20 LCD Bildschirm, ein Arduino Mega. Ein paar Taster und Potis, Kabel und Lötzin. Viel mehr war nicht notwenig um diese Fernbedienung zu bauen, die einen sehr starken Auftritt hinlegen kann. Mit Ihrer Hilfe kann ich das Licht eines Raumes sehr präzise in Farbe und Intensität beeinflussen. Zusätzlich bietet sie mir die Möglichkeit, verschiedene Farbverläufe schnell zu definieren.

Liberty

Bevor ich den Quellcode darstelle möchte ich Sie dazu einladen sich mein Präsentationsvideo anzusehen, welches zeigt, wie die Taschenlampe und die Fernbedienung zusammenarbeiten.

Wir sind es mittlerweile alle gewohnt profesionelle Youtube Videos zu sehen, bei denen die Sprechenden und darstellenden Personen genau wissen was sie machen müssen um ein spannendes Video zu gestallten.
Ich weiß es nicht.
Wünsche trozdem viel Spaß.

#include <PWM.h>

#include <RCSwitch.h>
#include <LiquidCrystal.h>
#include <TimerFour.h>



RCSwitch mySwitch = RCSwitch();
const int rs = 27, en = 26, d4 = 25, d5 = 24, d6 = 23, d7 = 22;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
//Pinbelegung Potis
int potiRot1 = A13;
int potiBlau1 = A12;
int potiGruen1 = A11;
int potiRot2 = A10;
int potiBlau2 = A9;
int potiGruen2 = A8;

//Pinbelegung Taster
int program1Rot = 31;
int program1Gruen = 30;
int program2Rot = 33;
int program2Gruen = 32;
int tasterZahl1Rot = 35;
int tasterZahl1Gruen = 34;
int tasterZahl2Rot = 37;
int tasterZahl2Gruen = 36;
int sender = 39;
int sendemodul = 2;

//Pinbelegung LED
int rotLED1 = 49;
int gruenLED1 = 51;
int blauLED1 = 53;

int rotLED2 = 7;
int gruenLED2 = 8;
int blauLED2 = 6;


//Variablen
int potiRot1Wert = 0;
int potiBlau1Wert = 0;
int potiGruen1Wert = 0;
int tasterZahl1 = 0;
int potiRot2Wert = 0;
int potiBlau2Wert = 0;
int potiGruen2Wert = 0;
int tasterZahl2 = 0;
int program1 = 0;
int program2 = 0;

int potiRot1WertAlt = 0;
int potiBlau1WertAlt = 0;
int potiGruen1WertAlt = 0;
int tasterZahl1Alt = 0;
int potiRot2WertAlt = 0;
int potiBlau2WertAlt = 0;
int potiGruen2WertAlt = 0;
int tasterZahl2Alt = 0;
int program1Alt = 0;
int program2Alt = 0;

int32_t frequenz = 100;

long zaelerFarbenHart = 0;
long HarterFarbwechselZeitKurz = 0;


int rotAlt = 0;
int blauAlt = 0;
int gruenAlt = 0;

long hellSkroboskop = 0;
long dunkelSkroboskop = 0;
long lcdZeit1 = 0;
long lcdZeit2 = 0;

int zaehlerRot = 0;
int zaelerGruen = 0;
int zaelerBlau = 0;
int farbwechselWarten = 0;
long zaelerFarben = 0;
long WeicherFarbwechselZeitKurz = 0;

long dunkelSkroboskopBunt = 0;
long hellSkroboskopBunt = 0;
int zaelerSkroboskopHell = 0;

void setup()
{
  lcd.begin(20, 4);
  Serial.begin(9600);
  pinMode(potiRot1, INPUT);
  pinMode(potiBlau1, INPUT);
  pinMode(potiGruen1, INPUT);
  pinMode(tasterZahl1Rot, INPUT);
  pinMode(tasterZahl1Gruen, INPUT);
  pinMode(potiRot2, INPUT);
  pinMode(potiBlau2, INPUT);
  pinMode(potiGruen2, INPUT);
  pinMode(tasterZahl2Rot, INPUT);
  pinMode(tasterZahl2Gruen, INPUT);
  pinMode(program1Rot, INPUT);
  pinMode(program1Gruen, INPUT);
  pinMode(program2Rot, INPUT);
  pinMode(program2Gruen, INPUT);
  pinMode(2, OUTPUT);

  pinMode( rotLED1, OUTPUT);
  pinMode( gruenLED1 , OUTPUT);
  pinMode( blauLED1 , OUTPUT);

  Timer4.initialize(40); //40us


  pinMode( rotLED2 , OUTPUT);
  pinMode( gruenLED2 , OUTPUT);
  pinMode( blauLED2 , OUTPUT);

}



void Farbwahl(int FarbeRot, int FarbeGruen, int FarbeBlau ) {
  Timer4.pwm( rotLED2, FarbeRot);
  Timer4.pwm(gruenLED2, FarbeGruen);
  Timer4.pwm(blauLED2, FarbeBlau);
  rotAlt = FarbeRot;
  gruenAlt = FarbeGruen;
  blauAlt = FarbeBlau;
  /*Serial.print("rot alt:");
    Serial.println(rotAlt);
    Serial.print("gruenAlt:");
    Serial.println(gruenAlt);
    Serial.print("blauAlt:");
    Serial.println(blauAlt); */
}


void Feuer() {
  Timer4.pwm( blauLED2, random(1, 10));
  Timer4.pwm(rotLED2, random(1, 1023));
  Timer4.pwm(gruenLED2, random(25, 30));
  delay(random(1, 100));
}

int PotiAuslesen( int Poti) {
  int variable = analogRead(Poti);
  if (variable == 0) {
    variable = 1;
  }
  return variable;
}


int ZahlenwertErmitteln (int rot, int gruen, int wert ) {

  if (wert == 0) {
    wert = 1;
  }

  if (digitalRead(rot) == HIGH) {
    //   Serial.print("rot wurde gedrückt! wert ist:");
    //   Serial.println(wert);
    if (wert > 1) {
      wert--;
      delay(400);
    };
  }
  if (digitalRead(gruen) == HIGH) {
    //   Serial.print("gruen wurde gedrückt! wert ist:");
    //   Serial.print(wert);
    if (wert == 999)
      wert = 0;
    wert++;
    delay(400);
  }
  return wert;
}

void Senden() {
  mySwitch.enableTransmit(sendemodul);  // Der Sender wird an sendemodul angeschlossen

  int bitLaenge = 11;
  int plusFacktor = 100;

  if ((program1 == 1) || (program2 == 1)) {
    if (digitalRead(sender) == 1) {

      digitalWrite(rotLED1, 1);
      mySwitch.send(2000, 11);


      mySwitch.send(10, 4); // Der 433mhz Sender versendet die Dezimalzahl „2000“
      mySwitch.send(program1 + plusFacktor, 7);
      program1Alt = program1;

      mySwitch.send(11, 4);
      mySwitch.send(program2 + plusFacktor, 7);
      program2Alt = program2;

      mySwitch.send(12, 4);
      mySwitch.send(tasterZahl1 + plusFacktor, 7);
      tasterZahl1Alt = tasterZahl1;

      mySwitch.send(13, 4);
      mySwitch.send(tasterZahl2 + plusFacktor, 7);
      tasterZahl2Alt = tasterZahl2;

      mySwitch.send(14, 4);
      mySwitch.send(potiRot1Wert + plusFacktor, bitLaenge);
      potiRot1WertAlt = potiRot1Wert;

      mySwitch.send(15, 4);
      mySwitch.send(potiBlau1Wert + plusFacktor, bitLaenge);
      potiBlau1WertAlt = potiBlau1Wert;

      mySwitch.send(16, 5);
      mySwitch.send(potiGruen1Wert + plusFacktor, bitLaenge);
      potiGruen1WertAlt = potiGruen1Wert;

      mySwitch.send(17, 5);
      mySwitch.send(potiRot2Wert + plusFacktor, bitLaenge);
      potiRot2WertAlt = potiRot2Wert;

      mySwitch.send(18, 5);
      mySwitch.send(potiBlau2Wert + plusFacktor, bitLaenge);
      potiBlau2WertAlt = potiBlau2Wert;

      mySwitch.send(19, 5);
      mySwitch.send(potiGruen2Wert + plusFacktor, bitLaenge);
      potiGruen2WertAlt = potiGruen2Wert;

      mySwitch.send(99, 7);
      //      if ((program1 == 12) || (program2 == 12)) { //sonst läuft der Zähler bei schneller eingabe über
      //        Serial.print("habe zurückgesetzt");
      //        zaelerBuntSkob = 0;
      //      }
      digitalWrite(rotLED1, 0);
    }
  } else {

    if (digitalRead(sender) == 1) {

      digitalWrite(rotLED1, 1);
      mySwitch.send(2000, 11);

      if (program1 != program1Alt) {
        mySwitch.send(10, 4); // Der 433mhz Sender versendet die Dezimalzahl „2000“
        mySwitch.send(program1 + plusFacktor, 7);
        program1Alt = program1;
      }
      if (program2 != program2Alt) {
        mySwitch.send(11, 4);
        mySwitch.send(program2 + plusFacktor, 7);
        program2Alt = program2;
      }
      if (tasterZahl1 != tasterZahl1Alt) {
        mySwitch.send(12, 4);
        mySwitch.send(tasterZahl1 + plusFacktor, 7);
        tasterZahl1Alt = tasterZahl1;
      }
      if (tasterZahl2 != tasterZahl2Alt) {
        mySwitch.send(13, 4);
        mySwitch.send(tasterZahl2 + plusFacktor, 7);
        tasterZahl2Alt = tasterZahl2;
      }
      if (potiRot1Wert != potiRot1WertAlt) {
        mySwitch.send(14, 4);
        mySwitch.send(potiRot1Wert + plusFacktor, bitLaenge);
        potiRot1WertAlt = potiRot1Wert;
      }
      if (potiBlau1Wert != potiBlau1WertAlt) {
        mySwitch.send(15, 4);
        mySwitch.send(potiBlau1Wert + plusFacktor, bitLaenge);
        potiBlau1WertAlt = potiBlau1Wert;
      }
      if (potiGruen1Wert != potiGruen1WertAlt) {
        mySwitch.send(16, 5);
        mySwitch.send(potiGruen1Wert + plusFacktor, bitLaenge);
        potiGruen1WertAlt = potiGruen1Wert;
      }
      if (potiRot2Wert != potiRot2WertAlt) {
        mySwitch.send(17, 5);
        mySwitch.send(potiRot2Wert + plusFacktor, bitLaenge);
        potiRot2WertAlt = potiRot2Wert;
      }
      if (potiBlau2Wert != potiBlau2WertAlt) {
        mySwitch.send(18, 5);
        mySwitch.send(potiBlau2Wert + plusFacktor, bitLaenge);
        potiBlau2WertAlt = potiBlau2Wert;
      }
      if (potiGruen2Wert != potiGruen2WertAlt) {
        mySwitch.send(19, 5);
        mySwitch.send(potiGruen2Wert + plusFacktor, bitLaenge);
        potiGruen2WertAlt = potiGruen2Wert;

      }
      mySwitch.send(99, 7);

      //      if ((program1 == 12) || (program2 == 12)) { //sonst läuft der Zähler bei schneller eingabe über
      //        Serial.print("habe zurückgesetzt");
      //        zaelerBuntSkob = 0;
      //      }
      digitalWrite(rotLED1, 0);
    }
  }
}

void LCDWerteAusgeben(int program, int zeile, int rot, int blau, int gruen) {

  long bufferZeit;
  if (zeile == 0) {
    bufferZeit = lcdZeit1;
  } else {
    bufferZeit = lcdZeit2;
  }

  if (bufferZeit <= millis()) {
    bufferZeit = millis() + 200;

    if (zeile == 0) {
      lcdZeit1 = bufferZeit;
    } else {
      lcdZeit2 = bufferZeit;
    }
    switch (program) {
      case 1:
        lcd.setCursor(0, zeile);
        lcd.print("1. alles Senden     ");
        lcd.setCursor(0, zeile + 1);
        lcd.print("                    ");
        break;
      case 2:
        lcd.setCursor(0, zeile);
        lcd.print("2.Farbe einstellen");
        lcd.setCursor(0, zeile + 1);
        lcd.print("R:");
        if (rot < 10)lcd.print(" ");
        if (rot < 100)lcd.print(" ");
        if (rot < 1000)lcd.print(" ");
        lcd.print(rot);
        lcd.print(" G:");
        if (gruen < 10)lcd.print(" ");
        if (gruen < 100)lcd.print(" ");
        if (gruen < 1000)lcd.print(" ");
        lcd.print(gruen);
        lcd.print(" B:");
        if (blau < 10)lcd.print(" ");
        if (blau < 100)lcd.print(" ");
        if (blau < 1000)lcd.print(" ");
        lcd.print(blau);
        break;
      case 3:
        lcd.setCursor(0, zeile);
        lcd.print("3.  nichts          ");
        lcd.setCursor(0, zeile + 1);
        lcd.print("                    ");
        break;
      case 4:
        lcd.setCursor(0, zeile);
        lcd.print("4. Skroboskop      ");
        lcd.setCursor(0, zeile + 1);
        lcd.print("Dunkel:");
        if (rot < 10)lcd.print(" ");
        if (rot < 100)lcd.print(" ");
        if (rot < 1000)lcd.print(" ");
        lcd.print(rot);
        lcd.print("Hell:");
        if (blau < 10)lcd.print(" ");
        if (blau < 100)lcd.print(" ");
        if (blau < 1000)lcd.print(" ");
        lcd.print(blau);
        break;
      case 5:
        lcd.setCursor(0, zeile);
        lcd.print("5.  nichts          ");
        lcd.setCursor(0, zeile + 1);
        lcd.print("                    ");
        break;
      case 6:
        lcd.setCursor(0, zeile);
        lcd.print("6.Bunt Skroboskop  ");
        lcd.setCursor(0, zeile + 1);
        lcd.print("Dunkel:");
        if (rot < 10)lcd.print(" ");
        if (rot < 100)lcd.print(" ");
        if (rot < 1000)lcd.print(" ");
        lcd.print(rot);
        lcd.print("Hell:");
        if (blau < 10)lcd.print(" ");
        if (blau < 100)lcd.print(" ");
        if (blau < 1000)lcd.print(" ");
        lcd.print(blau);
        break;
      case 7:
        lcd.setCursor(0, zeile);
        lcd.print("7.  nichts          ");
        lcd.setCursor(0, zeile + 1);
        lcd.print("                    ");
        break;
      case 8:
        lcd.setCursor(0, zeile);
        lcd.print("8.Skop einstellen");
        lcd.setCursor(0, zeile + 1);
        lcd.print("H:");
        if (rot < 10)lcd.print(" ");
        if (rot < 100)lcd.print(" ");
        if (rot < 1000)lcd.print(" ");
        lcd.print(rot);
        lcd.print(" D:");
        if (gruen < 10)lcd.print(" ");
        if (gruen < 100)lcd.print(" ");
        if (gruen < 1000)lcd.print(" ");
        lcd.print(gruen);
        lcd.print(" F:");
        if (blau < 10)lcd.print(" ");
        if (blau < 100)lcd.print(" ");
        if (blau < 1000)lcd.print(" ");
        lcd.print(blau);
        break;
      case 9:
        lcd.setCursor(0, zeile);
        lcd.print("9.  nichts          ");
        lcd.setCursor(0, zeile + 1);
        lcd.print("                    ");
        break;
      case 10:
        lcd.setCursor(0, zeile);
        lcd.print("Harter Farbwechsel  ");
        lcd.setCursor(0, zeile + 1);
        lcd.print("           zeit:");
        if (gruen < 10)lcd.print(" ");
        if (gruen < 100)lcd.print(" ");
        if (gruen < 1000)lcd.print(" ");
        lcd.print(gruen);
        break;
      case 11:
        lcd.setCursor(0, zeile);
        lcd.print("11.  nichts         ");
        lcd.setCursor(0, zeile + 1);
        lcd.print("                    ");
        break;
      case 12:
        lcd.setCursor(0, zeile);
        lcd.print("weicher Farbwechsel");
        lcd.setCursor(0, zeile + 1);
        lcd.print("           zeit:");
        if (blau < 10)lcd.print(" ");
        if (blau < 100)lcd.print(" ");
        if (blau < 1000)lcd.print(" ");
        lcd.print(blau);
        break;
      case 13:
        lcd.setCursor(0, zeile);
        lcd.print("13.  nichts         ");
        lcd.setCursor(0, zeile + 1);
        lcd.print("                    ");
        break;
      case 14:
        lcd.setCursor(0, zeile);
        lcd.print("14,    Feuer        ");
        lcd.setCursor(0, zeile + 1);
        lcd.print("                    ");
        break;
      default:
        lcd.setCursor(0, zeile);
        lcd.print("        XXX         ");
        lcd.setCursor(0, zeile + 1);
        lcd.print("                    ");
        break;

    }
  }
}


void HarterFarbwechsel(long jetzt, int warten) {

  if (zaelerFarbenHart <= jetzt) {
    zaelerFarbenHart = jetzt + warten;
    zaelerFarbenHart++;
    if (zaelerFarbenHart == 6) {
      zaelerFarbenHart = 0;
    }
    /*   Serial.print("DUnkelzeit : ");
       Serial.print(dunkelZeit);
       Serial.print(" hellZeit : ");
       Serial.print(hellZeit);
       Serial.print(" jetzt : ");
       Serial.print(jetzt);
       Serial.print(" dunkelSkroboskop : ");
       Serial.println(dunkelSkroboskop);    */
  }


  switch (zaelerFarbenHart) {
    case 0:
      Farbwahl(0, 0, 1023);
      break;
    case 1:
      Farbwahl(0, 1023, 0);
      break;
    case 2:
      Farbwahl(0, 1023, 1023);
      break;
    case 3:
      Farbwahl(1023, 0, 0);
      break;
    case 4:
      Farbwahl(1023, 0, 1023);
      break;
    case 5:
      Farbwahl(1023, 1023, 0);

      break;

  }
  /*
    int zeit = 1;
    if (zaelerFarbenHart == (zeit * 7)) {
     zaelerFarbenHart = 0;
    }
    /*
       Serial.print("jetzt : ");
      Serial.print(jetzt);
      Serial.print(" zeit * 3 : ");
      Serial.print(zeit * 3);
      Serial.print(" farbwechselWarten : ");
      Serial.print(farbwechselWarten);
      Serial.print(" zusammen : ");
      Serial.print((jetzt + ((zeit * 3) * farbwechselWarten)));
       Serial.println("Setzte Neu  !!!!!!!!!!!!!!!!!!");


    if (HarterFarbwechselZeitKurz <= jetzt) {
     HarterFarbwechselZeitKurz = jetzt + warten;

     if ((zaelerFarbenHart >= 0) && (zaelerFarbenHart  <= (zeit ))) {
       Farbwahl(1023, 0, 0);
       /*   Serial.print("1 Rot  Zähler   : ");
            Serial.println(zaelerFarben);
            }
     if ((zaelerFarbenHart >= zeit) && (zaelerFarbenHart  <= ((zeit * 2) ))) {
       Farbwahl(0, 1023, 0);
       /*  Serial.print("2 Violet  Zähler   : ");
           Serial.println(zaelerFarben);

     }
     if ((zaelerFarbenHart >= (zeit * 2)) && (zaelerFarbenHart  <= ((zeit * 3) ))) {
       Farbwahl(0, 0, 1023);
       /*    Serial.print(" 3 gruen Zähler : ");
           Serial.println(zaelerFarben);

     }
     if ((zaelerFarbenHart >= (zeit * 3)) && (zaelerFarbenHart  <= ((zeit * 4) ))) {
       Farbwahl(1023, 1023, 0);
       /*    Serial.print(" 3 gruen Zähler : ");
           Serial.println(zaelerFarben);

     }
     zaelerFarbenHart++;
    }*/
}


void Skroboskop(long jetzt, int dunkelZeit , int hellZeit) {

  if (dunkelSkroboskop <= jetzt) {
    hellSkroboskop = jetzt + hellZeit;
    dunkelSkroboskop = jetzt + hellZeit + (dunkelZeit);
    /*   Serial.print("DUnkelzeit : ");
       Serial.print(dunkelZeit);
       Serial.print(" hellZeit : ");
       Serial.print(hellZeit);
       Serial.print(" jetzt : ");
       Serial.print(jetzt);
       Serial.print(" dunkelSkroboskop : ");
       Serial.println(dunkelSkroboskop);    */
  }

  if (hellSkroboskop  >= jetzt) {
    Farbwahl(1023, 1023, 1023);
    delay(hellZeit);
    Farbwahl(0, 0, 0);

    //  Serial.println("mache Hell");
    return;
  }
}


void BuntesSkob(long jetzt, int dunkelZeit, int hellZeit) {

  if (dunkelSkroboskopBunt <= jetzt) {
    hellSkroboskopBunt = jetzt + hellZeit;
    dunkelSkroboskopBunt = jetzt + hellZeit + (dunkelZeit);
    /*   Serial.print("DUnkelzeit : ");
       Serial.print(dunkelZeit);
       Serial.print(" hellZeit : ");
       Serial.print(hellZeit);
       Serial.print(" jetzt : ");
       Serial.print(jetzt);
       Serial.print(" dunkelSkroboskop : ");
       Serial.println(dunkelSkroboskop);    */
  }

  if (hellSkroboskopBunt  >= jetzt) {
    switch (zaelerSkroboskopHell) {
      case 0:
        Farbwahl(0, 0, 1023);
        delay(hellZeit);
        Farbwahl(0, 0, 0);
        zaelerSkroboskopHell++;
        break;
      case 1:
        Farbwahl(0, 1023, 0);
        delay(hellZeit);
        Farbwahl(0, 0, 0);
        zaelerSkroboskopHell++;
        break;
      case 2:
        Farbwahl(0, 1023, 1023);
        delay(hellZeit);
        Farbwahl(0, 0, 0);
        zaelerSkroboskopHell++;
        break;
      case 3:
        Farbwahl(1023, 0, 0);
        delay(hellZeit);
        Farbwahl(0, 0, 0);
        zaelerSkroboskopHell++;
        break;
      case 4:
        Farbwahl(1023, 0, 1023);
        delay(hellZeit);
        Farbwahl(0, 0, 0);
        zaelerSkroboskopHell++;
        break;
      case 5:
        Farbwahl(1023, 1023, 0);
        delay(hellZeit);
        Farbwahl(0, 0, 0);
        zaelerSkroboskopHell = 0;
        break;
    }
  }

}




void WeicherFarbwechsel(long jetzt, int warten) {

  int zeit = 255;
  if (zaelerFarben == (zeit * 3)) {
    zaelerFarben = 0;
    zaehlerRot = 0;
    zaelerGruen = 0;
    zaelerBlau = 1023;
    /*   Serial.print("jetzt : ");
       Serial.print(jetzt);
       Serial.print(" zeit * 3 : ");
       Serial.print(zeit * 3);
       Serial.print(" farbwechselWarten : ");
       Serial.print(farbwechselWarten);
       Serial.print(" zusammen : ");
       Serial.print((jetzt + ((zeit * 3) * farbwechselWarten)));
    */    Serial.println("Setzte Neu  !!!!!!!!!!!!!!!!!!");
  }
  if (zaelerFarben == 0) {
    zaelerFarben = 0;
    zaehlerRot = 0;
    zaelerGruen = 0;
    zaelerBlau = 255;
  }
  if (zaelerFarben == zeit) {
    zaehlerRot = 254;
    zaelerGruen = 0;
    zaelerBlau = 0;
  }
  if (zaelerFarben == (zeit * 2)) {
    zaehlerRot = 0;
    zaelerGruen = 254;
    zaelerBlau = 0;
  }


  if (WeicherFarbwechselZeitKurz <= jetzt) {
    WeicherFarbwechselZeitKurz = jetzt + warten;

    if ((zaelerFarben >= 0) && (zaelerFarben  <= (zeit ))) {
      Farbwahl(zaehlerRot, zaelerBlau, 0);
      /*     Serial.print(" 1 Hoch rot   : ");
           Serial.print(zaehlerRot);
           Serial.print(" runter blau: ");
           Serial.print(zaelerBlau);
           Serial.print("  Zähler   : ");
           Serial.println(zaelerFarben);
      */   zaehlerRot++;
      zaelerBlau--;
    }
    if ((zaelerFarben >= zeit) && (zaelerFarben  <= ((zeit * 2) ))) {
      Farbwahl(zaehlerRot, 0, zaelerGruen);
      /*    Serial.print(" 2 Hoch gruen : ");
          Serial.print(zaelerGruen);
          Serial.print(" runter rot : ");
          Serial.print(zaehlerRot);
          Serial.print("  Zähler   : ");
          Serial.println(zaelerFarben);
      */    zaehlerRot--;
      zaelerGruen++;
    }
    if ((zaelerFarben >= (zeit * 2)) && (zaelerFarben  <= ((zeit * 3) ))) {
      Farbwahl(0, zaelerBlau, zaelerGruen);
      /*    Serial.print(" 3 Hoch blau  : ");
          Serial.print(zaelerBlau);
          Serial.print(" runter grün: ");
          Serial.print(zaelerGruen);
          Serial.print("  Zähler   : ");
          Serial.println(zaelerFarben);
      */    zaelerGruen--;
      zaelerBlau++;
    }
    zaelerFarben++;
  }
}
long SkroboEinstellenHell = 0;
long SkroboEinstellenDunkel = 0;
void SkroboEinstellen( long jetzt, int hell, int farbe, int dunkel) {


  if (SkroboEinstellenDunkel <= jetzt) {
    SkroboEinstellenHell = jetzt + hell;
    SkroboEinstellenDunkel = jetzt + hell + (dunkel);
    /*   Serial.print("DUnkelzeit : ");
       Serial.print(dunkelZeit);
       Serial.print(" hellZeit : ");
       Serial.print(hellZeit);
       Serial.print(" jetzt : ");
       Serial.print(jetzt);
       Serial.print(" dunkelSkroboskop : ");
       Serial.println(dunkelSkroboskop);    */
  }

  if (SkroboEinstellenHell  >= jetzt) {
    if ((farbe >= 0) && (farbe <= 146)) {
      // 0,0,1
      Farbwahl(0, 0, farbe * 7);
    }
    if ((farbe > 146) && (farbe <= 292)) {
      // 0,1,0
      Farbwahl(0, ((farbe - 146) * 7) , 1000 - ((farbe - 146) * 7));
    }
    if ((farbe > 292) && (farbe <= 438)) {
      //1,0,0
      Farbwahl(((farbe - 292) * 7), 1023 - ((farbe - 292) * 7), 0);
    }
    if ((farbe > 438) && (farbe <= 584)) {
      //1,1,0
      Farbwahl(1023, ((farbe - 438) * 7), 0);
    }
    if ((farbe > 584) && (farbe <= 730)) {
      //1,0,1
      Farbwahl(1023, 1023 - ((farbe - 584) * 7), (farbe - 584) * 7);
    }
    if ((farbe > 730) && (farbe <= 876)) {
      //0.1.1
      Farbwahl(1023 - ((farbe - 730) * 7), ((farbe - 730) * 7), 1023);
    }
    if ((farbe > 876) && (farbe <= 1023)) {
      //1.1.1
      Farbwahl(((farbe - 876) * 7), 1023, 1023);
    }

    delay(hell);
    Farbwahl(0, 0, 0);

    //  Serial.println("mache Hell");
    return;
  }
}






void ProgramWahl(int program, int taster, int rot, int gruen, int blau) {

  long jetzt = millis();

  switch (program) {
    case 1:

      break;
    case 2:
      Farbwahl(rot, gruen, blau);
      break;
    case 3:

      break;
    case 4:
      Skroboskop(jetzt, rot, gruen);
      break;
    case 5:

      break;
    case 6:
      BuntesSkob(jetzt, rot, gruen);
      break;
    case 7:

      break;
    case 8:
      SkroboEinstellen(jetzt, rot, gruen, blau);
      break;
    case 9:

      break;
    case 10:
      HarterFarbwechsel(jetzt, blau);
      break;
    case 11:

      break;
    case 12:
      WeicherFarbwechsel(jetzt, gruen );
      break;
    case 13:

      break;
    case 14:
      Feuer();
      break;


    default:
      Farbwahl(0, 0, 0);
      break;






  }
}

void loop()
{
  //Funktionaler test der Potis

  potiRot1Wert = PotiAuslesen(potiRot1);
  potiBlau1Wert = PotiAuslesen(potiBlau1);
  potiGruen1Wert = PotiAuslesen(potiGruen1);
  potiRot2Wert = PotiAuslesen(potiRot2);
  potiBlau2Wert = PotiAuslesen(potiBlau2);
  potiGruen2Wert = PotiAuslesen(potiGruen2);
  tasterZahl1 = ZahlenwertErmitteln(tasterZahl1Rot, tasterZahl1Gruen, tasterZahl1);
  tasterZahl2 = ZahlenwertErmitteln(tasterZahl2Rot, tasterZahl2Gruen, tasterZahl2);
  program1 = ZahlenwertErmitteln(program1Rot, program1Gruen, program1);
  program2 = ZahlenwertErmitteln(program2Rot, program2Gruen, program2);
  /*
    Serial.print("potiRot1Wert :");
    Serial.print(potiRot1Wert);
    Serial.print(" - potiBlau1Wert ");
    Serial.print(potiBlau1Wert);
    Serial.print(" - potiGruen1Wert ");
    Serial.print(potiGruen1Wert);
    Serial.print(" - potiRot2Wert ");
    Serial.print(potiRot2Wert);
    Serial.print(" - potiBlau2Wert ");
    Serial.print(potiBlau2Wert);
    Serial.print(" - potiGruen2Wert ");
    Serial.println(potiGruen2Wert);
  */

  //Test der einfachen Routienen:
  /*
    Serial.print("TasterZahl 1:  ");
    Serial.print(tasterZahl1);
    Serial.print(" -- TasterZahl 2:  ");
    Serial.print(tasterZahl2);
    Serial.print(" -- program1 :  ");
    Serial.print(program1);
    Serial.print(" -- program2 :  ");
    Serial.println(program2);
    delay(1000);
  */

  //Funktionaler Test der Taster

  /*

    if(digitalRead( tasterZahl1Rot) == HIGH){
      Serial.println( "tasterZahl1Rot ");
    }
      if(digitalRead( tasterZahl1Gruen) == HIGH){
      Serial.println( "tasterZahl1Gruen ");
    }
      if(digitalRead( tasterZahl2Rot) == HIGH){
      Serial.println( "tasterZahl2Rot ");
    }
      if(digitalRead( tasterZahl2Gruen) == HIGH){
      Serial.println( "tasterZahl2Gruen ");
    }
      if(digitalRead( program1Rot) == HIGH){
      Serial.println( "program1Rot ");
    }
      if(digitalRead( program1Gruen) == HIGH){
      Serial.println( "program1Gruen ");
    }
      if(digitalRead( program2Rot) == HIGH){
      Serial.println( "program2Rot ");
    }
      if(digitalRead( program2Gruen) == HIGH){
      Serial.println( "program2Gruen ");
    }
      if(digitalRead( sender) == HIGH){
      Serial.println( "sender ");
    }

  */
  /* Sendetest
    for( int i = 0; i < 100; i++){
    mySwitch.send(i, 24); // Der 433mhz Sender versendet die Dezimalzahl „1234“
    delay(1000);  // Eine Sekunde Pause, danach startet der Sketch von vorne
    }
  */

  Senden();
  LCDWerteAusgeben(program1, 0, potiRot1Wert, potiGruen1Wert, potiBlau1Wert);
  ProgramWahl( program1, tasterZahl1, potiRot1Wert, potiGruen1Wert, potiBlau1Wert);

  LCDWerteAusgeben(program2, 2, potiRot2Wert, potiGruen2Wert, potiBlau2Wert);
  ProgramWahl( program2, tasterZahl2, potiRot2Wert, potiGruen2Wert, potiBlau2Wert);

}



Contact

Ich freue mich, wenn ich von dir eine Kritik zu diesen Projekt bekomme

Where to find me

13353 Berlin

Email Me At

kontakt@robert-wodara.de