millis()-Funktion Anwendung

Hallo liebe Comunity,

#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <Servo.h>

LiquidCrystal_I2C lcd(0x26, 16, 2);

Servo servo1;                   //benötigte Servomotor
Servo servo2;
Servo servo3;
Servo servo4;

int const poti1 = A0;           //Poti-Analog-Pin
int const poti2 = A1;
int const poti3 = A2;
int const poti4 = A3;

int const servoMotor1Pin = 5;   //Servomotorpin
int const servoMotor2Pin = 4;
int const servoMotor3Pin = 3;
int const servoMotor4Pin = 2;

int valPoti1;                   //Variablendeclaration als globale Variablen
int valPoti2;
int valPoti3;
int valPoti4;

int valServo1;
int valServo2;
int valServo3;
int valServo4;

int BeMod = 0;                  // Betriebsmodus
String zeile1 = "";
String zeile2 = "";


unsigned long switchTime = 0;
byte switchStep = 0;




void setup()
{
  Serial.begin(9600);
  pinMode(11, INPUT_PULLUP);    //Resetpin
  pinMode(12, INPUT_PULLUP);    //Handbetrieb
  pinMode(13, INPUT_PULLUP);    //Automatikbetrieb
  lcd.init();                   //LCD-Initialisierung
  lcd.backlight();
  lcd.setCursor(1, 0);
  lcd.print("Betriebsmodus");
  lcd.setCursor(1, 1);
  lcd.print("waehlen");
  servo1.attach(servoMotor1Pin);
  servo2.attach(servoMotor2Pin);
  servo3.attach(servoMotor3Pin);
  servo4.attach(servoMotor4Pin);
}

void loop()
{
  if (digitalRead(11) == LOW)                 //Reset-/Homemenü
  {
    BeMod = 0;
    setDisplay("Betriebsmodus", "waehlen");
  }
  else if (digitalRead(12) == LOW)
  {
    BeMod = 1;
    setDisplay("Betriebsart", "Handbetrieb");
  }
  else if (digitalRead(13) == LOW)
  {
    if (BeMod != 2)    // Wenn vorher nicht automatik
    {
      switchStep = 0;  // setzt die Auswahl auf Ausgangszustand
    }
    BeMod = 2;
    setDisplay("Betriebsart", "Automatik");
  }
  switch (BeMod)
  {
    case 1:                           // Gehe in Handbetrieb
      Manuell();
      break;
    case 2:                           // Gehe in Automatikbetrieb
      Auto();
      break;
  }
}

void setDisplay (String zeile1, String zeile2)
{
  lcd.clear();
  lcd.print(zeile1);
  lcd.setCursor(1, 1);
  lcd.print(zeile2);
}



void Manuell()                                 //Handbetrieb
{
  Serial.println(1);                           //Kontrollmöglichkeit mittels seriellen Monitor
  valPoti1 = analogRead(poti1);
  valPoti2 = analogRead(poti2);
  valPoti3 = analogRead(poti3);
  valPoti4 = analogRead(poti4);
  valServo1 = map(valPoti1, 0, 1023, 0, 180); //unten
  valServo2 = map(valPoti2, 0, 1023, 0, 180); //links
  valServo3 = map(valPoti3, 0, 1023, 0, 180); //rechts
  valServo4 = map(valPoti4, 0, 1023, 0, 180); //Greifer
  servo1.write(valServo1);
  servo2.write(valServo2);
  servo3.write(valServo3);
  servo4.write(valServo4);
}



void Auto()                                    //Automatikbetrieb
{
  Serial.println(2);                           //Kontrollmöglichkeit mittels seriellen Monitor
  switch (switchStep)
  {
    case 0:
      servo1.write(170);                 //Pos 1 Links
      servo2.write(140);
      servo3.write(90);
      servo4.write(170);
      switchTime = millis();
      switchStep++;
      break;
    case 1:
      if (millis() - switchTime >= 1000)
      {
        servo4.write(0);
        switchTime = millis();
        switchStep++;
      }
      break;
    case 2:
      if (millis() - switchTime >= 300)
      {
        servo1.write(90);                  //Pos 2 Mitte
        servo2.write (50);
        servo3.write(0);
        switchTime = millis();
        switchStep++;
      }
      break;
    case 3:
      if (millis() - switchTime >= 500)
      {
        servo1.write(0);                  //pos 3 Rechts
        servo2.write(90);
        servo3.write(90);
        switchTime = millis();
        switchStep++;
      }
      break;
    case 4:
      if (millis() - switchTime >= 1000)
      {
        servo4.write(170);
        switchTime = millis();
        switchStep++;
      }
      break;
    case 5:
      if (millis() - switchTime >= 500)
      {
        servo1.write(90);                  //Pos 4 Mitte
        servo2.write (50);
        servo3.write(0);
        switchTime = millis();
        switchStep++;
        break;
      case 6:
        if (millis() - switchTime >= 300)
        {
          switchStep = 0;
        }
        break;
      }
  }
}

Und warum löschst du deine Beiträge hier wieder ?
Ist es dir peinlich, das du hier fragen musst ?

Da werden wir aufpassen müssen, dass wir ihm nicht wieder antworten.

Gruß Tommy

Da soltest Du schnell alle Passwörter ändern und wenn Du Dich vom Computer / Händy / Tablet entfernst dieses sperren. Dann kann es nicht passieren daß jemand unbefugtes in Deinem Namen etwas schreibt.

Wenn das nur eine scheinheilige Entschuldigung sein soll, daß Du gerechtfertigt nach erhaltener Hilfe Deine Beiträge gelöscht hast und vom Moderator noch die ganze Diskussion gelöscht haben willst, dann brauchst Du Dir natürlich nicht die Arbeit mit den Passwortändern antun. Dann hat ja nicmad anderes Kenntnis Deiner Passwörter erlangt. Das ist gut denn Dein Kollege könnte ja seinerseits die Passwörter geändert haben und Du nicht mehr drankommst. Echt eine erzwickte Situation, die ja aber zum Glück nicht eingetreten ist. :+1: :+1:

Grüße Uwe
Moderator

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.